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

Slides:



Advertisements
Presentazioni simili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Advertisements

Process synchronization
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
Algebra di Boole ed elementi di logica
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Algebra di Boole ed elementi di logica
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 04 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 25 Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 8 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Corso di informatica e elementi di informatica medica Informazioni di Servizio 9 Marzo, 2012 Politecnico di.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 11 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 6: I corsi del SIT Marco D. Santambrogio – 13 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 18 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
Lab X: Battaglia Navale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 10 Giugno 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 3: Partiamo con il SIT! Marco D. Santambrogio – 15 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 24 Ottobre 2011 Sadegh Astaneh – Marco D. Santambrogio –
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 4: Partiamo con il SIT! Marco D. Santambrogio – 19 Aprile 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ulitma lezione… fine corso IEIM 2013 Marco D. Santambrogio – Ver. aggiornata al.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Input/output 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 13 Giugno 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 29 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione 1 Marco D. Santambrogio – Ver. aggiornata al 9 Aprile 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 24 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 7 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 27 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 4: 11 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 14 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole, elementi di logica e Mappe di Karnaugh Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
Transcript della presentazione:

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEUmh… Per farvi aggiungere al gruppo su Facebook… …usate un nome significativo! 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEUmh… Per farvi aggiungere al gruppo su Facebook… …usate un nome significativo! 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEUmh… Per farvi aggiungere al gruppo su Facebook… …usate un nome significativo! 4 nome !significativo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma prima… 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: errori sull’input Problema  Preso un dato inserito da tastiera  Per potervi applicare la trasformazione di nostro interesse  Dobbiamo prima verificare che il dato sia coerente con quanto ci aspettiamo Soluzione  Definire l’insieme dei caratteri validi  Verificare l’appartenenza del carattere inserito, all’insieme dei caratterei validi 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati  L’insieme dei caratteri ammissibili {a, b, c, …, z} 1. Richiedere l’inserimento di un carattere 2. Se carattere inserito corretto 3. Allora stampa a video carattere Altrimenti stampa a video un messaggio di errore 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Dati  L’insieme dei caratteri ammissibili {a, b, c, …, z} Il carattere inserito deve essere  =>a  <= z 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: solo if 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y?  Se X = 0? 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita FALSA 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita FALSA  Se Y = 0? 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita FALSA  Se Y = 0? Vogliamo una uscita FALSA 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita FALSA  Se Y = 0? Vogliamo una uscita FALSA  Se X = 1 e Y = 1? Uscita VERA! 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 16 X Y USCITA

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 17 X Y USCITA Vi ricorda qualche cosa?

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 18 X Y USCITA Vi ricorda qualche cosa? AND!!!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Condizione da verificare Il carattere inserito deve essere  X: =>a  Y: <= z Come vogliamo che si comporti il nostro modello rispetto a X e Y? 19 Vi ricorda qualche cosa? AND!!! X Y X AND Y (prodotto logico)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Maiuscolo: AND 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tornando ad oggi… 21

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema: caratteri MaIuScOli Si scriva un programma che, preso un carattere minuscolo da tastiera, ne riporta a video l’equivalente maiuscolo  Si continui a chiedere l’inserimento del carattere, fino a quando questo non è corretto 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPseudocodice Dati  L’insieme dei caratteri ammissibili {a, b, c, …, z} 1.Richiedere l’inserimento 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 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come si comporta il nostro modello rispetto a X e Y? NOTA: quando VERA, continua! 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come si comporta il nostro modello rispetto a X e Y? NOTA: quando VERA, continua! 28 X Y X AND Y

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come si comporta il nostro modello rispetto a X e Y? NOTA: quando VERA, continua! 29 X Y X AND Y Continua quando X e Y sono VERE!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come si comporta il nostro modello rispetto a X e Y? NOTA: quando VERA, continua! 30 X Y X AND Y È quello che vogliamo? Continua quando X e Y sono VERE!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come si comporta il nostro modello rispetto a X e Y? NOTA: quando VERA, continua! 31 X Y X AND Y È quello che vogliamo? Continua quando X e Y sono VERE! NO!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y?  Se X = 0? 32

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita VERA 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita VERA  Se Y = 0? 34

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita VERA  Se Y = 0? Vogliamo una uscita VERA 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y?  Se X = 0? Vogliamo una uscita VERA  Se Y = 0? Vogliamo una uscita VERA  Se X = 1 e Y = 1? Uscita FALSA! 36

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y? 37 X Y USCITA

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y? 38 Vi ricorda qualche cosa? X Y USCITA

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y? 39 X Y USCITA X Y X AND Y

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma il modello è corretto? X: ‘a’ <= carattere Y: ‘z’ <= carattere Come vorremmo che si comportasse il nostro modello rispetto a X e Y? 40 X Y Z: X AND Y !Z X Y USCITA X Y X AND Y

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice corretto 41

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MaIuScOli: codice corretto 42

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 43

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 44 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 45 Itera l’esecuzione 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 46 Itera l’esecuzione 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 b≤0 Il ciclo (loop) while

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 47

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: zoom 48

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 l’inserimento degli N valori  Ricerca del maggiore tra gli N valori 49

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore: codice 50

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nuoto: codice - errori 52

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nuoto: codice - errori 53 Cosa succede a giudice ad ogni iterazione?

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Nuoto: codice 55

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazioni Problema 1  Si continui a chiedere l’inserimento del carattere, fino a quando questo non è corretto Problema 2  Trovare il maggiore tra N numeri inseriti da tastiera 56

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEOsservazioni Problema 1  Si continui a chiedere l’inserimento 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! 57

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore tra N numeri Problema  Trovare il maggiore tra N numeri inseriti da tastiera Soluzione  Conoscere N  Richiedere l’inserimento degli N valori  Ricerca del maggiore tra gli N valori 58

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore tra N numeri: osservazione Osservazione: Perchè usare un while se conosco il numero di iterazioni del cliclo? 60

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

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

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

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ora dovrebbe essere chiara… 65

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,… 66

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il fattoriale: codice 67

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 68

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 69

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 -