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