non serve che la seconda condizione sia composta

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "non serve che la seconda condizione sia composta"

Transcript

1 istruzioni condizionali Osservazioni: si tratta di un unica istruzione if-else if (temperatura > 30) printf("molto caldo\n"); else... non serve che la seconda condizione sia composta if (temperatura > 30) printf("molto caldo\n"); else /* il valore di temperatura e <= 30 */ if (temperatura > 20) Non c è bisogno di una congiunzione del tipo (temperatura <= 30) && (temperatura > 20) (analogamente per gli altri casi). Attenzione: il seguente codice if (temperatura > 30) print("molto caldo\n"); if (temperatura > 20) print("caldo\n"); ha ben altro significato (quale?) E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 1

2 istruzioni condizionali Ambiguità dell else if (a >= 0) if (b >= 0) print("b positivo"); else print("???"); printf("???") può essere la parte else del primo if = print("a negativo"); del secondo if = print("b negativo"); L ambiguità sintattica si risolve considerando che un else riferimento all if più vicino, dunque if (a > 0) if (b > 0) print("b positivo"); else print("b negativo"); fa sempre Perché un else si riferisca ad un if precedente, bisogna inserire quest ultimo in un blocco if (a > 0) { if (b > 0) print("b positivo"); } else print("a negativo"); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 2

3 istruzioni condizionali Soluzioni dell esercizio delle multe Sono corrette? confrontarle tra loro Una soluzione: if (velocita> 200) multa= 1000; else if (velocita > 160) multa= 500; else if (velocita>130) multa= 200; print(multa); Un altra soluzione: if (velocita> 130) multa= 200; if (velocita > 160) multa= 500; if (velocita > 200) multa= 1000; print(multa); Ancora un altra soluzione: if (velocita> 130) multa=200; else if (velocita > 160) multa= 500; else if (velocita>200) multa= 1000; print(multa); Calcolare lo stato per i 3 programmi. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 3

4 istruzioni condizionali Esercizio dato un numero che rappresenta il grado alcolico di una bevanda stampare un messaggio secondo la seguente tabella: gradi alcolici g messaggio 40 < g superalcolico 20 < g 40 alcolico 15 < g 20 vino liquoroso 12 < g 15 vino forte 10.5 < g 12 vino normale g 10.5 vino leggero E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 4

5 istruzioni condizionali Esempio: Dati tre valori che rappresentano le lunghezze dei lati di un triangolo, stabilire se si tratti di un triangolo equilatero, isoscele o scaleno. Algoritmo 1. confronta i lati a coppie, fin quando non 2. hai raccolto una quantità di informazioni sufficiente a prendere la decisione 3. stampa il risultato E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 5

6 istruzioni condizionali var primo=2.3, secondo=2.3, terzo=5.6; if (primo == secondo) { if (secondo == terzo) print("equilatero\n"); else print("isoscele\n"); } else { if (secondo == terzo) print("isoscele\n"); else if (primo == terzo) print("isoscele\n"); else print("scaleno\n"); } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 6

7 istruzioni condizionali Esercizio Risolvere il problema del triangolo utilizzando il seguente un diverso algoritmo che conta i lati uguali: Algoritmo: Confronta i lati contando quante coppie sono uguali se non ci sono coppie uguali, il triangolo è è scaleno se c è una sola coppia di lati uguali, il triangolo è isoscele se ci sono due coppie di lati uguali, il triangolo è equilatero E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 7

8 Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi al fine di determinare la soluzione del problema di partenza. Esempio: La moltiplicazione di numeri con molte cifre viene suddivisa in moltiplicazioni cifra per cifra e i risultati di queste ultime vengono combinate insieme mediante addizioni. Questo procedimento è applicabile anche alla programmazione. si suddivide un problema complesso in problemi di volta in volta più semplici una volta individuati (sotto)problemi sufficientemente elementari si risolvono questi ultimi direttamente si combinano le soluzioni dei sottoproblemi per ottenere la soluzione del problema di partenza E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 8

9 Approccio top-down: si parte dall alto, considerando il problema nella sua interezza e si procede verso il basso per raffinamenti successivi fino a ridurlo ad un insieme di sottoproblemi elementari Approccio bottom-up: ci si occupa prima di risolvere singole parti del problema, senza averne necessariamente una visione d insieme, per poi risalire procedendo per aggiustamenti successivi fino ad ottenere la soluzione globale. I linguaggi di programmazione mettono a disposizione dei meccanismi di astrazione che favoriscono un approccio modulare Astrazione sui dati - il programmatore può definire nuovi tipi di dato specifici per il particolare problema (tipi di dato astratti) in JavaScript gli oggetti, che vedrete nel corso più avanzato. Astrazione funzionale - il programmatore può estendere le funzionalità del linguaggio definendo sottoprogrammi che risolvono (sotto)problemi specifici. i sottoprogrammi sono di solito parametrici possono essere (ri)usati alla stessa stregua delle operazioni built-in del linguaggio E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 9

10 In JavaScript i sottoprogrammi si realizzano attraverso le funzioni. Una funzione può essere vista come una scatola nera: parametri di ingresso F valore calcolato risolve un sottoproblema specifico attraverso i parametri e il risultato scambia informazioni con il programma principale e con altre funzioni Esempio: x abs x x succ x + 1 b, e exp b e x 1,..., x n sum n x i i=1 E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 10

11 Esempio: Definizione di succ in JavaScript function succ(x) { return x+1; } Uso della funzione var z=0; var y; y = succ(z); print(y); print(succ(y)); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 11

12 Il linguaggio deve mettere a disposizione strumenti per definire nuove operazioni astratte (funzioni) usare le nuove operazioni definite Distinguiamo due momenti diversi: la definizione della funzione definisce il codice che realizza l operazione astratta e la chiamata della funzione corrisponde all utilizzo della funzione Ad una stessa definizione possono corrispondere diverse chiamate (come y = succ(x) e print(succ(y))) nell esempio precedente). Nella definizione della funzione, il codice fa riferimento agli argomenti o parametri formali della funzione (nell esempio x) = un parametro formale non corrisponde ad un valore: è semplicemente un riferimento simbolico (ad un argomento della funzione) E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 12

13 Definizione di Funzione Consideriamo la seguente funzione che calcola true se il primo parametro è un multiplo del secondo, false altrimenti: function multiplo(m, n) { var resto=m%n; //dichiarazione di una variabile locale return (resto==0); } I parametri formali sono m ed n Per esercizio riscrivere la funzione multiplo senza usare la variabile resto E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 13

14 Al momento della chiamata, alla funzione vengono forniti i valori degli argomenti, o parametri attuali, rispetto ai quali effettuare il calcolo function multiplo (m, n) {...} if (multiplo(34,17)) print (34+ " multiplo di "+17); //prima chiamata var x=67, y=13, r; //dichiarazione multipla if (multiplo(x,y)) print (x+ " multiplo di "+y); //seconda chiamata Prima chiamata multiplo(34,17) 34 è il parametro attuale corrispondente a m 17 è il parametro attuale corrispondente a n Seconda chiamata multiplo(x,y) x è il parametro attuale corrispondente a m y è il parametro attuale corrispondente a n E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 14

15 : definizione Sintassi: intestazione blocco dove blocco è il corpo della funzione cioè {istruzione 1...istruzione k } intestazione è l intestazione della funzione ed ha la seguente forma: function identificatore (parametri-formali) function è una parola riservata (keyword) identificatore specifica il nome della funzione ed è un qualsiasi identificatore JavaScript valido parametri-formali è una sequenza (eventualmente vuota) di identificatori separati da virgole Esempi: intestazioni di funzione function succ (x) I formali di succ? function multiplo(m,n) I formali di multiplo? N.B. Nella definizione di funzione non ci deve essere un ; tra l intestazione ed il corpo. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 15

16 : chiamata (invocazione, attivazione) Sintassi: identificatore (parametri-attuali) identificatore è il nome della funzione lista-parametri-attuali è una lista di espressioni separate da virgola i parametri attuali devono corrispondere in numero ai parametri formali (non sempre vero in JavaScript) Esempi: chiamate di funzioni var x=3; var v, z, y=1;... if (multiplo(x+3, succ(y))) print (...) ; v= multiplo(succ(succ(0)), x%2);... N.B. Una chiamata di funzione è anch essa un espressione, quindi può essere a sua volta un parametro attuale. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 16

17 La programmazione nel linguaggio JavaScript Input (altre funzioni) Attenzione questo NON è lo standard di JavaScript ma un modo definite da noi per ottenere l input in modo semplice, analogamente alla print. Abbiamo 2 funzioni: una per leggere sequenze di caratteri (stringhe) e l altra per leggere numeri. Vediamo prima la lettura delle stringhe: L intestazione della funzione per la lettura delle stringhe è: function askstring() È una funzione senza parametri che restituisce una stringa. Provoca l apertura di una finestra, nella quale è vengono scritti i caratteri digitati sulla tastiera. Quando invoco askstring dopo l apertura della finestra il programma si mette in attesa che l utente immetta un valore e dia l ok. La sequenza di caratteri (stringa) immessa viene restituita come risultato della funzione. Non è possibile generare errori perchè tutti i caratteri immessi da tastiera possono essere contenuti nella stringa. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 17

18 La programmazione nel linguaggio JavaScript Lettura dei numeri L intestazione della funzione è function asknum(): questa è una fuzione senza parametri che restituisce un numero. provoca l apertura di una finestra nella quale vengono scritti i caratteri digitati sulla tastiera, ma la sequenza di caratteri (stringa) immessa viene convertita in un numero e il numero ottenuto viene restituito come risultato della funzione ma... Cosa succede se la stringa non è convertibile ad un numero? In questo caso la funzione ignora la stringa inserita e chiede un altra stringa, finchè la stringa inserita non risulta convertibile ad un numero. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 18

19 La programmazione nel linguaggio JavaScript L esempio del calcolo del massimo di 3 numeri letti dall input Esempio: function massimoditre(x,y,z){ var massimo=x; if (massimo<y) massimo=y; if (massimo<z) massimo=z; return massimo; } print("il massimo e "+massimoditre(asknum(),asknum(),asknum())); E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 19

20 Semantica (informale) di una chiamata di funzione Dentro il corpo di una funzione (o nel programma principale) F compare una chiamata di un altra funzione G F (sia esso il programma principale o una funzione) viene detto chiamante G viene detta funzione chiamata Esempio: nel programma principale c è un assegnamento x = asknum(); = il programma principale è il chiamante, asknum il chiamato Una chiamata di funzione è un espressione, la cui valutazione avviene come segue: viene sospesa l esecuzione di F e viene ceduto il controllo a G, dopo aver opportunamente associato i parametri attuali ai parametri formali (passaggio dei parametri, fra poco... ) vengono eseguite le istruzioni di G, a partire dalla prima l esecuzione di G termina con l esecuzione di un istruzione speciale (istruzione return) che calcola il risultato della chiamata (è il valore dell espressione corrispondente alla chiamata) al termine dell esecuzione di G il controllo ritorna a F, che prosegue l esecuzione a partire dal punto in cui G era stata attivata E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 20

21 Valore di ritorno di una funzione: istruzione return Esempio: Funzione che restituisce il massimo tra due interi. function max(m, n) { if (m >= n) return m; else return n; } Chiamata di max, ad esempio dal programma: var i, j, massimo; i=asknum(); j=asknum(); massimo = max(i,j); print("massimo = "+massimo); } Il programma principale tramite i parametri attuali comunica alla funzione max i valori sui quali calcolare la funzione (il valore delle variabili i,j). La funzione max tramite il valore di ritorno comunica il risultato al programma principale. E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 21

22 Nel corpo deve esserci l istruzione return espressione; la cui esecuzione comporta: il calcolo del valore di espressione: questo valore viene restituito al chiamante come risultato dell esecuzione della funzione la cessione del controllo alla funzione chiamante Osservazioni l esecuzione di return espressione comporta la terminazione dell esecuzione della funzione Esempio: function max( m, n) { if (m >= n) return m; else return n; print("pippo"); /* non viene mai eseguita */ } E. Occhiuto Fondamenti Teorici e Programmazione- 437AA pag. 22

Le funzioni in JavaScript. Modularizzazione

Le funzioni in JavaScript. Modularizzazione Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Espressioni booleane. Esempio: temperatura <= 0 velocita > velocita max

Espressioni booleane. Esempio: temperatura <= 0 velocita > velocita max Espressioni booleane Espressioni booleane il linguaggio deve consentire di descrivere espressioni booleane cioé espressioni che ritornino come risultato valori di verit : vero o falso (guardie di condizionali

Dettagli

In C i sottoprogrammi si realizzano attraverso le funzioni. Una funzione può essere vista come una scatola nera:

In C i sottoprogrammi si realizzano attraverso le funzioni. Una funzione può essere vista come una scatola nera: Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Come va usato il codice dei caratteri

Come va usato il codice dei caratteri Espressioni booleane Come va usato il codice dei caratteri Convertiamo una lettera minuscola in maiuscolo: char lower = k ; char upper = (char) (lower - a + A ); printf("%c", upper); Convertiamo un carattere

Dettagli

La programmazione nel linguaggio JavaScript. Il programma

La programmazione nel linguaggio JavaScript. Il programma Il programma Nei linguaggi di programmazione il programma è una funzione che ha come argomento i dati digitati in input e opportunamente convertiti. la descrizione della funzione (ovvero il programma)

Dettagli

Già, ma per preparare pasta choux e crema ho bisogno delle relative ricette!

Già, ma per preparare pasta choux e crema ho bisogno delle relative ricette! Bigné alla crema Come si preparano i bigné alla crema? si prepara la pasta choux si depositano piccole quantità di impasto sulla teglia si fanno cuocere per 7-8 minuti, ottenendo i bigné si prepara la

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Lezione 22: Funzioni e File Giovedì 18 Novembre 2010

Lezione 22: Funzioni e File Giovedì 18 Novembre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 22: Funzioni e File Giovedì 18 Novembre 2010 exp(x): calcolo

Dettagli

Operatori di confronto (o relazionali)

Operatori di confronto (o relazionali) Operatori di confronto (o relazionali) Gli operatori di confronto permettono di confrontare 2 valori di un dominio sul quale è definito un ordinamento. I due valori devono essere dello stesso tipo (?)

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C.

Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C. Struttura programmi C Struttura dei programmi C Nel semplice programma che abbiamo appena analizzato possiamo già vedere la struttura generale di un programma C. /* DIRETTIVE DI COMPILAZIONE */ #include

Dettagli

Iterazione determinata e indeterminata

Iterazione determinata e indeterminata Iterazione determinata e indeterminata Le istruzioni iterative permettono di ripetere determinate azioni più volte: un numero di volte fissato = iterazione determinata, Esempio: fai un giro del parco di

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

Funzioni. Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1 Funzioni

Funzioni. Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1 Funzioni Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi:

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: switch (espressione) { case espressione-1: istruzioni-1... case espressione-n:

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Procedure e funzioni A. Ferrari

Procedure e funzioni A. Ferrari Procedure e funzioni A. Ferrari Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere costruita:

Dettagli

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

Dettagli

Il linguaggio JavaScript

Il linguaggio JavaScript Il linguaggio JavaScript JavaScript è un linguaggio di programmazione ad alto livello compatto e comprensibile. sintassi e semantica sono formalmente definite, compatto e comprensibile. appartiene alla

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0; Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

Dettagli

Corso di PHP. Prerequisiti. 5 Funzioni

Corso di PHP. Prerequisiti. 5 Funzioni Corso di PHP 5 Funzioni 1 Prerequisiti Programmazione elementare in Php Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni Uso di parametri 2 1 Introduzione

Dettagli

Unità A1 Funzioni MODULO Java 2

Unità A1 Funzioni MODULO Java 2 Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Passaggio parametri per valore Passaggio parametri per indirizzo Parametri formali e attuali Regole di visibilità Ambiente

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa

Dettagli

Modularizzazione del software

Modularizzazione del software Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica

Dettagli

Informatica (A-K) 12. Linguaggio C -3

Informatica (A-K) 12. Linguaggio C -3 Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i

Dettagli

Laboratorio di Programmazione M-Z

Laboratorio di Programmazione M-Z Diretta Laboratorio di Programmazione M-Z Docente: Dott.ssa Alessandra Lumini alessandra.lumini@unibo.it Università di Bologna, Sede di Cesena Divide et impera Dividere un problema in sottoproblemi più

Dettagli

Esercitazione 2. Espressioni booleane Il comando if-else

Esercitazione 2. Espressioni booleane Il comando if-else Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione ai sottoprogrammi Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Introduzione al corso, Paolo Bison, FI06, 2007-02-06 p.1 Struttura programma formato da vari elementi

Dettagli

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1 Fondamenti di Informatica T1 Lab 03 Istruzioni Lab03 1 Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Lab03 2 #include main()

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Switch. Unità 3. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Switch. Unità 3. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Notazione e convenzioni in questi lucidi

Notazione e convenzioni in questi lucidi Notazione e convenzioni in questi lucidi Il programma, ovvero la descrizione della funzione da calcolare, è scritto dall utente come una sequenza di caratteri. le sequenze di caratteri sono anche dette,

Dettagli

Si dica quale funzione calcola la funzione Foo : function Foo(x){ var i=1,j=0; while (j<x){i=i*2;j++;} return (i);

Si dica quale funzione calcola la funzione Foo : function Foo(x){ var i=1,j=0; while (j<x){i=i*2;j++;} return (i); Esercizio 1- Testo 1 Si dica quale funzione calcola la funzione Foo : function Foo(x){ var i=1,j=0; while (j

Dettagli

2 Operatori matematici e costrutto if

2 Operatori matematici e costrutto if Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Fondamenti di Programmazione in MATLAB Strutturazione del Codice Sorgente Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Fondamenti di Programmazione in MATLAB:

Dettagli

Istruzioni di controllo: SEQUENZA

Istruzioni di controllo: SEQUENZA Istruzioni di controllo: SEQUENZA Negli esempi visti in precedenza gli algoritmi sono stati descritti come sequenze di passi elementari del tipo Passo 1. azione 1 Passo 2. azione 2... Abbiamo utilizzato

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali G. Mecca M. Samela Università della Basilicata Istruzioni Condizionali >> Sommario Sommario Introduzione

Dettagli

Strutturare il codice: sottoprogrammi

Strutturare il codice: sottoprogrammi Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Motivazioni Alcuni problemi si presentano frequentemente durante lo sviluppo di un programma

Dettagli

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

FUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {

FUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) { Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Strutture di Controllo Condizionali e Operatori Logici e Relazionali Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo! Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

Dettagli

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Strutture di Controllo Condizionali e Operatori Logici e Relazionali Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

Dettagli

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi

METODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile

Dettagli

Ambienti di Programmazione per il Software di Base

Ambienti di Programmazione per il Software di Base Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Metodi statci. Dichiarazione e chiamata di metodi statci

Metodi statci. Dichiarazione e chiamata di metodi statci Metodi statci Dichiarazione e chiamata di metodi statci Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

Controllo del flusso di esecuzione di un programma

Controllo del flusso di esecuzione di un programma Controllo del flusso di esecuzione di un programma I programmi sono eseguiti sequenzialmente, istruzione dopo istruzione, ma in alcuni casi il flusso di esecuzione può scegliere vie alternative o ripetersi

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su dati in ingresso (input) per produrre uno

Dettagli

Dichiarazione di variabili

Dichiarazione di variabili Dichiarazione di variabili ESEMPIO: somma di due numeri

Dettagli

FUNZIONI FUNZIONI COME COMPONENTI SW

FUNZIONI FUNZIONI COME COMPONENTI SW FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione

Dettagli

Istruzioni di selezione in Java 1

Istruzioni di selezione in Java 1 Ordine di esecuzione Istruzioni di selezione in Java Corso di laurea in Comunicazione digitale Nei metodi l ordine di esecuzione delle istruzioni è sequenziale se non specificato altrimenti Alcune istruzioni

Dettagli

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013 Laboratorio Progettazione Web Le funzioni in PHP Angelica Lo Duca IIT-CNR angelica.loduca@iit.cnr.it 2012/2013 Funzioni Una funzione è una sequenza di istruzioni che implementano una specifica funzionalità

Dettagli

FUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice

FUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E01 Esempi di programmi A. Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di programmi - 1 1 Contenuti

Dettagli

Il linguaggio C Funzioni e procedure

Il linguaggio C Funzioni e procedure Il linguaggio C Funzioni e procedure modello cliente-servitore risultato Ambiente condiviso cliente servitore richiesta di servizio Sottoprogrammi Spesso può essere utile avere la possibilità di costruire

Dettagli

Caratteristiche generali del linguaggio Visual Basic

Caratteristiche generali del linguaggio Visual Basic Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1)

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

ciclo di vita della soluzione (informatica) di un problema

ciclo di vita della soluzione (informatica) di un problema Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli