COMANDI ITERATIVI. Ivan Lanese

Похожие документы
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Le strutture di controllo

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Le strutture di controllo in C++

STRUTTURE DI CONTROLLO DEL C++

INFORMATICA. Strutture iterative

PROGRAMMAZIONE STRUTTURATA

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Esercitazione 4. Comandi iterativi for, while, do-while

Fondamenti di Informatica

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Istruzioni iterative. Istruzioni iterative

CORSO DI PROGRAMMAZIONE

Esercitazione 3. Espressioni booleane I comandi if-else e while

PROGRAMMAZIONE: Le strutture di controllo

Costrutti condizionali e iterativi

Istruzioni iterative (o cicliche)

Strutture di Controllo

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Strutture di controllo in C++

Rappresentazione degli algoritmi

Costrutti iterativi. Utilizzo dei costrutti iterativi

INTRODUZIONE ALLA PROGRAMMAZIONE

Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Iterazione determinata e indeterminata

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

5 - Istruzioni condizionali

Esercizi Programmazione I

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Cosa si intende con stato

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Laboratorio di Python

Algoritmi e soluzione di problemi

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Le basi del linguaggio Java

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Cicli annidati ed Array multidimensionali

Esercitazione. Esercizio 1 Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Programmazione in Java (I modulo)

a.a Codice corso: 21012, HOMEWORKS

Programmazione in Python. Moreno Marzolla

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Dati aggregati. Violetta Lonati

Istruzioni Condizionali

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

1 Esercizi in pseudocodice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

3 Costrutti while, for e switch

Strutture di Controllo in Matlab

03.x1. esercizi Sui cicli. 03-X1_Esercizi_[02] Versione del: giovedì 14 novembre Andrea Zoccheddu CORSO INFORMATICA ITI ANGIOY SASSARI

Laboratorio di Informatica

Транскрипт:

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 il comando e la condizione viene testata di nuovo il comando viene ripetuto fino a quando la condizione è vera quando la condizione diventa falsa, si esce dal while e l esecuzione continua con il comando successivo al while Terminologia: il comando viene chiamato corpo del while La condizione contiene una variabile: fate attenzione che la variabile sia inizializzata prima del ciclo, testata all'interno della condizione e modificata all'interno del corpo del while.

Comando while: esercizi Scrivere un programma che prende in input un numero intero n e stampa n asterischi Scrivere un programma che calcola il fattoriale di un numero intero n (0! = 1; n! = 1*2*... *n) Scrivere un programma che chiede in input un numero: se è positivo lo stampa, se è negativo o nullo lo rifiuta e ne chiede un altro. Il ciclo termina quando l'utente immette un numero valido Scrivere un programma che interroga uno studente sulla divisibilità: prende in input un numero intero e chiede allo studente di inserirne un divisore. Il programma termina solo quando lo studente inserisce un divisore corretto.

Comando do while do comando while(condizione); Semantica: viene eseguito il comando e in seguito la condizione viene testata se è vera, il comando viene ripetuto se è falsa si esce dal ciclo e l esecuzione continua con il comando successivo al while Terminologia: il comando viene chiamato corpo del do while Osservazione: il corpo del do while viene eseguito almeno una volta anche nel caso in cui la condizione sia falsa.

Comando do while: esercizi Provare a riscrivere i programmi precedenti usando un do while In quale dei casi la scrittura del programma risulta semplificata? E in quali casi si complica?

Comando do while: commento Il do while risulta più comodo quando il corpo del ciclo deve essere eseguito almeno una volta Esempio: ciclo di input, che chiede l'input e lo richiede nel caso non rispetti le condizioni specificate Comunque tutti i programmi che possono essere scritti col while possono essere scritti col do while e viceversa

Comando for: reminder for ( assegnamento iniziale; condizione; aggiornamento ) comando Semantica: viene eseguito l'assegnamento iniziale viene testata la condizione di ripetizione del ciclo: se è vera viene eseguito il comando, seguito dall'aggiornamento e poi il ciclo ricomincia dal test sulla condizione se è falsa si esce dal for Terminologia: il comando viene chiamato corpo del for Le tre espressioni tra parentesi corrispondono ad operazioni sulla variabile di controllo del ciclo che sono comuni anche al while.

Comando for: esercizi Provare a riscrivere i programmi precedenti usando un for In quale dei casi la scrittura del programma risulta semplificata? E in quali casi si complica?

Comando for: commento Il for risulta più comodo quando l'assegnamento iniziale e l'aggiornamento sono assegnamenti Esempio: assegnamento iniziale i = 0 e aggiornamento i = i + 1 In altri linguaggi il for può avere assegnamenti iniziali e aggiornamenti solo di questa forma, il C++ consente più libertà, il C+o no Storicamente il for poteva essere usato solo per cicli il cui numero di iterazioni era noto a priori, altrimenti si doveva usare il while o il do while for i = 1 to 10 do comando Rispettate questa convenzione, se no potreste indispettire gli informatici più tradizionalisti In C++ tutti i programmi che possono essere scritti col while possono essere scritti col for e viceversa: questo non vale in tutti i linguaggi

Cicli annidati Spesso può essere utile usare un ciclo dentro l'altro Ad ogni iterazione del ciclo esterno corrispondono 0 o più iterazioni del ciclo interno Fate attenzione a Non mischiare le variabili di controllo dei 2 cicli Ripristinare i valori di inizializzazione del ciclo interno ad ogni iterazione del ciclo esterno Si possono anche annidare più livelli di cicli

Cicli annidati: esercizio Scrivere un programma che stampa un triangolo isoscele dell altezza desiderata presa in input. Ad esempio, se l'altezza è 4 stampa: * *** ***** *******

Cicli annidati: esercizi Scrivere un programma che chiede all'utente dei numeri interi e scrive se sono primi o non primi. Il programma termina quando l'utente inserisce il numero 0 Scrivere un programma che stampa la tabella delle tabelline da 1 a 10

Programmi che non terminano I programmi scritti senza comandi iterativi (e senza altre cose che vedremo in seguito, quali la ricorsione) terminano sempre Eventualmente terminano a causa di un errore Usando i comandi iterativi possiamo scrivere programmi che non terminano while (true) cout << Hello ; Raramente si desidera scrivere un programma che non termina, verificate che i vostri programmi terminino

Programmi che non terminano: esercizio Il programma seguente termina? int main() { int i; cout << Inserire un numero intero: ; cin >> i; while(i < 100) { cout << i << \n ; i = i * 2; } }