OII 2012-11-30 – Quesito 20


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
  1. condizione: i < n; istruzione: x ← x+2
  2. condizione: i ≤ n; istruzione: x ← x*2
  3. condizione: x < n; istruzione: x ← x+2
  4. condizione: i ≤ n; istruzione: x ← i*2+1

Prova…

012
i < n
x ← x+2
0<0? no!
-> 0
0<1 sì
s ← 1
x ← 3
i ← 1
1<1? no!

-> 1
0<2 sì
s ← 1
x ← 3
i ← 1
1<2? sì
s ← 4
x ← 5
i ← 2
2<2? no!
-> 4
i ≤ n
x ← x*2
0≤0? sì
s ← 1
x ← 2
i ← 1
1≤0? no!

-> 1
x < n
x ← x+2
1<0? no!
-> 0
1<1? no!
-> 1
1<2? sì
s ← 1
x ← 3
i ← 1
3<2? no!

-> 1
i ≤ n
x ← i*2+1
0≤0? sì
s ← 1
x ← 1
i ← 1
1≤0? no!

-> 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.