IL COSTRUTTO ITERAZIONE
|
|
|
- Valentino Adamo
- 6 anni fa
- Просмотров:
Транскрипт
1 IL COSTRUTTO ITERAZIONE
2 Il costrutto iterazione Consente di ripetere una operazione elementare o un blocco di operazioni. Tipologie di iterazione Iterazione definita Iterazione condizionata
3 Tipologie di iterazione Iterazione definita: si conosce a priori quante volte l azione elementare (o il blocco di istruzioni) verrà ripetuta. L iterazione termina quando si è raggiunto il numero prefissato di ripetizioni. Iterazione condizionata: NON si conosce a priori quante volte l azione elementare (o il blocco di istruzioni) verrà ripetuta. L iterazione termina quando si verifica una certa condizione. pre-condizionata: La condizione viene controllata prima delle istruzioni che quindi, potrebbero non essere mai eseguite. post-condizionata: La condizione viene controllata dopo le istruzioni, che quindi vengono eseguite almeno una volta.
4 L istruzione for Nel linguaggio C il costrutto iterazione definito si implementa tramite l istruzione for, che ha la seguente sintassi: Viene eseguita solo una volta all inizio del ciclo Se la condizione è vera si entra nel ciclo, altrimenti si esce Viene eseguita ad ogni iterazione e solo se condizione è vera for (istruzione 1; condizione; istruzione 2) istruzione o blocco; ATTENZIONE: Non mettere mai il ; dopo le (), altrimenti l istruzione o il blocco non saranno eseguiti.
5 L istruzione for i è una variabile contatore. Deve essere precedentemente dichiarata e viene qui inizializzata a 0 i<5 è una condizione, la cui verità viene controllata ad ogni iterazione. Se la condizione è vera si procede con le istruzioni, altrimenti si esce dal ciclo. i++ è una istruzione di incremento del contatore. Si può scrivere anche i=i+1 for (i=0; i<5; i++) istruzione o blocco;
6 La condizione può essere: La condizione Una variabile singola if aritmetico, Una proposizione elementare, costituita dal confronto, mediante operatori relazionali, tra due variabili o due espressioni, Una proposizione articolata, costituita dalla connessione di proposizioni elementari mediante connettivi logici.
7 Esempio Visualizzare i primi 5 numeri naturali. printf ( 1, 2, 3, 4, 5 ); Sembra più semplice ma se dovessimo visualizzare i primi numeri naturali? oppure for (i=1; i<6; i++) printf( %d, i);
8 Esempio Visualizzare i primi 3 numeri naturali. Eseguiamo il codice i condizione a video for (i=1; i<4; i++) printf( %d, i); 1 V 1 2 V 2 3 V 3 4 F
9 L istruzione for Con lo standard C99, la variabile i può essere dichiarata anche dentro il for. for (int i=0; i<5; i++) printf ( %d,i); In questo caso i non può essere usata al di fuori del for. for (int i=0; i<5; i++) printf( CIAO ); printf( %d,i); int i; for (i=0; i<5; i++) printf( CIAO ); printf( %d,i);
10 L istruzione for for (istruzione 1; condizione; istruzione 2) istruzione o blocco; Ciascuno dei termini presenti tra () può teoricamente essere omesso e sostituito da costrutti analoghi. istruzione1 for (; condizione; istruzione 2) istruzione o blocco; int i=0; for (; i<5; i++) printf( %d,i);
11 L istruzione for for (istruzione 1; condizione; istruzione 2) istruzione o blocco; Ciascuno dei termini presenti tra () può teoricamente essere omesso e sostituito da costrutti analoghi. for (istruzione1; condizione;) {istruzione 2; istruzione o blocco;} for (i=0; i<5;) {i++; printf( %d,i);}
12 L istruzione for for (istruzione 1; condizione; istruzione 2) istruzione o blocco; Ciascuno dei termini presenti tra () può teoricamente essere omesso e sostituito da costrutti analoghi. for (istruzione1;; istruzione 2) {istruzione o blocco; condizione break;} for (i=0;; i++) { printf( %d,i); if (i>=5) break;}
13 L istruzione for for (istruzione 1; condizione; istruzione 2) istruzione o blocco; Ciascuno dei termini presenti tra () può teoricamente essere omesso e sostituito da costrutti analoghi. for (;;) E un ciclo infinito perché la condizione è sempre verificata ATTENZIONE: Anche quando si omette un termine tra () è indispensabile mettere il ; per soddisfare la sintassi del for.
14 L istruzione for for (istruzione 1; condizione; istruzione 2) istruzione o blocco; Ciascuno dei termini presenti tra () può teoricamente essere omesso e sostituito da costrutti analoghi ma è bene lasciare tutto dentro il for e soprattutto è bene evitare i cicli infiniti!
15 L istruzione for char a; for (a= A ; a<= Z ; a++) printf( %c,a); float n; for (n=0; n<=1; n=n+0,1) printf( %f,n);
16 L istruzione for int n; for (n=10; n>=0; n--) printf( %d,n); int n; for (n=0; n<=10; n=n+2) printf( %d,n);
17 Esempio Eseguire la somma dei primi 50 numeri naturali. int n; int somma=0; accumulatore for (n=1; n<=50; n++) somma=somma+n; printf( %d,somma);
18 Esempio Stampare i numeri pari fino a n, con n acquisito da tastiera. int n, i; scanf( %d,&n); for (i=0; i<=n; i++) if (! (i%2)) printf( %d,i);
19 Esempio Stampare i numeri pari fino a n, con n acquisito da tastiera. int n,i; scanf( %d,&n); for (i=0; i<=n; i=i+2) printf( %d,i);
20 Esempio Stampare la seguente figura: int i,j; * * * * * * * * * for (i=0; i<3; i++) {for(j=0; j<3; j++) printf( * ); printf( \n );}
21 L istruzione while Nel linguaggio C il costrutto iterazione precondizionato si implementa tramite l istruzione while, che ha la seguente sintassi: Il controllo della condizione viene effettuato prima dell inizio del ciclo. Se la condizione è vera si entra nel ciclo, altrimenti si esce while (condizione) istruzione o blocco; ATTENZIONE: Non mettere mai il ; dopo le (), altrimenti l istruzione o il blocco non saranno eseguiti.
22 L istruzione while i<20 è una condizione, la cui verità viene controllata ad ogni iterazione. Se la condizione è vera si procede con le istruzioni, altrimenti si esce dal ciclo. while (i<20) istruzione o blocco; ATTENZIONE: In fase di scrittura del codice si deve sempre controllare che la condizione prima o poi venga soddisfatta, per evitare di cadere in cicli infiniti.
23 La condizione può essere: La condizione Una variabile singola if aritmetico, Una proposizione elementare, costituita dal confronto, mediante operatori relazionali, tra due variabili o due espressioni, Una proposizione articolata, costituita dalla connessione di proposizioni elementari mediante connettivi logici.
24 Esempio Simulare un registratore di cassa che calcoli l importo finale di una spesa. Il costo dei singoli prodotti è inserito da tastiera e termina quando l importo totale supera una cifra prefissata TOT. float prezzo; float somma=0; while(somma<tot) {scanf( %f, &prezzo); somma=somma+prezzo;}
25 Esempio Eseguiamo il codice TOT somma prezzo float prezzo; 500 float somma=0; while(somma<tot) {scanf( %d, &prezzo); somma=somma+prezzo;}
26 L istruzione while E possibile simulare una while con un for: while (condizione) istruzione o blocco; for (;condizione;) istruzione o blocco;
27 L istruzione while Viceversa: for (istruzione 1; condizione; istruzione 2) istruzione o blocco; istruzione 1; while (condizione) {istruzione o blocco; istruzione 2;}
28 L istruzione do while Nel linguaggio C il costrutto iterazione postcondizionato si implementa tramite l istruzione do while, che ha la seguente sintassi: Il controllo della condizione è effettuato dopo l inizio del ciclo. L istruzione viene eseguita almeno una volta e poi viene controllata la condizione. do istruzione o blocco; while (condizione); ATTENZIONE: Non mettere il ; dopo il do. E un errore di sintassi.
29 L istruzione do while 0 è una condizione ( if aritmetico), la cui verità viene controllata al termine della prima iterazione. Se la condizione è vera si procede con le altre iterazioni, altrimenti si esce dal ciclo. do printf( CIAO ); while (0); ATTENZIONE: In fase di scrittura del codice si deve sempre controllare che la condizione prima o poi venga soddisfatta, per evitare di cadere in cicli infiniti.
30 La condizione può essere: La condizione Una variabile singola if aritmetico, Una proposizione elementare, costituita dal confronto, mediante operatori relazionali, tra due variabili o due espressioni, Una proposizione articolata, costituita dalla connessione di proposizioni elementari mediante connettivi logici.
31 Esempio Eseguiamo il codice do printf( CIAO ); while (0); a video CIAO
32 Esempio Inserire una sequenza di numeri interi. Terminare l inserimento premendo 0. int a; do scanf( %d, &a); while(a);
33 Esempio Eseguiamo il codice a int a; do scanf( %d, &a); while(a);
34 Esempio Eseguiamo il codice a int a; do scanf( %d, &a); while(a); 0
35 L istruzione do while E possibile simulare una do while con un for: do {istruzione o blocco;} while (condizione) istruzione o blocco; for (;condizione;) istruzione o blocco;
36 L istruzione do while Viceversa: for (istruzione 1; condizione; istruzione 2) istruzione o blocco; istruzione 1; do if(!condizione) break; {istruzione o blocco; istruzione 2;} while (condizione)
37 L istruzione do while E possibile simulare una do while con una while: do {istruzione o blocco;} while (condizione) istruzione o blocco; while (condizione) istruzione o blocco;
38 L istruzione do while Viceversa: while (condizione) istruzione o blocco; do if(!condizione) break; {istruzione o blocco;} while (condizione)
39 Esempio Inserire una sequenza di numeri interi. Terminare l inserimento premendo 0. Calcolare la somma e la media della sequenza di numeri. int a, somma, conta; float media; somma=conta=0; do {scanf( %d, &a); somma=somma+a; conta++; } while(a); media=(float)somma/conta;
40 Esempio Eseguiamo il codice a somma conta int a, somma, conta; float media; somma=conta=0; do {scanf( %d, &a); somma=somma+a; conta++; } while(a); media 1,3 media=(float)somma/conta;
41 Esempio Aggiustiamo ed eseguiamo il codice: int a, somma, conta; a somma conta float media; somma=conta=0; do {scanf( %d, &a); somma=somma+a; conta++; } while(a); media 2 media=(float)somma/(conta-1);
42 Esempio Inserire una sequenza di numeri interi. Terminare l inserimento premendo 0. Calcolare la somma e la media dei numeri maggiori di 5. int a, somma, conta; float media; somma=conta=0; do {scanf( %d, &a); if(a>5) {somma=somma+a; conta++;} } while(a); media=(float)somma/conta;
43 media=(float)somma/conta; int a, somma, conta; float media; somma=conta=0; do {scanf( %d, &a); if(a>5) {somma=somma+a; conta++;} } while(a); Esempio Eseguiamo il codice a somma conta media NaN
44 Esempio Aggiustiamo ed eseguiamo il codice: int a, somma, conta; float media; somma=conta=0; do {scanf( %d, &a); if(a>5) {somma=somma+a; conta++;} }while(a); a somma conta if(!conta) media=(float)somma/conta; media
IL COSTRUTTO ITERAZIONE
IL COSTRUTTO ITERAZIONE Ragioniamo su questo esercizio Dati tre numeri farne la somma Modifichiamo il programma perché permetta di fare la somma di 1000 numeri. Il costrutto iterazione Il costrutto iterativo
Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I 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 Lez. 8 - Introduzione all ambiente
Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
I cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
INFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
Programmazione a blocchi. Algobuild Prof. Sergio Roselli
Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere
TERZA ESPERIENZA DI LABORATORIO. Programmazione con controllo di flusso FOR e SWITCH
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2018-2019 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma TERZA ESPERIENZA DI LABORATORIO Programmazione con controllo
Le strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
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
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
Cicli annidati ed Array multidimensionali
Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un
IL COSTRUTTO SELEZIONE
IL COSTRUTTO SELEZIONE Il costrutto selezione Permette di effettuare una scelta tra due possibili opzioni. Tale scelta verrà effettuata valutando il valore di verità di una condizione espressa da una proposizione
3 Costrutti while, for e switch
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione dei costrutti while, for e switch. I costrutti per costruire cicli in C sono il while, la variante
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
Linguaggio C++ 5. Strutture cicliche
2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) Linguaggio C++ 5 Strutture cicliche Linguaggio C++ 5 1 Strutture cicliche Utilizzate per ripetere un certo numero di volte
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivi di questa lezione 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Valutazione in cortocircuito In C, le espressioni booleane sono
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
Le strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
COMANDI ITERATIVI. Ivan Lanese
COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito
Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
