Strutture di controllo in C++

Documenti analoghi
Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Lab 04 Programmazione Strutturata"

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Iterazione determinata e indeterminata

del Linguaggio C Istruzioni di iterazione

Linguaggio C++ 5. Strutture cicliche

Corso di Fondamenti di Informatica

Istruzioni Condizionali

Strutture di Controllo

Istruzioni Condizionali

IL COSTRUTTO ITERAZIONE 2

COMANDI ITERATIVI. Ivan Lanese

Laboratorio di Informatica I

Le funzioni in C++ Fondamenti di Informatica. R. Basili. a.a

Logica per la Programmazione

Fondamenti di Informatica A. A. 2018/19

Corso di Fondamenti di Informatica Classi di istruzioni 2

Lezione 3 Strutture di controllo

Introduzione agli Algoritmi

Programmazione in Java (I modulo)

Fondamenti di Informatica T-1 Modulo 2

Rappresentazione degli algoritmi

Problema. Scrivere un programma PHP che prelevato un codice da una FORM verifica se tale codice è un numero.

cout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;

Fondamenti di Informatica

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

Fondamenti di Informatica

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

PROGRAMMAZIONE STRUTTURATA

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Fondamenti Teorici e Programmazione

Informatica A aa Seconda prova in itinere. Esempi di esercizi possibili

CL 3 - Es_01.cpp. #include <iostream> using namespace std;

Rappresentazione degli algoritmi

Alcuni Soluzioni. Fornire la specifica di un algoritmo risolutivo utilizzando lo pseudocodice visto a lezione.

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

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

INFORMATICA. Strutture iterative

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

PROGRAMMAZIONE: Le strutture di controllo

Schemi di programma: ricerca e verifica

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

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

Programmazione Assembly per 8088: Esercizi svolti

STRUTTURE DI CONTROLLO DEL C++

Esercizio 1. Esercizio 2

Matlab. Istruzioni condizionali, cicli for e cicli while.

Espressioni logiche. Espressioni logiche. Operatori logici. Operatori logici. Operatori logici. Espressioni Logiche e Istruzione di Test

Istruzioni di ripetizione in Java 1

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Codifica di in Python

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

Iterazione A. Ferrari

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

if else Fondamenti di Informatica (Modulo B) !""#$ % ( #if else ) " *+ #switch if (Condizione) Istruzione

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Il primo programma C++

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Dal linguaggio macchina al linguaggio C

Caratteristiche di un calcolatore elettronico

Esercizi proposti. Problema 3: Calcolare il numero di occorrenze del valore massimo in una sequenza di interi Stato iniziale:? Stato finale:?

TRIPLE DI HOARE: ESEMPI ED ESERCIZI. Corso di Logica per la Programmazione A.A. 2012/13

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Laboratorio di Informatica

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

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Risoluzione di un problema

Fondamenti di Informatica T-1 Modulo 2

a.a Codice corso: 21012

Istruzioni semplici e strutturate

Laboratorio di informatica Ingegneria meccanica

Primi script in MATLAB

Linguaggio C Strutture di controllo

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

Linguaggio C. Condizioni composte (operatori logici)

Fondamenti di Informatica T-1 Modulo 2

Informatica (A-K) 5. Algoritmi e pseudocodifica

INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ PRIMA LEZIONE

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

Schemi ricorrenti nei cicli. Contatori Accumulatori Flag Esistenza e universalità

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso

Istruzioni di Controllo

For e do. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 2 Dott. Michele Zanella Ing. Gian Enrico Conti

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Esercizio 1" input tre numeri interi e stampi a video la loro somma e la media. n Realizzare un programma che legga da. Lab03 2

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

Corso di Informatica A.A

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Transcript:

Strutture di controllo in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007

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

Il controllo: selezione (2) Controllare le sequenze di istruzioni significa modificare il loro ordinamento totale Se A<B Allora Max B Altrimenti Max A

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

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

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

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

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

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

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

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

Il controllo condizionale in C++ int a, b, max; if( a < b ) max = b; else max = a;

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...

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

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; }

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;}

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;}

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;}

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;}

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

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

Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma

Il controllo: iterazione (2) Somma 0 Leggi N I 0 Finche (I < N) Leggi X Somma Somma + X I I+1 Stampa Somma

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

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

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

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

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

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;

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;

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++; }

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?

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;

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;

L Iterazione: Uso del do while

L Iterazione: Uso del do while Somma = N i= 1 x i

L Iterazione: Uso del do while Somma = N i= 1 Se (N==0) => Somma=0 x i

L Iterazione: Uso del do while Somma = N i= 1 x i Se (N==0) => Somma=0 OSS: do while È inapplicabile!!

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;

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;

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;

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;

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

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

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.