cicli. Ciclo con parametro (per)


Immagina una situazione in cui dobbiamo visualizzare la stessa parola sullo schermo, diciamo la parola "CIAO", 10 volte. Cosa dobbiamo fare?
Puoi prendere e scrivere il comando 10 volte writeln('HELLO');

Ma cosa succede se non hai bisogno di 10 volte, ma 20, 30, 40 volte? E se 200 volte? In questo caso, la copia richiederà molto tempo. E se è necessario che l'utente possa scegliere quante volte visualizzare le informazioni sullo schermo? 

Per far fronte a questo compito, possiamo usare una costruzione speciale chiamata LOOP

Un ciclo è una costruzione algoritmica in cui una determinata sequenza di comandi viene ripetuta più volte.


Nel linguaggio di programmazione Pascal, ci sono due tipi di cicli: un ciclo con una variabile (for) e un ciclo con una condizione (while)

Iniziamo la nostra conoscenza dei cicli dal primo tipo.

LOOP CON UNA VARIABILE O CON UN NUMERO DI PASSI NOTO (FOR)

Accade spesso che conosciamo il numero di ripetizioni di alcune azioni, oppure possiamo calcolare il numero di ripetizioni utilizzando i dati a noi noti. Alcuni linguaggi di programmazione hanno un comando che in russo suona come RIPETI (numero di volte), ovvero possiamo specificare il numero esatto di ripetizioni. 

È interessante vedere come funziona questo ciclo a livello di macchina:
1. una determinata cella di memoria viene allocata in memoria e vi viene scritto il numero di ripetizioni,
2. quando il programma esegue il corpo del ciclo una volta, il contenuto di questa cella (contatore) viene decrementato di uno.
3. l'esecuzione del ciclo termina quando questa cella è zero.

Nel linguaggio di programmazione Pascal non esiste tale costruzione, ma esiste una costruzione for.  

La forma generale dell'istruzione del ciclo for è la seguente:
for *start value* to *end value* do
inizio
      /*un'istruzione o un blocco di istruzioni - corpo del ciclo*/;
fine;
Questa costruzione richiede che noi
1. allocare esplicitamente una cella di memoria, che sarà un contatore, e impostarne il valore iniziale
2. Specifica come cambierà il valore in questa cella.
3. è stata scritta una condizione in base alla quale verrà eseguito il corpo del ciclo

Nella parte pratica proveremo a visualizzare la parola Ciao 10 volte. Nelle seguenti attività, analizzeremo questa costruzione in modo più dettagliato.

Un ciclo for è un mezzo per scorrere azioni ripetute. Diamo un'occhiata più da vicino a come funziona.

In genere, le parti di un ciclo for eseguono i seguenti passaggi: 
1. Imposta il valore iniziale. 
2. Impostare il passo con cui cambierà la variabile del ciclo
3. Impostazione del valore finale.
3. Esegui azioni cicliche. 
4. Aggiorna i valori utilizzati nel test. 
e quindi i passaggi 2-4 vengono ripetuti finché la condizione non viene soddisfatta. Non appena la condizione diventa falsa, il ciclo termina e viene eseguita l'istruzione che segue l'istruzione del ciclo for.

Torniamo alla forma generale dell'istruzione loop e analizziamo più in dettaglio tutte le parti
for *imposta il valore iniziale su variabile* a/fino al *valore finale* inizia
      /*un'istruzione o un blocco di istruzioni - corpo del ciclo*/;
fine;

Impostazione di una variabile su un valore iniziale

è responsabile dell'impostazione del valore iniziale della variabile ciclo (contatore), NON è evidenziato con parentesi o altro
Per esempio :
io := 0; //alla variabile di ciclo i viene assegnato il valore iniziale pari a zero. Con un record del genere,
//la variabile i deve essere dichiarata prima del ciclo
a/fino a
Questo è il passo in cui cambierà la variabile usata nel ciclo. Se scriviamo su, ad ogni iterazione il valore della variabile aumenterà di 1, se fino a - diminuirà di 1
Valore finale

 è l'ultimo valore al quale verrà ancora eseguito il corpo del ciclo. Ad esempio, se impostiamo l'ultimo valore su 100, a 100 il nostro ciclo verrà comunque eseguito ea 101 no.


Esercitiamoci a scrivere il titolo del ciclo for

L'inizio di un ciclo for in Pascal consiste di diverse parti:
1) la parola per
2) quale variabile e quale valore stiamo assegnando. In questo programma, questo è b := 1, cioè assegniamo il valore 1 a b.
3) la parola to o downto, che indica il passo con cui viene eseguito il ciclo. Se scriviamo su, allora la variabile aumenterà di 1 ogni iterazione, se fino a, allora diminuirà di 1.
4) valore finale della variabile
5) parola fare
6) la parola  begin  (può essere omessa se c'è solo una riga nel corpo del loop, altrimenti va scritta. Se non si scrive begin, allora solo la prima riga verrà essere eseguito dall'intero corpo del ciclo). Non dimentichiamoci che dopo il corpo del loop, se abbiamo scritto la parola begin, scrivi la parola end; !

Tutti i programmi con un ciclo for che abbiamo scritto finora non possono essere definiti universali. Perché impostiamo noi stessi il numero di ripetizioni del corpo del loop. 
Ma cosa succede se il numero di ripetizioni dipende da qualche altro valore? Ad esempio, l'utente stesso desidera impostare il numero di ripetizioni del ciclo.
Cosa fare in questo caso?
Tutto è molto semplice. Invece di valori iniziali e finali numerici, possiamo utilizzare qualsiasi variabile che può essere calcolata o impostata dall'utente.

Ad esempio, abbiamo bisogno di visualizzare i quadrati dei numeri da 1 a n, dove il valore della variabile n viene inserito dalla tastiera dall'utente.
Il programma avrà questo aspetto:
 
var i, n :intero; // io – variabile loop, n - il numero massimo per il quale calcoliamo il quadrato
inizio
 leggi(n); // inserisci n dalla tastiera
 for i := 1 to n do // loop: for all i from 1 to n - la variabile i assumerà in sequenza valori da 1 a n
  writeln('Kvadrat chisla ', i, ' corvo ', i * i); // Emissione del quadrato di un numero in un formato specifico e passaggio a una nuova riga
FINE.

Quando si entra nel ciclo, viene eseguita l'istruzione i := 1, quindi la variabile i viene incrementata di uno (to) ad ogni passaggio. Il ciclo viene eseguito mentre la condizione i <= n è vera. Nel corpo del ciclo, l'unica istruzione di output stampa il numero stesso e il suo quadrato sullo schermo secondo il formato specificato.
Per la quadratura o altri esponenti bassi, è meglio usare la moltiplicazione.

Esegui il programma e guarda il risultato del suo lavoro con diversi valori della variabile n.