Prof. Alberto Postiglione 2.2. Concetti di Base su Algoritmi, Strutture Dati e Programmazione Fondamenti di Programmazione in Pascal (parte 2) Istruzione Condizionale IF THEN ELSE (Decisione Binaria) La sintassi di un’istruzione condizionale è la seguente: if Condizione then begin Istruzioni1 end else begin Istruzioni2 end La Condizione è un’espressione Booleana (con valore vero o falso). Se essa è soddisfatta si esegue il ramo then, altrimenti si esegue il ramo else. Se Istruzioni1 o Istruzioni2 sono composte da una sola istruzione, la coppia begin … end può essere omessa La clausola else è facoltativa Programma 3: Legge due numeri e manda in output il massimo Program Massimo; var x,y: integer; begin read (x); read (y); if x > y then write (x) else write (y); end. Istruzione Ciclica WHILE DO La sintassi di un’istruzione ciclica è la seguente: while Condizione do begin Lista Istruzioni end; E’ un’istruzione che valuta una condizione ed esegue un insieme di istruzioni se il confronto dà esito VERO e poi torna ad eseguire il test. In caso di esito FALSO si “esce dal ciclo”, cioè viene eseguita l’istruzione immediatamente successiva l’end del ciclo Programma 4: Calcola la somma di 10 numeri Algoritmo informale: 1) inizializza Totale con 0 2) Esegui per 10 volte le seguenti due istruzioni 2.1) leggi (x) 2.2) effettua la somma di x con Totale 3) stampa Totale Ho bisogno di un meccanismo che mi permetta di eseguire per 10 volte le istruzioni 2.1 e 2.2 (qualcosa che conti il numero di volte che 2.1 e 2.2 vengono eseguite!) program Somma2; var k, x, totale: integer; begin totale:=0; k :=1; while k<=10 do begin read(x); totale:= totale +x; k:=k+1; end; write(totale); Pagina:15 – Bozza del 10/05/2010 Prof. Alberto Postiglione Concetti di Base su Algoritmi, Strutture Dati e Programmazione end Istruzione Ciclica FOR DO Per completezza di informazione c’è da aggiungere che un ciclo si può presentare in tre forme diverse, anche se tra loro equivalenti (cioè è possibile trasformare ogni ciclo negli altri due): ciclo a condizione iniziale (WHILE) – già incontrato ciclo a condizione finale (REPEAT) 1. esegue un insieme di istruzioni 2. valuta una condizione (espressione booleana) se la condizione si mantiene FALSA: torna al passo 1 se la condizione diventa VERA: esce dal ciclo ciclo a contatore (FOR) 1. esegue un insieme di istruzioni 2. se la variabile contatore I, che parte da un valore iniziale E e viene incrementata dopo ogni esecuzione non supera il valore finale E'. Diamo anche il diagramma degli altri due tipi di ciclo: I I I := E Istruzione/i S SI Test NO SI O I≤E’ NO Istruzione/i S Incrementa I O Programma 4 bis: Calcola la somma di 10 numeri (modo alternativo – fa uso dell’istruzione for..do) Program Somma2bis; var x, k, totale: integer; begin totale := 0; for k :=1 to 10 do begin read (x); totale := totale + x; end; write (totale); end Pagina:16 – Bozza del 10/05/2010