2003/04 – Fase scolastica – 06

Si consideri la seguente funzione:

Function A(a: Integer; b: Integer): Integer;
Var
   p: Integer;
Begin
   p:=0;
   While a > 0 Do
      Begin
         If a Mod 2 = 1 Then
             p:=b+p;
         a:=a Div 2;
         b:=2*b;
      End;
   A:=p;
End;

Dire quale sarà il valore tornato dalle chiamate

  1. A(4, 3)
  2. A(7, 4)
  3. A(35, 25)