2008/09 – Fase scolastica – 03

Dato il seguente codice

Var
   a: Integer;
   b: Integer;
   x: Integer;
Function foo(a: Integer; b: Integer ): Integer;
Begin
   foo:=b-a;
End;
Begin
   a:=3;
   b:=5;
   x:=0;
   x:=foo(b,a)+a-b;
End.

Quanto vale la variabile x alla fine dell’esecuzione?

Risposte:

  1. 0
  2. 2
  3. -4
  4. nessuna delle precedenti.

Soluzione: c (-4).


Soluzione

Dobbiamo solo fare attenzione al fatto che le variabili a e b del programma principale vengono passate scambiate alla procedura foo().
Diventa a questo punto banale osservare che l’espressione calcolata risulta essere:

x=(3-5)+3-5

da cui si ricava che

x=-4.