Iterazione A. Ferrari.

Slides:



Advertisements
Presentazioni simili
Fondamenti di Informatica
Advertisements

INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
Process synchronization
Uso avanzato di C.
Calcolo del minimo comune multiplo (m.c.m.) Luigi Sante
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione while – do while - for.
Linguaggio C++ Selezione.
Stringhe di caratteri In linguaggio C.
Selezione A. Ferrari.
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Universita di Camerino
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
FUNZIONI DI BIBLIOTECA
Iterazione enumerativa (for)
Algoritmi Politecnico di Milano
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
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)
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,
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Strutture di controllo in C -- Flow Chart --
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Le funzioni.
Calcolo del Massimo Comun Divisore
Lezione 6 Strutture di controllo Il condizionale
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Programmazione di Calcolatori
Massimo Comun Divisore
Esercizi su File.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
BIOINFO3 - Lezione 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
Soluzioni e commenti esercizi 1 e 2
Capitolo 4 (Deitel) Le strutture di controllo in C
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 -.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
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.
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
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.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
© 2007 SEI-Società Editrice Internazionale, Apogeo
CICLO DO – WHILE LINGUAGGIO C.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Transcript della presentazione:

Iterazione A. Ferrari

Iterazioni (cicli) L’iterazione è una struttura che consente di ripetere più volte l’esecuzione di un insieme di istruzioni. Due tipi di iterazione: iterazioni enumerative: consentono di eseguire un blocco di istruzioni un numero predefinito di volte. iterazioni guidate da eventi: non è noto a priori quante volte saranno eseguite. Se la condizione specificata è vera (o è ancora vera) il blocco viene eseguito, altrimenti si passa all’istruzione successiva al termine del blocco.

Iterazioni postcondizionali L’iterazione postcondizionale è quella fondamentale, infatti tutte le altre possono essere definite a partire da questa. Il blocco delle istruzioni che fanno parte dell’iterazione viene eseguito almeno una volta poi si verifica la condizione e si ripete il blocco fintanto che la condizione è vera. Sono soddisfatti i requisiti della programmazione strutturata: un solo punto d’ingresso e un solo punto d’uscita.

do … while Sintassi: do <istruzione> while (<espressione>); L’istruzione continua a essere eseguita fintanto che <espressione> risulta vera. Nel caso, molto frequente, in cui il corpo del ciclo sia costituito da più istruzioni, si utilizza una coppia di parentesi graffe per racchiudere l’insieme delle istruzioni che fanno parte del ciclo. { <istruzione1>; <istruzione2>; … <istruzioneN>; } while (<espressione>);

Esercizio 1 Iterazione guidata da eventi Scrivere un programma che richiede in input un numero intero e lo continua a richiedere finché non viene inserito un numero pari.

Soluzione 1 /* * Richiede in input un valore intero pari poi lo visualizza */ #include <stdio.h> int main() { int valore; printf("Inserisci un numero pari "); do scanf("%d",&valore); while ((valore%2)!=0); printf("%d e' un numero pari",valore); }

Soluzione 2 /* * Richiede in input un valore intero pari poi lo visualizza */ #include <stdio.h> int main() { int valore; do printf("Inserisci un numero pari "); scanf("%d",&valore); } while ((valore%2)!=0); printf("%d e' un numero pari",valore);

Soluzione 3 /* * Richiede in input un valore intero pari poi lo visualizza */ #include <stdio.h> int main() { int valore; do printf("Inserisci un numero pari "); scanf("%d",&valore); if((valore%2)!=0) printf("il numero inserito non e’ pari …\n"); } while ((valore%2)!=0); printf("%d e' un numero pari",valore);

Esercizio 2 Iterazione enumerativa Realizzare un programma che determini la potenza intera di un numero utilizzando soltanto l’operatore prodotto. Il valore della potenza (l’esponente) e il numero (la base) sono immessi dall’utente.

#include <stdio.h> int main() { int base,esponente,potenza; int contatore; //conta quante volte viene eseguito il ciclo printf("inserisci la base "); scanf("%d",&base); printf("inserisci l’ esponente"); scanf("%d",&esponente); potenza = 1; contatore= 0; do potenza = potenza * base; contatore = contatore +1; //numero di prodotti eseguiti } while (contatore<esponente); printf("potenza = %d ",potenza);

Iterazioni precondizionali Le iterazioni precondizionali hanno la condizione in testa al ciclo. La logica è quella di verificare una condizione e continuare a eseguire il blocco delle istruzioni che fanno parte dell’iterazione fintanto che questa risulti vera. Il blocco di istruzioni può, nel caso in cui la condizione risulti subito falsa, non essere mai eseguito.

Il ciclo while Il linguaggio C mette a disposizione il ciclo while while (<espressione>) <istruzione>; L’istruzione continua a essere eseguita fino a quando <espressione> risulta vera. Nel caso, molto frequente, in cui il corpo del ciclo sia costituito da più istruzioni, si utilizza una coppia di parentesi graffe per racchiudere l’insieme delle istruzioni che fanno parte del ciclo.

Esempio - while 1 /* * Richiede in input un valore intero pari poi lo visualizza */ #include <stdio.h> int main() { int valore; printf("Inserisci un numero pari "); scanf("%d",&valore); while ((valore%2)!=0) printf("%d e' un numero pari",valore); }

Esempio - while 2 /* * Richiede in input un valore intero pari poi lo visualizza */ #include <stdio.h> int main() { int valore; printf("Inserisci un numero pari "); scanf("%d",&valore); while ((valore%2)!=0) printf("Il numero non e’ pari, reinserirlo"); } printf("%d e' un numero pari",valore);

Esercizi Realizza un programma che determini la potenza intera di un numero utilizzando soltanto l’operatore prodotto. Il valore della potenza (l’esponente) e il numero (la base) sono immessi dall’utente. Utilizzare il ciclo while Si riceve come dato d'ingresso una sequenza di numeri terminante per 0, i numeri sono al massimo 100, non è conosciuta a priori la lunghezza della sequenza. Visualizza il valore del numero maggiore e di quello minore

Iterazioni enumerative In molti casi, è noto a priori quante volte il blocco di istruzioni interne al ciclo debba essere eseguito Le strutture iterative presentate possono essere utilizzate anche per risolvere questo tipo di problemi. Viene utilizzata una variabile (contatore) che ha la funzione di “contare” il numero di ripetizioni; Il contatore viene inizializzato prima del ciclo con un valore di partenza, e poi incrementato a ogni esecuzione; La condizione di ciclo controlla il raggiungimento del numero di iterazioni voluto.

Problema Problema: calcolare la somma, il prodotto e la media di n valori immessi dall’utente. Input: la lunghezza n della sequenza dei valori in ingresso, gli n valori della sequenza. Output: somma, prodotto e media dei valori immessi.

Il ciclo for Ogni linguaggio presenta uno o più costrutti di programmazione per implementare le iterazioni enumerative Il C fornisce il ciclo for che, in realtà, è un costrutto molto potente e può essere utilizzato per qualsiasi tipo di iterazione. Per semplicità, lo utilizzeremo solo per implementare iterazioni enumerative.

for - sintassi for(<istuzione1>;<espressione>;<istruzione2>) <istruzione da ripetere>; <istruzione1> viene eseguita prima del ciclo e viene utilizzata per inizializzare la variabile contatore <espressione> è la condizione logica che deve essere soddisfatta per eseguire il corpo del ciclo <istruzione2> viene eseguita ad ogni iterazione ed è utilizzata per incrementare/decrementare la variabile contatore <istruzione da ripetere> è il corpo del ciclo che normalmente è costituito da più istruzioni racchiuse in una coppia di parentesi graffe

Esempi /* tabellina del 2 */ #include <stdio.h> int main() { int ind; //indice int prodotto; for(ind=1;ind<=10;ind++) prodotto=2*ind; printf("%d ",prodotto); } /* tabellina del 2 inverso*/ #include <stdio.h> int main() { int ind; //indice int prodotto; for(ind=10;ind>=1;ind--) prodotto=2*ind; printf("%d ",prodotto); }