Strutture di controllo in C++
|
|
|
- Casimiro Franceschini
- 9 anni fa
- Visualizzazioni
Transcript
1 Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a
2 Il controllo: selezione Spesso la sequenza delle istruzioni non e prevedibile a priori ma dipende strettamente dalle configurazioni dei dati di un problema: Se A<B Allora Max B Altrimenti Max A Somma 0 Leggi N Per N volte Leggi X Somma Somma + X Stampa Somma
3 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Se A<B Allora Max B Altrimenti Max A
4 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Se A<B Allora Max B Altrimenti Max A Confronta A e B Max A Max B
5 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Se A<B Allora Max B Altrimenti Max A A B Max A Confronta A e B A < B Max B
6 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Confronta A e B Se A<B Allora Max B Altrimenti Max A A B Max A Confronta A e B A < B Max B Max A Max B
7 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Confronta A e B Se A<B Allora Max B Altrimenti Max A A B Max A Confronta A e B A < B Max B Se A<B Max A sempre Max B
8 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Confronta A e B Se A<B Allora Max B Altrimenti Max A A B Max A Confronta A e B A < B Max B Se A<B Max A sempre Max B
9 Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Confronta A e B Se A<B Allora Max B Altrimenti Max A A B Max A Confronta A e B A < B Max B Se A<B Max A sempre Max B
10 Il controllo: selezione (3) Se A<B Allora Max B Altrimenti Max A Confronta A e B Se A<B Max A sempre Max B Confronta A e B A B A < B Max A Max B
11 Il controllo: selezione (3) Se A<B Allora Max B Altrimenti Max A Confronta A e B Confronta A e B A B A < B Max A Max B Se A<B Max A falso A<B vero sempre Max B Max A Max B
12 Il controllo condizionale in C++ int a, b, max; if( a < b ) max = b; else max = a;
13 Il controllo condizionale in C++ int a, b, max; if( a < b ) max = b; else max = a; MOV BX B MOV AX A CMP AX B JL TRUE MOV MAX AX JMP ENDIF TRUE MOV MAX BX ENDIF...
14 Uso dell istruzione IF vedi esempio programma UsoIf.cpp Domande: Elencare variabili, espressioni letterali e costanti nel programma Determinare il numero di operazioni nel caso di un input stream di N caratteri
15 Il controllo condizionale in C++ int a = 1, b = 2, c = 23, d = 34, max; if( a < b c == d ) { b = c + d; cout << b; } else { max = a; cout << max + 1; }
16 Il controllo condizionale in C++ int a = 2, b = 2, c = 23, d = 34, max; if( a < b c == d ) { b = c + d; cout << b; } else { max = a; cout << max + 1;}
17 Il controllo condizionale in C++ int a = 10, b = 2, c = 34, d = 34, max; if( a < b c == d ) { b = c + d; cout << b; } else { max = a; cout << max + 1;}
18 Il controllo condizionale in C++ int a = 10, b = 2, c = 34, d = 34, max; if( a < b c == d ) { b = c + d; cout << b; } else { max = a; cout << max + 1;}
19 Il controllo condizionale in C++ int a = 10, b = 2, c = 34, d = 34, max; if( a < b && c == d ) { b = c + d; cout << b; } else { max = a; cout << max + 1;}
20 Il controllo: iterazione Somma 0 Leggi N Per N volte Leggi X Somma Somma + X Stampa Somma Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma
21 Il controllo: iterazione Somma 0 Leggi N Per N volte Leggi X Somma Somma + X Stampa Somma Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma
22 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma
23 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma
24 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma MOV SM 0 MV AX SM Leggi N MOV CX 0 CICLO CMP CX N JGE ENDCL Leggi X ADD AX X INC CX JMP CICLO ENDCL MOV SM AX
25 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma MOV SM 0 MV AX SM Leggi N MOV CX 0 CICLO CMP CX N JGE ENDCL Leggi X ADD AX X INC CX JMP CICLO ENDCL MOV SM AX
26 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma MOV SM 0 MV AX SM Leggi N MOV CX 0 CICLO CMP CX N JGE ENDCL Leggi X ADD AX X INC CX JMP CICLO ENDCL MOV SM AX
27 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma MOV SM 0 MV AX SM Leggi N MOV CX 0 CICLO CMP CX N JGE ENDCL Leggi X ADD AX X INC CX JMP CICLO ENDCL MOV SM AX
28 Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma MOV SM 0 MV AX SM Leggi N MOV CX 0 CICLO CMP CX N JGE ENDCL Leggi X ADD AX X INC CX JMP CICLO ENDCL MOV SM AX
29 L Iterazione in C++ Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma+X I I+1 Stampa Somma int Somma=0,I=0, N, X; cin >> N; while ( I < N ) { cin >> X; Somma = Somma + X; I = I + 1; } cout << Somma;
30 L Iterazione in C++ (2) int Somma=0,I=0, N, X; cin >> N; while ( I < N ) { cin >> X; Somma = Somma+X; I = I + 1; } cout << Somma; int Somma=0,I=0, N, X; cin >> N; while ( I < N ) { cin >> X; Somma += X; I++; } cout << Somma;
31 Sentinelle Le variabili che controllano un ciclo iterativo sono variabili di controllo spesso dette sentinelle int i, a, N; // lettura di N i=2; a=1; while( i<=n ) { a=a*i; i++; }
32 Sentinelle (2) Un errato uso delle sentinelle e tra i maggiori responsabili di errori nella programmazione di cicli iterativi int i, a; // lettura di N i=0; a=1; while( i<=n ) { a=a*i; i+=n; } Se N in input e pari a 0?
33 L Iterazione in C++: Uso del for int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma; int Somma=0, I, N, X; cin >> N for ( I=0; I<N; I++) { cin >> X; Somma += X; } cout << Somma;
34 L Iterazione: Uso del do while int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma; int Somma=0, I=0, N, X; cin >> N do { cin >> X; Somma += X; I++; } while(i<n); cout << Somma;
35 L Iterazione: Uso del do while
36 L Iterazione: Uso del do while Somma = N i= 1 x i
37 L Iterazione: Uso del do while Somma = N i= 1 Se (N==0) => Somma=0 x i
38 L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!!
39 L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!! int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma;
40 L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!! int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma; int Somma=0, I=0, N, X; cin >> N do { cin >> X; Somma += X; I++; } while(i<n); cout << Somma;
41 L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!! int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma; int Somma=0, I=0, N, X; cin >> N do { cin >> X; Somma += X; I++; } while(i<n); cout << Somma;
42 L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!! int Somma=0,I=0, N, X; cin >> N while (I<N) { cin >> X; Somma += X; I++; } cout << Somma; int Somma=0, I=0, N, X; cin >> N do { cin >> X; Somma += X; I++; } while(i<n); cout << Somma;
43 Esercizi Proposti Scrivere un programma C++ che legga in ingresso N numeri interi (con N fornito dall utente) e ne calcoli: il massimo valore, il minimo valore, la somma, il prodotto (operatore ) e il valor medio
44 Esercizi proposti (2) Scrivere un programma C++ che calcoli lo sviluppo in serie di Taylor della funzione sen(x) nell intorno dello 0. Scrivere un programma che calcoli il fattoriale n! di un numero intero non negativo n Scrivere un programma C++ che dati due punti del piano cartesiano (x 0,y 0 )(x 1,y 1 ) calcoli la lunghezza del segmento che li unisce
45 Esercizi proposti (3) Scrivere un programma che utilizzi la formula di Hoerner per il calcolo di un polinomio di grado N Scrivere un programma che calcoli il valore di un polinomio, p(x), e della sua derivata prima, p (x), per un certo valore della x. Scrivere un programma che dato un polinomio p(x) e due estremi di un intervallo [a,b] ne calcoli l integrale definito.
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
Istruzioni Condizionali
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali
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
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
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
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
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
Fondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza
CL 3 - Es_01.cpp. #include <iostream> using namespace std;
Problema: Individua gli errori, sintattici, lessicali e logici, presenti nel seguente programma affinché risolva il problema: "Visualizzare il prodotto di due valori interi inseriti da tastiera ". (Riscrivere
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
Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
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
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
PROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo
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
Programmazione Assembly per 8088: Esercizi svolti
Programmazione Assembly per 8088: Esercizi svolti Marco Di Felice 13 dicembre 2006 1 Esercizio 1 (esercizio 1 del Tanenbaum, Appendice C) TESTO. Dopo l esecuzione dell istruzione MOV AX, 702 qual è il
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
Matlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test
Espressioni logiche Espressioni Logiche e Istruzione di Test Fondamenti di Informatica 1 Massimo Di Nanni Gennaio, 2001 Espressioni logiche nelle Istruzioni di Test e di Iterazione Calcolo del massimo
Fondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni
Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di
TRIPLE DI HOARE: ESEMPI ED ESERCIZI. Corso di Logica per la Programmazione A.A. 2012/13
TRIPLE DI HOARE: ESEMPI ED ESERCIZI Corso di Logica per la Programmazione A.A. 2012/13 RICORDIAMO LA REGOLA PER IL COMANDO ITERATIVO P Inv def(e) Inv E Q Inv t 0 {Inv E} C {Inv def(e)} {P} while E do C
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
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
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Fondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto
Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra
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
Informatica (A-K) 5. Algoritmi e pseudocodifica
Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Schemi ricorrenti nei cicli. Contatori Accumulatori Flag Esistenza e universalità
Cicli ed iterazioni Schemi ricorrenti nei cicli Contatori Accumulatori Flag Esistenza e universalità 2 Schemi ricorrenti nei cicli Contatori Spesso in un ciclo è utile sapere Quante iterazioni sono state
do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);
Obiettivi di questa esercitazione Fondamenti di Informatica T-1 modulo 2 Laboratorio 02 1. Valutazione in cortocircuito i 2. If innestati 3. Switch 4. Cicli 5. Funzioni e Header File 1 2 Valutazione in
