Sunteți pe pagina 1din 2

Test 3- subprograme

Precizati,cu justificarea raspunsului,ce va tipari programul urmator:

1 2 3
Ce afişează? Fie a o matrice pătratica. Alegeţi Ce afişează următorul
Program pb_7; varianta corecta de subprogram care program?
Var x:integer; calculează suma elementelor de pe
Procedure afisare(x:integer); diagonala principala. program pb1;
Begin 1) function fs1(a:array[1..10,1..10]of var a,x:integer;
Write(x:2); x:=x+1; integer;s:integer):integer; procedure test(x:integer);
End; begin var a:integer;
Begin s:=0; begin
x:=1; for i:=1 to n do while x>1 do
while x<=5 do s:=s+a[i,i]; x:=x div 2;
begin fs1:=s; a:=x-1;
afisare(x); end; writeln(a,' ',x);
x:=x+1; 2) function fs2(a:array[1..10,1..10]of end;
end; integer;s:integer):integer; begin
end. begin a:=5;
fs2:=0; x:=15;
for i:=1 to n do writeln(a,' ',x);
fs2:=fs2+a[i,j]; test(x);
end; writeln(a,' ',x);
3) procedure fs3(a:array[1..10,1..10]of end.
integer;s:integer);
begin
for i:=1 to n do
for j:=1 to n do
s:=s+a[i,i];
writeln(s);
end;
a) 1 2 3 4 a) 1, 2 a) 5 15
b) 1 2 3 4 5 b) 1, 3 01
c) 1 3 5 c) 1, 2, 3 5 15
d)1 3 d) nici una din variante b) 5 15
01
c) 15 5
5 15
01

4 5
Ce calculeaza urmatoarea functie? Program nimic; For k:=0 to 9 do
Function produs(var var s,i:integer; if v[k] and t[k] then ncc:=false;
a:matrice; n:integer):integer; end;
Var s,i,j:integer; function ncc(a,b:integer):boolean; begin
Begin var v,t:array[0..9] of boolean; write('s=');
S:=0; k,c,d:integer; readln(s);
For i:=2 to n do begin for i:=0 to s div 2 do
For j:=n-i+2 to n do ncc:=true; if ncc(i,s-i) then writeln(i,' ',s-i);
S:=s+a[i,j]; for k:=0 to 9 do begin end.
Produs:=s; v[k]:=false; Ce face acest program?
End; t[k]:=false;
a) suma elem de sub diag. end; a) insumeaza s cifre consecutive;
principala; repeat b) divizorii primi ai unui numar;
b) produsul elem sub pe diag. c:=a mod 10; c) descopera numere palindroame;
secundara; v[c]:=true; d) afiseaza numerele cu cifre distincte
c) produsul elem de sub diag. a:=a div 10; care adunate dau o suma citita de la
principala; until a=0; tastatura
d) suma elem. de sub diag. repeat e) nimic
secundara; d:=b mod 10;
t[d]:=true;
b:=b div 10;
until b=0 ;
6 7 8
Alegeţi subprogramul care calculează Care dintre următoarele proceduri de Care din proceduri schimba coloanele
corect suma cifrelor unui număr. calculare a produsului 1*3*5*…*(2n- unei matrici?
a) procedure suma(var 1) sunt corecte? a) procedure schimblinie(var
s:integer;n:integer); a:matrice;i,j,n:integer);
begin a) procedure calc_prod(n:integer):real; var aux, l:integer;
s:=0; var p,k:integer; begin
while n div 10<>0 do begin for l:=1 to n
begin p:=1; do
s:=s+(n mod 10); for k:=1 to n do begin
n:=n div 10; p:=p*(2*k-1); aux:=a[l,i];
end; writeln(p); a[l,i]:= a[l,j];
writeln(s); end; a[l,j]:=aux;
end; b) procedure calc_prod; end ;
b) procedure suma1(var var p,k:integer; end;
s:integer;n:integer); begin b) procedure schimbcol(var
begin p:=0; a:matrice;i,j,n:integer);
s:=0; for k:=1 to n+1 do var aux, c:integer;
while n div 10<>0 do p:=p*(2*k-1); begin
begin writeln(p); for c:=1 to n
s:=s+1; end; do
n:=n div 10; c) procedure calc_prod(n:integer); begin
end; var p,k:integer; aux:=a[i,c];
writeln(s); p:=1; a[i,c]:= a[j,c];
end; for k:=1 to n do a[j,c]:=aux;
c) function suma; p:=p*(2*k-1); end ;
begin writeln(p); end;
s:=1; end; c) procedure schimbcol(var
while n mod 10 <>0 do a:matrice;i,j,n:integer);
begin var aux, c:integer;
s:=s+(n div 10); begin
n:=n mod 10; for c:=1 to n
end; do
writeln(s); begin
end; a[i,c]:=aux;
aux:=a[j,c];
a[j,c]:=aux;
end ;
end;

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