La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEWAT? Il bello dei feedback Il bello dei feedback l'ingegnere Nacci è stato molto chiaro nelle spiegazioni l'ingegnere Nacci è stato molto chiaro nelle spiegazioni L'esercitatore ha spiegato la sua parte troppo velocemente, senza troppa chiarezza, parlando di una roba e di un'altra come se stesse parlando della stessa cosa L'esercitatore ha spiegato la sua parte troppo velocemente, senza troppa chiarezza, parlando di una roba e di un'altra come se stesse parlando della stessa cosa 2WAT

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Costrutti iterativi do.. while While for 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video lequivalente maiuscolo Si continui a chiedere linserimento del carattere, fino a quando questo non è corretto 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati Linsieme dei caratteri ammissibili {a, b, c, …, z} 1.Richiedere linserimento di un carattere 2.Se carattere inserito corretto A.Allora stampa a video carattere-32 3.Altrimenti A.stampa a video un messaggio di errore B.ritorno ad 1 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice corretto 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: pseudocodice 1.Leggi A e B 2.min= il minimo tra A e B 3.trovato = 0; MCD = min; 4.Finche trovato != 1 1.Se MCD divide A e B 1.Allora trovato = 1 2.Altrimenti MCD = MCD Stampa MCD 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 9 Inizio Leggi A e B min=minimo{A,B} trovato = 0 MCD=min trovato!=1? MCD divide A e B MCD divide A e B trovato = 1 Stampa MCD Fine no si MCD=MCD -1

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 Itera lesecuzione di una istruzione finché una certa condizione è vera int a, b; scanf("%d%d", &a, &b); while ( b > 0 ) { a = a + a; --b; } printf ("Il valore di a ora è %d", a); Come traduco il finché? WHILE condizione di PERMANENZA nel ciclo

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 Itera lesecuzione di una istruzione fintantoché una certa condizione è vera int a, b; scanf("%d%d", &a, &b); while ( b > 0 ) { a = a + a; --b; } printf ("Il valore di a ora è %d", a); Che cosa calcola? la funzione f(a,b) = a*2 b se b>0 a se b0 Il ciclo (loop) while

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tornando al MCD… il codice 1.trovato = 0; 1.Leggi A e B 1.min= il minimo tra A e B 2.MCD = min; 3.Finche trovato != 1 1.Se MCD divide A e B 1.Allora trovato = 1 2.Altrimenti MCD = MCD Stampa MCD 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: zoom 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore tra N numeri Problema Trovare il maggiore tra N numeri positivi inseriti da tastiera Soluzione Conoscere N Richiedere linserimento degli N valori Ricerca del maggiore tra gli N valori 14

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore: codice 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La gara di nuoto Problema Si hanno10 giudici 1 giudice = 1 voto Ogni voto è nellitervallo 0-10 Dato un tuffo, calcolare La media dei voti Il voto massimo ed il voto minimo 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nuoto: codice - errori 17 Cosa succede a giudice ad ogni iterazione? NIENTE!!!! Ciclo infinito!!!

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nuoto: codice 18

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazioni Problema 1 Si continui a chiedere linserimento del carattere, fino a quando questo non è corretto Problema 2 Trovare il maggiore tra N numeri inseriti da tastiera Del problema 2 conosco il numero di iterazioni! 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore tra N numeri Problema Trovare il maggiore tra N numeri inseriti da tastiera Soluzione Conoscere N Richiedere linserimento degli N valori Ricerca del maggiore tra gli N valori 20

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore: zoom sul codice 21

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 22 cont = 0; while (cont < N) { …; cont++; } for (cont = 0; cont < N; cont++) { …; } Il ciclo for

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 23 ATTENZIONE Il ciclo for for ( exp.A; cond; exp.I ) { ist.1;... ist.N; } exp.A; while ( cond ) { ist.1;... ist.N; exp.I; }

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore – for : codice 24

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore – while Vs for 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ora dovrebbe essere chiara… 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale Dato n, intero positivo, si definisce n fattoriale e si indica con n! il prodotto dei primi n numeri interi positivi minori o uguali di quel numero. In formule Nota: 0! = 1 1! = 1 2! = 2, 3! = 6,… 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale: codice 28

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nota sul fattoriale: permutazioni Vi sono n! diverse sequenze formate da n oggetti distinti Vi sono n! permutazioni di n oggetti iI fattoriali enumerano le permutazioni 29

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Coefficiente binomiale Il numero di scelte di k oggetti fra quelli che costituiscono un insieme di n elementi Quindi il numero dei sottoinsiemi di k elementi di un dato insieme di n oggetti, è dato dal cosiddetto coefficiente binomiale: 30

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Coefficiente binomiale: flusso 1.Inserire K e N 2.Verifico K e N 3.Se corretti A.Calcolare il fattoriale di N (FatN) B.Calcolare il fattoriale di K (FatK) C.Calcolare il fattoriale di N-K (FatNK) D.CoefBin = FatN/(FatK)*FatNK 4.Altrimenti torno a 1 31

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Coefficiente binomiale: codice 32

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problemi di fine giornata… Modificare gli esercizi di oggi, andando, dove necessario, ad inserire il controllo sugli ingressi Trovare il maggiore tra N numeri positivi inseriti da tastiera (richiedendo il numero se negativo) Dati N numeri, dire se questi sono tutti positivi Dati N numeri, riportarne a video il modulo 33

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 6 Credits Daniele Braga -


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013."

Presentazioni simili


Annunci Google