Sunteți pe pagina 1din 2

1.

Să se determine ce va afişa următorului program:


Var x,y:Integer;
Procedure Proc(x:integer; var y:integer);
Begin x:=1; y:=2 End;
Begin x:=10; y:=20; Proc(x,y); Writeln(x,' ',y); Proc(x,x); Writeln(x,' ',y); Proc(y,x);
Writeln(x,' ',y);
End.

2. Program Prog; Var a:integer;


Procedure proc(var b,c:integer);
Begin b:=1; c:=b+1; End;
Begin a:=1; proc(a,a); writeln(a); End;
Ce se va afişa dacă antetul procedurii proc ar fi
a) Procedure proc(b,c:integer) b) Procedure proc(b: integer; var c:integer)
c) Procedure proc(var b:integer; c:integer) d) Procedure proc(var b,c:integer);

3. Se dau 5 numere întregi a,b,c,d,e. De aflat cel mai mare din ele, folosind în calitate de
subprogram: a) procedura MAX2; b) funcţia MAX2;

4. De aflat suma elementelor pozitive într-un tablou liniar, care are cel mult 100 elemente, folosind
o procedură recursivă

Scrieţi ce se va afişa la ecran în rezultatul execuţiei următorului program


Program p;
Var N : Integer;
Procedure P1(Var N:Integer);
Begin N:=2*N; End;
Procedure P2( N:Integer);
Begin P1(N); End;
Begin
N:=25; P1(N); Write(N,' '); P2(N); WriteLn(N);
End.

Ce se va afişa la ecran în urma execuţiei următorului program:


Program sport;
  var x : boolean;
function f ( t : boolean ) : boolean;
  begin
   x := not t; f := t; 
  end;
begin   x := false; 
 writeln(x, '  ', f(x));  
 writeln(f(x), '  ' , x);
    end.
Scrieţi răspunsul _____________________

Elaboraţi o formă nerecursivă a funcţiei rec.

type tab=array [1..100] of real;
 var   a:tab;
       n:integer;  
 Function rec(n:integer):real;
Begin
  If n = 1 then rec:=0
          else if n mod 2=0 then rec:=rec(n ­ 1) + a[n]
    else  rec:=rec(n ­ 1)
End;

S-ar putea să vă placă și