sabato 3 dicembre 2011

Terza Lezione

E' stato difficile fare un programma che sottraesse tre numeri?
Di sicuro avete speso molto tempo nello scrivere tutto, si, forse difficile, ma non impossibile:


Program Sottrazione_tre;
Var
a,b,c : integer;
k : integer;
Begin
Write ('Scrivi il primo numero: ');
Read (a);
Write ('Scrivi il secondo numero: ');
Read (b);
Write ('Scrivi il terzo numero: ');
Read (c);
k:= (a-b-c);
Writeln ('La sottrazione corrisponde a :',k,'');
Readln;
Readln;
End.


Ecco la soluzione, niente di difficile. Ma cosa dovremmo fare se ci si presentasse una traccia del genere?:
>Si realizzi un programma che sommi 100 numeri.
Di certo perderemmo ogni senno, ogni residua ragione se dovessimo scrivere 100 writeln e 100 readln.

Ed è per questo che possiamo implementare un ciclo:
Che cos'è un ciclo?
Un ciclo è un'operazione perpetua che continua finché non raggiunge un certo numero prestabilito, finchè diciamo rispetti una condizione che poniamo in precedenza.
Es: Continua a ripetere la stessa istruzione di somma finché i valori non rispettano la condizione in pieno.
Schematizzando possiamo ottenere questo:
Schema Ciclo

In questo schema, si intuisce che innanzitutto sono presenti due Begin, uno in cui sono contenute le condizioni, in questo caso, usando un po di immaginazione, le condizioni ci dicono che le istruzioni in basso, dopo il secondo Begin, vanno ripetute 3 volte.

Una volta esaurite le condizioni, ovvero, appena le istruzioni sono state fatte per la terza volta in questo caso, il ciclo si interrompe perché ha rispettato tutte le condizioni e si ha così il risultato finale che, in un programma di somma, può essere la somma di 3 numeri, o in un programma di moltiplicazione, la moltiplicazione di 3 numeri.

Questa è soltanto un'immagine grafica per capire cosa fa il programma durante il ciclo, ora proviamo a scrivere un programma che riesca a fare la somma di 3 numeri, utilizzando un ciclo.
Ci sono due metodi per implementare un ciclo:

  1. La condizione For to do.
  2. La condizione While do.
Esaminiamo la prima.
For, to, do, è usato principalmente per implementare un ciclo, ed è molto semplice da usare, ad esempio, vogliamo la nostra condizione nella quale bisogna ripetere questo:
Write ('Scrivi il numero: ');
Readln (a);
Per 3 volte come da traccia. Ebbene, tra il primo e il secondo begin scriveremo questa condizione:
For k:=1 to 3 do
Dove k è una variabile integer che abbiamo inserito all'inizio.
Esaminiamo il programma completo:


Program Somma_tre;

Var
k : integer;
a,tot : integer;
Begin
a:=0;
tot:=0;
For k:= 1 to 3 do
Begin
Write ('Digita un numero: ');
Readln (a);
tot:=(tot+a);
End;
Writeln ('La somma dei numeri corrisponde a: ',tot,'');
Readln;
End.


Come di norma, analizziamo tutto il contenuto:
Abbiamo inserito una variabile k (integer) che svolgerà la variabile del ciclo, poi un'altra variabile "a" (che sarà ripetuta 3 volte) in cui digiteremo tutti e tre i numeri della somma ed un'altra, "tot" che sarà il contenitore della somma e anche il primo addendo all'interno del ciclo.
Nel primo Begin, specifico che il valore attuale di "a" e di "tot" corrispondono a 0 per il momento (sono variabili ed è proprio per questo che hanno la proprietà di variare nel tempo). Poi inserisco la condizione For, to, do e specifico per "k" da 1 a 3 fai la stessa operazione.
Parte il secondo Begin che termina con un primo End con il punto e virgola. Tra questi due è racchiusa l'istruzione che sarà ripetuta 3 volte, ovvero di digitare la variabile "a" e l'istruzione che il totale è uguale all'attuare totale ("tot") + "a";
Dopo il primo End, Scriviamo l'operazione per visualizzare la somma e terminiamo con un secondo End.
Il programma svolge questo:


Vediamo cosa accede passo per passo nel programma:

La variabile "k" è valida da 1 a 3, dopo il 3, il ciclo si interromperà. Si inserisce il primo numero nella variabile "a", in questo caso 4, l'istruzione del secondo Begin ci dice che il totale "tot" è uguale a "tot" + "a", e per questo, visto che all'inizio, nel primo begin era scritto che il tot:=0, ne consegue che il programma eseguirà questa operazione:
tot = 0("tot") + 4("a"). Adesso il totale è uguale a 4. La variabile "k" non è ancora soddisfatta, quindi l'operazione tra il secondo Begin e il primo End si ripete per la seconda volta. Inserendo un'altra volta la "a" con il valore 7, avremmo che il tot ora è uguale a 4(primo "tot") + 7("a"). Ora il tot è uguale a 11, e questo accadrà anche quando il ciclo si ripeterà per la terza ed ultima volta (11+3=14).
Questo era il ciclo con il For, il to e il do, nella quarta lezione vi mostrerò come fare un ciclo con While e do.
Fine della Terza lezione.

Nessun commento:

Posta un commento

Per inserire un commento devi essere registrato. I commenti sono messi a disposizione degli utenti per realizzare domande sull'argomento. Una volta inoltrato il commento l'amministratore provvederà a rispondere il prima possibile.