R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.

Slides:



Advertisements
Presentazioni simili
Programma: main() { istruzioni } ; assegnazione condizione ciclo istruzione: ;
Advertisements

Calcolo del minimo comune multiplo (m.c.m.) Luigi Sante
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Linguaggi algoritmici
Iterazione while – do while - for.
Iterazione A. Ferrari.
Linguaggio C++ Selezione.
Selezione A. Ferrari.
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
PHP.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Universita di Camerino
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture di controllo Ing.
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Strutture di controllo Ing. Simona Colucci.
INFORMATICA Strutture iterative
Iterazione enumerativa (for)
Informatica Problema Algoritmo Programma
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione lll
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Istruzioni di ripetizione in Java
Strutture di controllo in C -- Flow Chart --
Lezione 2 Programmare in ASP
Elementi di Informatica
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Lezione 7 Strutture di controllo Il ciclo while
Un esempio: Calcolo della potenza n-esima di un numero reale
Radice quadrata di un numero
BIOINFO3 - Lezione 15 ISTRUZIONI
Capitolo 4 (Deitel) Le strutture di controllo in C
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Programmazione Strutturata
Anno accademico Le istruzioni di controllo in C.
L’iterazione while La sintassi è la seguente: while (condizione) {
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
TURBOPASCAL L’iterazione - prof. V. Riboldi -.
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
La ricorsione.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
C++:Strutture di Controllo
Diagrammi a blocchi.
ALGORITMI Dal problema al programma Definizione di algoritmo
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Strutture di controllo
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 6 – Invariante.
Cicli e Array. 2 Costrutto while while(espressione) { … } Il codice dentro le parentesi graffe viene eseguito finché la condizione è vera Potrebbe non.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Indice Ciclo a condizione iniziale: while Teorema di Jacopini-Böhm Ciclo a condizione finale: Do…while Ciclo a conteggio: for Cicli a confronto

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while Istruzione iterativa a condizione iniziale: while Anche nella vita quotidiana ci sono operazioni che devono essere ripetute più volte: Esempio Finchè ci sono ancora cose da comperare Devo comperare il prossimo oggetto e depennarlo dalla lista

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while Istruzione iterativa a condizione iniziale: while Notiamo che Non è possibile stabilire a priori quante volte un’azione deve essere eseguita ma sappiamo solamente quando deve terminare Siamo in presenza di situazioni nelle quali si deve ripetere ciclicamente (o iterare) un’istruzione (o un blocco di istruzioni) L’istruzione (o più generalmente il blocco di istruzioni) si ripete previo controllo di un test chiamato condizione di ingresso al ciclo.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while La sintassi in linguaggio C while (condizione di ingresso) { blocco di istruzioni }

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while Il funzionamento Viene valutata la condizione di ingresso, che è un’operazione di test, e quindi ha risultato VERO o FALSO Se il risultato è FALSO si esce dal ramo di sinistra senza eseguire nessuna istruzione Se il risultato è VERO si entra nel ciclo e si esegue l’istruzione (o il blocco di istruzioni). Al termine dell’esecuzione del blocco si torna indietro a ripetere il test, cioè si ripete l’esecuzione della condizione logica di ingresso. L’istruzione può essere letta nel seguente modo: «fintanto che la condizione è verificata (cioè il test da esito VERO) esegui il blocco di istruzioni»

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while Casi particolari ed errori comuni Per come è costruito il ciclo while a condizione iniziale, il blocco di istruzioni (corpo del ciclo) potrebbe anche non essere mai eseguito neppure una volta; basta infatti che la condizione di ingresso dia subito risultato FALSO Se l’algoritmo non è strutturato correttamente c’è il rischio che il programma entri nel cosiddetto «loop infinito», ovvero esegue il blocco di istruzioni all’infinito senza mai uscirne Questo si verifica quando la condizione risulta sempre vera Per questo motivo all’interno del blocco di istruzioni è necessario ricordarsi di inserire un’istruzione che modifica la variabile di controllo in modo che prima o poi la condizione di ingresso risulti FALSA

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo while Esempio di ciclo while Scriviamo un programma che stampi primi 10 numeri naturali.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Indice Ciclo a condizione iniziale: while Teorema di Jacopini-Böhm Ciclo a condizione finale: Do…while Ciclo a conteggio: for Cicli a confronto

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Teorema di Jacopini-Böhm Il teorema di Böhm-Jacopini, enunciato nel 1966 dagli informatici Corrado Böhm e Giuseppe Jacopini, afferma che: Qualunque algoritmo può essere implementato utilizzando tre sole strutture: Sequenza Selezione Ciclo

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Teorema di Jacopini-Böhm Mentre per la sequenza e la selezione il lingiuaggio C (così come altri linguaggi di programmazione) mette a disposizione un solo costrutto, per l’iterazione mette a disposizione più costrutti, e precisamente: Ciclo a condizione iniziale Ciclo a condizione finale Ciclo a conteggio I cili while, do while e for possono essere equivalenti In molti casi è possibile riscrivere l’algoritmo di un programma in modo da utilizzare un ciclo piuttosto che un altro E’ sufficiente che un linguaggio ammetta anche solo una di queste figure per soddisfare il teorema di Jacopini-Böhm.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Indice Ciclo a condizione iniziale: while Teorema di Jacopini-Böhm Ciclo a condizione finale: Do…while Ciclo a conteggio: for Cicli a confronto

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while Istruzione iterativa a condizione finale: do… while Nel ciclo a condizione finale la condizione di uscita viene posta dopo il blocco di istruzioni Condizione iniziale Condizione finale

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while Istruzione iterativa a condizione finale: do… while Notiamo che L’iterazione precondizionata permette di eseguire ripetizioni di un segmento di codice dopo che viene effettuato un test, chamato test di ingresso L’iterazione postcondizionata prima esegue il contenuto del ciclo e alla fine verifica la condizione di ripetizione, che in questo caso prende il nome di condizione di uscita dal ciclo. Se la condizione è verificata  il ciclo viene ripetuto Se la condizione non è verificata  il ciclo termina

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while La sintassi in linguaggio C do { blocco di istruzioni } while (condizione di uscita);

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while Il funzionamento Si entra nel ciclo e si esegue il blocco di istruzioni (o semplicemente un’istruzione) Viene valutata la condizione di uscita, che è un’operazione di test, e quindi darà come risultato VERO oppure FALSO Se il risultato è VERO si torna indietro a ripetere il corpo del ciclo. Se invece è FALSO si esce dall’altro ramo e si prosegue il programma con le successive istruzioni. L’istruzione può essere letta nel seguente modo: «fai il ciclo mentre la condizione è VERA, cioè quando la condizione diventa FALSA il ciclo è finito»

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while Casi particolari ed errori comuni Per come è costruito il ciclo while a condizione finale, il blocco di istruzioni (corpo del ciclo) viene eseguito sempre almeno una volta. Se l’algoritmo non è strutturato correttamente c’è il rischio che il programma entri nel cosiddetto «loop infinito», ovvero esegue il blocco di istruzioni all’infinito senza mai uscirne Questo si verifica quando la condizione risulta sempre vera Per questo motivo all’interno del blocco di istruzioni è necessario ricordarsi di inserire un’istruzione che modifica la variabile di controllo in modo che prima o poi la condizione di ingresso risulti FALSA

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo do.. while Esempio di ciclo do while Scriviamo un programma che stampi primi 10 numeri naturali.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Indice Ciclo a condizione iniziale: while Teorema di Jacopini-Böhm Ciclo a condizione finale: Do…while Ciclo a conteggio: for Cicli a confronto

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo for Istruzione iterativa a conteggio: for La caratteristica dei cicli a conteggio è quella di conoscere a priori il nuero di cicli che si vuole reiterare Esempio Fai 10 giorni di ferie Leggi 20 pagine di un libro Il «ciclo a conteggio» prende il nome dal fatto che si utilizza un contatotre.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo for La sintassi in linguaggio C for (inizializzazione;condizione di uscita; incremento) { blocco di istruzioni }

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo for Il funzionamento A differenza dei cicli while e do-while, nei quali fra parentesi veniva inserita solamente la condizione di ingresso o di uscita, nel ciclo for all’interno della parentesi vengono inseriti 3 parametri: L’Inizializzazione, che è effettuata prima di effettuare il ciclo vero e proprio La condizione di uscita, che viene valutata ad ogni ciclo; il ciclo viene ripetuto fintanto che la condizione permane VERA; L’aggiornamento del passo: se la condizione di uscita è vera viene eseguito il blocco di istruzioni e al suo termine viene eseguito l’aggiornamento

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo for Casi particolari ed errori comuni Per come è costruito il ciclo for, il blocco di istruzioni (corpo del ciclo) potrebbe anche non essere mai eseguito neppure una volta; basta infatti che la condizione di ingresso dia subito risultato FALSO Se l’algoritmo non è strutturato correttamente c’è il rischio che il programma entri nel cosiddetto «loop infinito», ovvero esegue il blocco di istruzioni all’infinito senza mai uscirne Questo si verifica quando la condizione risulta sempre vera

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Ciclo for Esempio di ciclo for Scriviamo un programma che stampi primi 10 numeri naturali.

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Indice Ciclo a condizione iniziale: while Teorema di Jacopini-Böhm Ciclo a condizione finale: Do…while Ciclo a conteggio: for Cicli a confronto

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Cicli a confronto I cicli while, do while e for possono essere equivalenti In molti casi è possibile riscrivere l’algoritmo di un programma in modo da utilizzare un ciclo piuttosto che un altro Sarà cura del programmatore decidere quale ciclo utilizzare in base all’algritmo che deve risolvere

R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting colors: R 52 G 195 B 51 Primary colors: Cicli a confronto Stampa dei primi 10 numeri naturali WHILE #include int main() { int i; i=0; while (i<10) { i=i+1; printf(“Numero %d \n”,i); } return 0; } DO WHILE #include int main() { int i; i=0; do { i=i+1; printf(“Numero %d \n”,i); } while (i<10); return 0; } FOR #include int main() { int i; for (i=0;i<=10;i++) { printf(“Numero %d \n”,i); } return 0; }