Per descrivere un algoritmo, possiamo utilizzare uno pseudo-linguaggio di programmazione, dove il simbolo ← rappresenta l’istruzione che impone di assegnare al nome simbolico che lo precede il valore calcolato dall’espressione che lo segue
Per esempio: i ← i+1 significa incrementa di 1 il valore associato al nome simbolico i e associa a i il valore incrementato.
Se a i era associato il valore 5, dopo l’esecuzione dell’istruzione a i sarà associato il valore 6.
In questa ipotesi, scegliere la condizione e la istruzione mancanti nel seguente algoritmo in modo che scriva su video il quadrato s di un numero intero n ≥ 0 letto da tastiera:
leggi da tastiera n
s ← 0
i ← 0
x ← 1
finché condizione è vera esegui ripetutamente
da qui
s ← s+x
istruzione
i ← i+1
a qui
scrivi su video s
- condizione: i < n; istruzione: x ← x+2
- condizione: i ≤ n; istruzione: x ← x*2
- condizione: x < n; istruzione: x ← x+2
- condizione: i ≤ n; istruzione: x ← i*2+1
Prova…
0 | 1 | 2 | |
---|---|---|---|
i < n | 0<0? no! -> 0 | 0<1 sì -> 1 | 0<2 sì -> 4 |
i ≤ n | 0≤0? sì -> 1 | ||
x < n | 1<0? no! -> 0 | 1<1? no! -> 1 | 1<2? sì -> 1 |
i ≤ n | 0≤0? sì -> 1 |
Conclusioni
- Le risposte della riga a. sono esatte!
- La risposta della riga b è sbagliata per n=0.
- La risposta della riga c è sbagliata per n=2.
- La risposta della riga b è sbagliata per n=0.