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
Soluzione: a.
Soluzione
Prova…
n | i < n x ← x+2 |
i ≤ n x ← x*2 |
x < n x ← x+2 |
i ≤ n x ← i*2+1 |
0 | 0<0? no! 0 |
0≤0? sì s ← 1 x ← 2 i ← 1 1≤0? no! 1 |
1<0? no! 0 |
0≤0? sì s ← 1 x ← 1 i ← 1 1≤0? no! 1 |
1 | 0<1 sì s ← 1 x ← 3 i ← 1 1<1? no! 1 |
1<1? no! 1 |
||
2 | 0<2 sì s ← 1 x ← 3 i ← 1 1<2? sì s ← 4 x ← 5 i ← 2 2<2? no! 4 |
1<2? sì s ← 1 x ← 3 i ← 1 3<2? no! 1 |
Per n=0 falliscono b. e d.
Per n=2 fallisce c.