Istruzioni Iterative Nicola Fanizzi

Slides:



Advertisements
Presentazioni simili
Esercizio Usate il ciclo repeat until (controllo post condizionale) per simulare il prodotto N x M con M somme di N. Esempio: 5 x 3 equivale a fare 5 +5.
Advertisements

Programma: main() { istruzioni } ; assegnazione condizione ciclo istruzione: ;
Informatica 22/03/2012.
Iterazione while – do while - for.
PROGRAMMARE IN PASCAL (le basi)
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
Universita di Camerino
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture di controllo Ing.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Strutture di controllo Ing. Simona Colucci.
Sommatorie Proprietà Serie aritmetica Serie geometrica Serie armonica
INFORMATICA Strutture iterative
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Istruzioni iterative For, while.
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.
Algebra di Boole ed elementi di logica
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
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.
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Introduzione alla programmazione lll
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Programmazione Corso di laurea in Informatica
Istruzioni di ripetizione in Java
Organizzazione del corso
Algoritmi su Tipi Semplici
Istruzioni Decisionali
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Iterazioni (for, do, while). Lab.Calc. AA2005/062 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while 3. for con.
Strutture di controllo in C -- Flow Chart --
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
CAPITOLO 7.
CAPITOLO 6.
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
CODIFICA Da flow-chart a C++.
Architettura degli Elaboratori II (canale P-Z) Istruzioni di controllo Dott. Franco Liberati.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Parte 4 Elementi di Informatica di base
Lezione 7 Strutture di controllo Il ciclo while
I numeri di Fibonacci.
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
Problema: come dividere due numeri
Programmazione Strutturata
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”
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Istruzioni iterative For, while.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Lez 4 (13/14)Elementi di Programmazione1 Strutture di controllo 2.
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 ( )
Lez. 11 (13/14)Elementi di Programmazione1 Lezione 11 Esercizi.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Ciclo for nei linguaggi di programmazione. Nei linguaggi di programmazione, il ciclo for è una struttura di controllo iterativa che determina l'esecuzione.
Samuele Marino. Cos’è il Repeat Until?  In Pascal, il Repeat Until è un ciclo che consiste nel ripetere (Repeat) una o più istruzioni fino a quando (Until)
Strutture di controllo
Transcript della presentazione:

Istruzioni Iterative Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari

Istruzione for Si usa quando occorre eseguire un'istruzione (o una serie di istruzioni) un determinato numero di volte esempio: somma := 0; somma := somma + 7; somma := somma + 7; somma := somma + 7; usando un ciclo for: somma := 0; for i := 1 to 3 do somma := somma + 7; inizializzazione

Istruzione for Sintassi completa for <var.> := <val.iniziale> to <val.finale> do <istruzione>; 1. inizializza la variabile <var.> a <val.iniziale>; 2. confronta la variabile con <val.finale>; 3. se <= allora esegui istruzione incrementa <var.> torna al passo 2 altrimenti esci dal ciclo

Istruzione for Diagramma di flusso inizializzazione variabile variabile <= val.finale vero istruzione/i falso

Esempio di ciclo for program somma (input, output); var i, somma, numero: integer; begin writeln('SOMMA 5 NUMERI'); writeln; somma := 0; for i := 1 to 5 do write('Inserire un intero: '); readln(numero); somma := somma + numero; end; writeln('Somma: ', somma); readln; end.

for i := 5 downto 1 do <istruzione>; Varianti di ciclo for for i := 16 to 24 do ... for i := -20 to -16 do ... for i := -3 to 1 do ... for i := 5 to 5 do ... l'istruzione nel ciclo viene eseguita solo 1 volta for i := 5 to 4 do ... non esegue l'istruzione nel ciclo cicli a decremento: for <var.> := <val.iniziale> downto <val.finale> do <istruzione>; esempio: for i := 5 downto 1 do <istruzione>;

Esempio Calcolo del fattoriale il fattoriale di un numero n intero è definito: n! = 1 * 2 * … * (n-1) * n program fattoriale (input, output); var n, fat, aus: integer; begin writeln('CALCOLO DI N!'); writeln; write('Inserire n: '); readln(n); fat := 1; for aus := 2 to n do fat := fat*aus; writeln(n,'! = ', fat); readln; end.

Istruzione while Si usa quando occorre ripetere un'istruzione (o una serie di istruzioni) mentre una condizione resta vera: while <espressione logica> do <istruzione>; Può essere considerata una generalizzazione del ciclo for ovvero questo ne è una abbreviazione Una istruzione while può far ciclare per un numero di volte non determinato a priori

Esempio di ciclo while program somma2 (input, output); var i, somma, numero: integer; begin writeln('SOMMA 5 NUMERI'); somma := 0; writeln('PROVA WHILE'); writeln; i := 1; while i <= 5 do write('Inserire un intero: '); readln(numero); somma := somma + numero; i := i+1; end; writeln('Somma: ', somma); readln; end.

Confronto tra cicli while e for while i <= 5 do begin write('intero: '); readln(numero); somma:=somma+numero; i := i+1; end; for i := 1 to 5 do begin write('intero: '); readln(numero); somma:=somma+numero; end;

Istruzione while Diagramma di flusso espressione logica vero istruzione/i falso

Esempio ripetizione con valore di sentinella program somma3 (input, output); var somma, numero: integer; begin writeln('SOMMA di NUMERI'); writeln('inserire 0 per terminare'); writeln; somma := 0; numero := 1; while numero<>0 do write('Inserire un intero: '); readln(numero); somma := somma + numero; end; writeln('Somma: ',somma); readln; end.

Esempio ripetizione con condizione complessa program sommaMax (input, output); var somma, numero, max, i: integer; begin writeln('SOMMA E MAGGIORE'); writeln('Inserire zero per terminare'); numero := 1; somma := 0; max := 0; i := 1; while (numero<>0) and (i<=10) do write('Inserire intero positivo: '); readln(numero); if numero > max then max := numero; somma := somma + numero; i := i+1; end; writeln('Somma: ', somma); writeln('Maggiore: ', max); readln; end.

Esempio somma e max con interi anche negativi program sommaMax2 (input, output); var ancora: char; somma, numero, max, i:integer; begin writeln('SOMMA E MAGGIORE'); writeln('Inserire zero per terminare'); ancora := 'S'; somma := 0; max := -MAXINT-1; i := 1; while ((ancora='S') or (ancora='s')) and (i<=10) write('Valore intero: '); readln(numero); if numero>max then max := numero; somma := somma+numero; i := i+1; write('Vuoi continuare (S/N) ? ' ); readln(ancora); end; writeln('Somma: ', somma); writeln('Maggiore: ', max); readln; end.

Esempio ciclo potenzialmente infinito program sommaN (input, output); var n, i, somma: integer; begin writeln('SOMMA DEI PRIMI N NUMERI INTERI'); writeln; write('Valore di n ? '); readln(n); somma := 0; i := 0; while i<>n do i := i+1; somma := somma+i; end; writeln('Somma: ', somma); readln; end.

Istruzione repeat-until Si usa quando, in un ciclo, un'istruzione (o una serie di istruzioni) debba essere ripetuta almeno una volta: repeat <istruzione> until <espressione logica>; diversamente dalla while si esce dal ciclo quando la condizione risulta verificata tra repeat e until può essere messo direttamente un blocco di istruzioni (senza begin..end)

Esempio somma e max con repeat-until program sommaMax3 (input, output); var somma, numero, max,i:integer; begin writeln('SOMMA E MAGGIORE'); writeln('Inserire zero per terminare'); somma := 0; max := 0; i := 1; repeat write('Valore intero'); readln(numero); if numero>max then max := numero; somma := somma+numero; i := i+1; until (numero=0) or (i>10); writeln('Somma: ', somma); writeln('Maggiore: ', max); readln; end.

Istruzione repeat-until Diagramma di flusso istruzione/i espressione logica falso vero

Cicli annidati uno dei cicli mostrati può essere considerato come una singola istruzione e perciò può essere posto all'interno di un altro ciclo: i:=1; while i <= n do begin for j:=1 to m do writeln('i: ', i, ' j: ', j); i:=i+1; end; for i :=1 to n do for j:=1 to m do writeln('i: ', i, ' j: ', j);

Esempio stampa quadrato di + program lineeColonne (input, output); var n, m, i, j: integer; begin write('Inserire il numero di linee: ') readln(n); write('Inserire il numero di colonne: ') readln(m); for i := 1 to n do {inizio blocco ciclo esterno } writeln; for j := 1 to m do write('+'); end; { fine blocco ciclo esterno } readln; end.

<mantissa>*10<caratteristica> Tipo real possibilità di memorizzare numeri non interi var x, y, z: real; rappresentazione interna a 6 byte range valori positivi e negativi tra 10-38 e 1038 notazione esponenziale normalizzata: <mantissa>*10<caratteristica> <mantissa> (39+1 bit) <caratteristica> (7+1 bit) assegnamento: x:=145.34; y:=0.0008; z:=7E+20; {notazione scientifica} notazione scientifica nEm: indica che n va moltiplicato per 10 elevato a m

Operazioni sul tipo real writeln(x:5:2); il valore reale sarà scritto in un campo numerico allineato a destra di 5 cifre con 2 cifre decimali operatori: + - * / regole: un operando integer può essere usato in luogo di un real se almeno un operando è real il risultato è un valore real round() e trunc() convertono da real a integer funzioni trigonometriche: sin(), cos() e arctan() funzioni logaritmico/esponenziali: sqr(), sqrt(), ln() e exp()

Esempio metodo dicotomico per il calcolo degli zeri f(b) a b f(a)

Esempio metodo dicotomico per il calcolo degli zeri program ricercaZero (input, output); const err=0.001; var a, b, m : real; fa, fb, fm : real; begin repeat write('Inserire a: '); readln(a); write('Inserire b: '); readln(b); fa := 2*a*a*a-4*a+1; fb := 2*b*b*b-4*b+1; until fa*fb <= 0; repeat m:=(a+b)/2; fm:= 2*m*m*m-4*m+1; if fa*fm<0 then begin fb:=fm; b:=m; end else begin fa:=fm; a:=m; end; until abs(fm)<err; write ('Zero di f in ', m:0:3); readln; end.