2008/09 – Fase scolastica – 02

Data la seguente porzione di codice:

procedure foo();
var
   contatore: Integer;
   sum      : Integer;
begin
   sum      :=0;
   contatore:=1000;
   Repeat
      sum      :=0;
      contatore:=contatore-1;
      sum      :=sum+contatore;
   Until(contatore >= 0);
   Writeln(sum);
End;

Quanto vale la variabile sum alla fine dell’elaborazione?

Risposte:

  1. 1
  2. 999
  3. 1000
  4. 1001

Soluzione: b (999).


Soluzione

Soluzioni commentate

Possiamo facilmente osservare che il ciclo viene eseguito una sola volta, e che alla variabile sum – appena azzerata – viene assegnato il valore della variabile contatore dopo che tale variabile è stata decrementata di 1.