Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:?

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:?"

Transcript

1 Esercizi proposti Problema 1: Calcolare il numero di occorrenze di un valore dato in una sequenza data Stato iniziale: {dim K, val V, c[0] V 0,..., c[k-1] V K-1 } K > 0 Stato finale: {occ #{ j j 2 [0,K-1] ^ V j =V}} Problema 2: Calcolare contemporaneamente il massimo e il minimo di una sequenza data di interi Stato iniziale: {dim K, c[0] V 0,..., c[k-1] V K-1 } con K > 0 Stato finale: {massimo max({v 0,...,V K-1 }), minimo min({v 0,...,V K-1 })} Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:? Problema 4: Calcolare la media di una sequenza data di interi Stato iniziale:? Stato finale:? C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 20

2 Soluzione problema 1: Stato iniziale: {dim K, val V, c[0] V 0,..., c[k-1] V K-1 } K > 0 Stato finale: {occ #{ j j 2 [0,K-1] ^ V j =V}} occ = 0; i = 0; while (i <= dim-1) { if (c[i] == val) occ = occ + 1; i = i + 1; } Ad ogni iterazione del ciclo vale la proprietà: occ = #{ j j 2 [0,i-1] ^ c[j] = val} C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 21

3 Variazione problema 1: Stato iniziale: {dim K, val V, c[0] V 0,..., c[k-1] V K-1 } K > 0 Stato finale: {occ #{ j j 2 [0,K-1] ^ V j =V}, pos min(j) V j =V} occ = 0; pos = -1; i = 0; while (i <= dim-1) { if (c[i] == val) {occ = occ + 1; if (occ == 1) pos = i;} i = i + 1; } C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 22

4 Soluzione alternativa alla variazione problema 1: Dato che la sequenza è memorizzata, posso scorrerla anche a partire dal fondo. Ad ogni iterazione aggiorno la posizione dell occorrenza corrente (scandendo da destra a sinistra) del valore cercato: alla fine rimarrà la posizione dell ultima occorrenza (sempre scandendo da destra a sinistra), che corrisponde alla prima (scandendo da sinistra a destra). occ = 0; pos = -1; i = dim-1; while (i >= 0) { if (c[i] == val) {occ = occ + 1; pos = i;} i = i + 1; } Se dovessi invece elaborare una sequenza di dati in ingresso senza prima memorizzarli, dovrei usare la prima soluzione. C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 23

5 Soluzione problema 2 Stato iniziale: {dim K, c[0] V 0,..., c[k-1] V K-1 } con K > 0 Stato finale: {massimo max({v 0,...,V K-1 }), minimo min({v 0,...,V K-1 })} I Come calcolare il massimo è ormai noto, e calcolare il minimo è del tutto analogo (basta invertire il confronto). Per calcolare entrambi possiamo procedere nel modo seguente. I massimo = c[0]; minimo = c[0]; i = 1; while (i <= dim-1) { if (c[i] > massimo) massimo = c[i]; if (c[i] < minimo) minimo = c[i]; i = i + 1; } calcolo del massimo calcolo del minimo C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 24

6 I Ottimizzando: massimo = c[0]; minimo = c[0]; i = 1; while (i <= dim-1) { if (c[i] > massimo) massimo = c[i]; if (c[i] < minimo) minimo = c[i]; i = i + 1; } calcolo del massimo calcolo del minimo C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 25

7 Soluzione problema 3 Stato iniziale: dim K, c[0] V 0,..., c[k-1] V K-1 Stato finale: occ #{j j 2 [0,K-1] ^ V j = max{v 0,...,V K-1 }} I Un algoritmo ingenuo: I Calcoliamo il valore massimo come nel problema 2 I Scandiamo nuovamente la sequenza per contare il numero di occorrenze del massimo I Comporta una duplice scansione della sequenza I Un algoritmo che comporta una singola scansione si ottiene adattando quello visto per il calcolo del massimo C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 26

8 massimo = c[0]; i = 1; occ = 1; while (i < = dim-1) { if (c[i] > massimo) { massimo = c[i]; occ = 1; } if (c[i] == massimo) occ = occ + 1; ; i = i + 1; } C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 27

9 Soluzione problema 4: Stato iniziale: {dim K, c[0] V 0,..., c[k-1] V K-1 } con K > 0 K-1 P Stato finale: {somma V j,media ( K-1 P V j )/K } j=0 media = 0; somma = c[0]; i = 1; while (i <= dim -1) { somma = somma + c[i]; i = i + 1; } media = somma/dim; Ad ogni iterazione del ciclo vale la proprietà: somma = X 0apple japple i-1 c[j] j=0 C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 28

10 Schemi di programma: ricerca e verifica I Molti problemi riguardano la ricerca di elementi in intervalli o la verifica di proprietà. I Sviluppiamo schemi di programma (dimostrabilmente corretti) che realizzano la ricerca e la verifica. I La soluzione di problemi concreti consiste poi nella sostituzione di alcuni parametri degli schemi con valori specifici dei problemi in esame. I Distinguiamo due tipi di ricerca: ricerca certa e ricerca incerta. I I ricerca certa: si vuole determinare il minimo elemento di un intervallo [a,b) per il quale vale una certa proprietà P, sapendo che almeno un elemento dell intervallo soddisfa P. ricerca incerta: si vuole determinare, se esiste, il minimo elemento di un intervallo [a,b) per il quale vale una certa proprietà P. C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 29

11 Ricerca certa I Intervallo di ricerca: [a,b) I Proprietà: P( ) I Ipotesi di certezza: 9 i 2 [a,b). P(i) I Stato finale: x=min { i2 [a,b) P(i)}. I Lo schema generale per risolvere il problema è il seguente: int x; x=a; while (!P(x)) x=x+1; I Nota: l estremo destro dell intervallo non serve. I Si assume che la proprietà P sia esprimibile nel linguaggio. C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 30

12 Ricerca certa: esempio 1 I Calcolare la radice intera di un numero naturale. I Si può esprimere come problema di ricerca certa: b p Nc= min x2 [0,N+1) x 2 apple N < (x+1) 2 I Dunque l estremo sinistro dell intervallo di ricerca, a nello schema, in questo caso è 0, mentre l estremo destro, b nello schema, è N. I Infine la proprietà P(x) dello schema è N < (x+1) 2 int x; x=0; while ((x+1)*(x+1) <= N) x=x+1; C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 31

13 Ricerca certa: esempio 2 I Determinare la posizione della prima occorrenza di un dato elemento in un array, sapendo che tale elemento vi occorre almeno una volta. I Indichiamo con vet l array e con DIM la sua dimensione I Vogliamo determinare: x=mini2 [0,DIM) vet[i] = el I Possiamo istanziare lo schema come segue: int x; x=0; while (vet[x]!=el) x=x+1; C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 32

14 Ricerca incerta I Si vuole determinare, se esiste, ilminimoelementodiun intervallo [a,b) per il quale vale una certa proprietà P. I Perché lo schema di ricerca certa non va bene? x=a; while (!P(x)) x=x+1; I Se l elemento non c è si vanno ad esaminare valori di x che sono al di fuori dell intervallo di ricerca e per i quali la la proprietà P potrebbe addirittura non essere definita (errore a tempo di esecuzione). Esempio: Nel caso della ricerca incerta di un elemento in un array di dimensione DIM si andrebbero ad esaminare elementi del tipo vet[x] con x >= DIM. I Abbiamo bisogno di modificare lo schema in modo che l analisi degli elementi avvenga solo all interno dell intervallo di ricerca e che la ricerca venga interrotta una volta esaurito l intervallo (e non individuato alcun elemento). C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 33

15 Ricerca incerta I Intervallo di ricerca: [a,b) I Proprietà: P( ) I Stato finale: x=min i2 [a,b) P(i) dobbiamo stabilire se min b 9i 2 [a, b) :P(i) =) dobbiamo stabilire quale valore calcolare se nessun elemento dell intervallo soddisfa P: una buona scelta è il valore b, che sicuramente non fa parte dell intervallo. C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 34

16 Ricerca incerta I Utilizziamo una variabile booleana trovato (oppure esiste) che fa da sentinella =) impone l uscita dal ciclo non appena si individua un elemento che soddisfa la proprietà I in congiunzione con la sentinella, la guardia del ciclo assicura che l intervallo di ricerca non sia esaurito int trovato = FALSE; /* inizialmente false */ int x=a; while (x<b &&!trovato) if (P(x)) trovato = TRUE; /*x soddisfa P */ x=x+1; I Si suppone che le costanti TRUE e FALSE siano state definite opportunamente, ad esempio mediante le direttive #define FALSE 0 #define TRUE 1 C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 35

17 All uscita dal ciclo abbiamo due possibilità: 1. trovato ^ x 2 [a,b) ^ x=min i2 [a,b) P(i) I x è l i n d i c e c e r c a t o I il valore di verità di trovato è TRUE 2. trovato ^ x=b ^8 i2 [a,b). P(i) I nessun elemento nell intervallo di ricerca soddisfa P I il valore di x è b (fuori dell intervallo) I il valore di verità di trovato è FALSE C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 36

18 Ricerca incerta: esempio I Determinare la prima occorrenza di un elemento in un array. I È un problema di ricerca incerta: min x2 [0,DIM) vet[x] = el min DIM int trovato = FALSE; int x=0; while ( x<dim &&!trovato) if (vet[x]==el) trovato = TRUE; x=x+1; C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 37

19 I Vi sono situazioni in cui la proprietà P della ricerca (certa o incerta) non è direttamente esprimibile nel linguaggio. Esempio: Determinare (se c è) la posizione del primo elemento di un array di interi che è uguale alla somma degli elementi che lo precedono. I Si tratta di un problema di ricerca incerta in cui 1. l intervallo [a,b] è [0,DIM] 2. la proprietà P(x) è vet[x]= x P 1 vet[j] j=0 int trovato = FALSE; int x=0; while (x<dim &&!trovato) if (vet[x]== x P 1 vet[j]) j=0 trovato = TRUE; x=x+1; C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 38

20 I In questi casi si utilizza la seguente tecnica: 1. si rimpiazzano le espressioni critiche con variabili 2. si impone l uguaglianza tra le variabili introdotte in questo modo e le corrispondenti espressioni critiche, aggiungendo quanto necessario al corpo del ciclo per mantenere vere tali uguaglianze I Nell esempio: int trovato = FALSE; int x=0; int sommaprecedenti = 0; while (x<dim &&!trovato) if (vet[x]==sommaprecedenti) trovato = TRUE; { sommaprecedenti = sommaprecedenti + vet[x]; x=x+1; } C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 39

21 Verifica di una proprietà I Vogliamo verificare che tutti gli elementi di un intervallo soddisfano una certa proprietà P. 8i 2 [a, b) :P(i) 1. Facciamo una ricerca incerta del minimo elemento dell intervallo per il quale non vale la proprietà P 2. Se non lo troviamo,esito positivo, altrimenti negativo. I Lo schema generale per risolvere questo problema. int trovato = FALSE; int x=a; while (x<b &&!trovato) if (!P(x)) trovato = TRUE; x=x+1; if (trovato) /* esito negativo */ /* esito positivo */ C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 40

22 Alternativamente Possiamo ipotizzare che la proprietà sia valida per tutti gli elelmenti, e verificare se esiste un elemento per cui non lo sia. int tutti = TRUE; int x=a; while (x<b && tutti) if (!P(x)) tutti = FALSE; x=x+1; if (tutti) /* esito positivo */ /* esito negativo */ C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 41

23 Esempio: Sono dispari tutti gli elementi di un array? Cerchiamo il primo elemento pari! int trovato=false; int i=0; while (i<dim &&!trovato) if (vet[i] % 2 == 0) trovato=true; i=i+1; if (trovato) printf("il controllo ha dato esito negativo" ); printf("il controllo ha dato esito positivo" ); C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 42

24 Esercizio: Ricerche incerte più complesse I Si vogliono determinare, se esistono il minimo elemento di un intervallo [a,b) eilminimoelementodiunintervallo[c,d) per i quali vale una certa proprietà P, ovvero se: I Analogamente determinare se: I Analogamente determinare se: I Analogamente determinare se: 9i 2 [a, b), 9j 2 [c, d) :P(i, j) 9i 2 [a, b), 8j 2 [c, d) :P(i, j) 8i 2 [a, b), 9j 2 [c, d) :P(i, j) 8i 2 [a, b), 8j 2 [c, d) :P(i, j) L uscita da ogni ciclo va controllata con apposite guardie booleane, possibilmente distinte tra un ciclo e l altro. C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 43

25 Soluzione quesito 1 I Si vogliono determinare, se esistono il minimo elemento di un intervallo [a,b) eilminimoelementodiunintervallo[c,d) per i quali vale una certa proprietà P, ovvero se: 9i 2 [a, b), 9j 2 [c, d) :P(i, j) int esiste = FALSE; int i = a; while (i<b &&!esiste) {int j = c; while (j<d &&!esiste) if (P(i,j)) esiste = TRUE; j=j+1; if (!esiste) i = i+1; } C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 44

26 Soluzione quesito 2 I Si vuole determinare se: 9i 2 [a, b), 8j 2 [c, d) :P(i, j) int esiste = FALSE; int i = a; while (i<b &&!esiste ) {int tutti = TRUE; int j = c; while (j<d && tutti) if (!P(i,j)) tutti= FALSE; j =j+1; } if (tutti) esiste = TRUE; i = i+1;} C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 45

27 Soluzione quesito 3 I Si vuole determinare se: 8i 2 [a, b), 9j 2 [c, d) :P(i, j) int tutti = TRUE; int i = a; while (i<b && tutti) {int esiste = FALSE; int j = c; while (j<d &&!esiste) if (P(i,j)) esiste= TRUE; j =j+1; } if (!esiste) tutti = FALSE; i = i+1;} C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 46

28 Soluzione quesito 4 I Si vuole determinare se: int tutti = TRUE; int i = a; while (i<b && tutti) {int j = c; while (j<d && tutti) if (!P(i,j)) tutti = FALSE; j=j+1; if (tutti) i = i+1; } 8i 2 [a, b), 8j 2 [c, d) :P(i, j) C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 17/18 pag. 47

Schemi di programma: ricerca e verifica

Schemi di programma: ricerca e verifica Schemi di programma: ricerca e verifica I Molti problemi riguardano la ricerca di elementi in intervalli o la verifica di proprietà. I Sviluppiamo schemi di programma (dimostrabilmente corretti) che realizzano

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Array Tipi di dato strutturati: Array I tipi di dato visti finora sono tutti semplici: int, char, float,... ma i dati manipolati nelle applicazioni reali sono spesso complessi (o strutturati) Gli array

Dettagli

usiamo lettere minuscole per i nomi simbolici utilizzati nello stato e negli algoritmi; usiamo lettere maiuscole per indicare costanti generiche

usiamo lettere minuscole per i nomi simbolici utilizzati nello stato e negli algoritmi; usiamo lettere maiuscole per indicare costanti generiche Lo stato Insieme di associazioni tra nomi e valori. x 5 Nelle specifiche, si vogliono spesso indicare valori costanti ma generici. Utilizziamo le seguenti convenzioni: usiamo lettere minuscole per i nomi

Dettagli

FONDAMENTI DI PROGRAMMAZIONE ESERCITAZIONI Corso di Laurea in MATEMATICA a.a. 2018/19

FONDAMENTI DI PROGRAMMAZIONE ESERCITAZIONI Corso di Laurea in MATEMATICA a.a. 2018/19 FONDAMENTI DI PROGRAMMAZIONE ESERCITAZIONI Corso di Laurea in MATEMATICA a.a. 2018/19 Chiara Bodei 1 Dipartimento di Informatica email: chiara.bodei@unipi.it C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE

Dettagli

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione. Alcuni Soluzioni ESERCIZIO 1 Data una sequenza di interi di dimensione dim, determinare se esistono esattamente cont occorrenze del valore val, utilizzando per questo una variabile booleana check. Stato

Dettagli

Iterazione (introduzione)

Iterazione (introduzione) Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale

Dettagli

Capitolo 16 Iterazione

Capitolo 16 Iterazione Capitolo 16 Accesso a sequenze I problemi esaminati in questo capitolo hanno lo scopo di accedere ed elaborare delle sequenze sequenze immesse dall utente lette dalla tastiera di lunghezza nota con un

Dettagli

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione Corso di Laurea Ingegneria Elementi di Informatica C. Limongelli 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica esistenziale Verifica

Dettagli

INFORMATICA - CdL in FISICA. COMPITO del 28/05/2003 SOLUZIONI PROPOSTE

INFORMATICA - CdL in FISICA. COMPITO del 28/05/2003 SOLUZIONI PROPOSTE INFORMATICA - CdL in FISICA COMITO del 28/5/23 SOLUZIONI ROOSTE ESERCIZIO 1 Indicare i valori stampati dal seguente programma C. #include main() int *p, **q, x=, y=; p = &x; q = &p; *q = &y;

Dettagli

Programmazione ricorsiva: cenni

Programmazione ricorsiva: cenni : cenni In quasi tutti i linguaggi di programmazione evoluti è ammessa la possibilità di definire funzioni/procedure ricorsive: durante l esecuzione di una funzione F è possibile chiamare la funzione F

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 18 Maggio 2010 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E06 C. Limongelli Dicembre 2011 1 Contenuti q Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione

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 Fondamenti di Informatica Algoritmi su array / 1

Corso di Fondamenti di Informatica Algoritmi su array / 1 Corso di Informatica Algoritmi su array / Anno Accademico 200/20 Francesco Tortorella Algoritmi su array Quando si usano gli array, si eseguono frequentemente alcune operazioni tipiche : inizializzazione

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

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P

come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare

Dettagli

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

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

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il

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

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

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

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: 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

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

Testing, correttezza e invarianti

Testing, correttezza e invarianti Testing, correttezza e invarianti Capitolo 3.2 dispensa Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Harvard Mark II

Dettagli

Silvia Rossi. Algoritmi di Ricerca. Informatica. Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria. Corso di Laurea:

Silvia Rossi. Algoritmi di Ricerca. Informatica. Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria. Corso di Laurea: Silvia Rossi Algoritmi di Ricerca 22 Lezione n. Parole chiave: Ricerca Lineare Ricerca Binaria Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Ricerca in una sequenza ordinata

Ricerca in una sequenza ordinata Ricerca su array ordinata Ricerca in una sequenza ordinata Se la sequenza è ordinata posso sfruttare l ordinamento per rendere più efficiente la ricerca, terminando se l elemento corrente risulta maggiore

Dettagli

Diagrammi di flusso: forme

Diagrammi di flusso: forme Il linguaggio C in breve Diagrammi di flusso: forme Inizio/ Fine Istruzione Input/ Output Cond C. Bodei Dip.to Informatica FONDAMENTI DI PROGRAMMAZIONE a.a. 18/19 pag. 57 Il linguaggio C in breve if cond

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard

Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard Classi di algoritmi Esistono alcune tipologie di problemi riconducibili a schemi di risoluzione standard una volta individuato lo schema opportuno si dovrà solo adattarlo al caso particolare per poter

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Esercizi su array di array

Esercizi su array di array Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 C. Limongelli Gennaio 2010 1 Contenuti Fusione di due array ordinati, con eliminazione di duplicati Verifica array bidimensionale

Dettagli

Esercizi su Array di Stringhe

Esercizi su Array di Stringhe Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E10 Esercizi su Array di Stringhe A. Miola Gennaio 2012 1 Problema su array di stringhe... q Dato un array di stringhe, verificare

Dettagli

Sintassi e semantica delle istruzioni strutturate in Java

Sintassi e semantica delle istruzioni strutturate in Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 14 Sintassi e semantica delle istruzioni strutturate in Java Carla Limongelli Aprile 2010 1 Contenuti Classificazione delle istruzioni

Dettagli

Corso di Laurea in Informatica Modulo di Laboratorio di Programmazione I (a.a ) Docente: Prof. M. Nesi

Corso di Laurea in Informatica Modulo di Laboratorio di Programmazione I (a.a ) Docente: Prof. M. Nesi Corso di Laurea in Informatica Modulo di Laboratorio di Programmazione I (a.a. 2009-10) Docente: Prof. M. Nesi Esercizi su Algoritmi e Diagrammi di Flusso (Versione preliminare) Dati i seguenti problemi,

Dettagli

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E09 Esercizi su Array C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esercizi su array 1 Contenuti Esercizi:

Dettagli

Strutture di controllo in C++

Strutture di controllo in C++ Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni

Dettagli

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E08 Esercizi su Array C. Limongelli Gennaio 2012 1 Contenuti q Esercizi: Lettura e stampa di un array Massimo elemento di un array

Dettagli

La programmazione nel linguaggio C

La programmazione nel linguaggio C Cancellazione : versione ricorsiva Sfruttiamo la visione ricorsiva della struttura dati per realizzare la cancellazione in modo ricorsivo 1. la cancellazione della vuota non richiede alcuna azione 2. la

Dettagli

Richiami di Fondamenti di Informatica - 1

Richiami di Fondamenti di Informatica - 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

a + 2b + c 3d = 0, a + c d = 0 c d

a + 2b + c 3d = 0, a + c d = 0 c d SPAZI VETTORIALI 1. Esercizi Esercizio 1. Stabilire quali dei seguenti sottoinsiemi sono sottospazi: V 1 = {(x, y, z) R 3 /x = y = z} V = {(x, y, z) R 3 /x = 4} V 3 = {(x, y, z) R 3 /z = x } V 4 = {(x,

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012

Corso di Laurea Ingegneria Informatica. Dispensa E11. Esercizi su array e. Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E11 Esercizi su array e array di array C. Limongelli Gennaio 2012 1 Contenuti Fusione di due array ordinati, con eliminazione di

Dettagli

Cosa intendiamo per programmazione

Cosa intendiamo per programmazione Cosa è? Cosa intendiamo per programmazione I calcolatori sono macchine in grado di eseguire velocemente e con precisione sequenze di operazioni elementari. A differenza di altre macchine automatiche (es.

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

Iterazione indeterminata

Iterazione indeterminata Iterazione indeterminata In alcuni casi il numero di iterazioni da effettuare non è noto prima di iniziare il ciclo, perché dipende dal verificarsi di una condizione. Esempio: Leggere una sequenza di interi

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica C: costanti introdotte con #define Laboratorio di informatica Ingegneria meccanica Lezione 4 22 ottobre 2007 Forma: #define nome valore Effetto: ogni occorrenza successiva di nome sarà rimpiazzata con

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple.

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple. Domanda n. 1 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Simulazione del Questionario a Risposte Multiple 8-Nov-2004 Argomento: Rappresentazione dell'informazione

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array e funzioni 2. Array e funzioni ricorsive 3. Array e confronto di array 2 Esercizio 1 Creare un programma che legga da

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

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

r 2 r 2 2r 1 r 4 r 4 r 1

r 2 r 2 2r 1 r 4 r 4 r 1 SPAZI R n 1. Esercizi Esercizio 1. Stabilire quali dei seguenti sottoinsiemi sono sottospazi: V 1 = {(x, y, z) R 3 /x = y = z} V = {(x, y, z) R 3 /x = 4} V 3 = {(x, y, z) R 3 /z = x } V 4 = {(x, y, z)

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

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

Moltiplicazione veloce di interi

Moltiplicazione veloce di interi Moltiplicazione veloce di interi Ogni numero intero w di n cifre può essere scritto come 10 n/2 w s + w d w s indica il numero formato dalle n/2 cifre più significative di w w d denota il numero formato

Dettagli

Testing, correttezza e invarianti

Testing, correttezza e invarianti Testing, correttezza e invarianti Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Copyright 2018 Moreno Marzolla, Università

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Conclusioni parte b versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Approfondimenti sul ciclo while

Approfondimenti sul ciclo while Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione In questa lezione... Mostriamo semplici esempi di uso dei cicli Ciascuno di

Dettagli

Fondamenti Teorici e Programmazione

Fondamenti Teorici e Programmazione Fondamenti Teorici e Programmazione Modulo A Elementi di Programmazione Claudio Gallicchio, Ph.D. Array 2 Dati Strutturati I tipi di dati visti finora sono numeri (interi o razionali) booleani (valori

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Tripla di Hoare soddisfatta A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a.

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

Due osservazioni sulle variabili

Due osservazioni sulle variabili Due osservazioni sulle variabili Dichiarazione: cosa succede se non dichiaro una variabile e la uso? provare... Le costanti: sono utilizzate nei linguaggi di programmazione rendere simbolici dei valori

Dettagli

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense. Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Dettagli

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione ESERCITAZIONE Docente: A. Saetti Esercitatori: M. Sechi, A. Bonisoli Vers. 04/10/2017 Docente: Alessandro Saetti Elementi di informatica

Dettagli

PROGRAMMAZIONE I (A,B) - a.a I Verifica Intermedia 3 Novembre 2017

PROGRAMMAZIONE I (A,B) - a.a I Verifica Intermedia 3 Novembre 2017 Esercizio 1 PROGRAMMAZIONE I (A,B) - a.a. 2017-18 I Verifica Intermedia 3 Novemre 2017 Dato il seguente linguaggio sull alfaeto Σ = {a, L = { a k m k%3 = m k 0 si verifichi se è regolare o meno e si dia

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

PASCAL LA SELEZIONE: IF TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL LA SELEZIONE: IF TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL LA SELEZIONE: IF TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica La selezione semplice: if..then La selezione semplice: if..then L istruzione di selezione semplice

Dettagli

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte:

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte: Leggere 5 interi, calcolarne la somma e stamparli. Variante non accettabile: 5 variabili, 5 istruzioni di lettura, 5... int i1, i2, i3, i4, i5; scanf("%d", &i1):... scanf("%d", &i5); printf("%d", i1 +

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Dati: Conclusioni >> Sommario Sommario Ricapitolazione Alcune

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

Fondamenti di Programmazione

Fondamenti di Programmazione A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

PROGRAMMAZIONE 1 e LABORATORIO (A,B) - a.a Prova scritta del 10/01/2012 SOLUZIONI PROPOSTE

PROGRAMMAZIONE 1 e LABORATORIO (A,B) - a.a Prova scritta del 10/01/2012 SOLUZIONI PROPOSTE PROGRAMMAZIONE 1 e LABORATORIO (A,B) - a.a. 2011-2012 Prova scritta del 10/01/2012 SOLUZIONI PROPOSTE ESERCIZIO 1 (punti 5) Un albero discendente a destra (dad) è: una foglia un nodo con n figli ordinati

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

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

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

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli