Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Subprogramul alăturat, f, este incomplet definit. Indicați expresia cu care pot fi înlocuite punctele de suspensie, astfel încât, în urma apelului de mai jos, să se afișeze 7.
f(35,17);
procedure f(n,d:integer);
begin if n mod d=0 then
write(d,’ ’)
else f(........)
end;
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Subprogramul f este definit alăturat. Indicați ce se afișează în urma apelului de mai jos.
f(3);
procedure f(n:integer);
var i:integer;
begin
for i:=1 to n do if i mod 2=0 then
begin write(i); f(i-1) end
else
begin f(i-1); write(i) end
end;
Variabila k este de tip întreg, iar variabila s permite memorarea unui șir de maximum 20 de caractere. Indicați valoarea variabilei k în urma executării secvenței alăturate.
Subprogramul f este definit incomplet, alăturat. Indicați o expresie cu care pot fi înlocuite punctele de suspensie pentru ca f(n,3) să aibă valoarea 1 pentru orice număr prim n (n∈[2,10⁴]) și valoarea 0 în caz contrar.
function f(x,y:integer):integer;
begin if (x<>2) and (x mod 2=0) then f:=0
else if y*y>x then f:=1
else if x mod y=0 then f:=0
else f:=f(x,.........)
end;
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Subprogramul f este definit alăturat. Indicați valorile pe care le pot avea parametrii n și c, astfel încât, în urma apelului, f(n,c) să aibă valoarea 2021.
function f(n,c:longint):longint;
begin if n=0 then f:=0
else
if n mod 10=c then f:=f(n div 10,c)
else f:=n mod 10+10*f(n div 10,c)
end;
a. n=2021 și c=0
b. n=200211 și c=2
c. n=312032 și c=3
d. n=720721 și c=7
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Subprogramul f este definit alăturat.
type tab=array[0..4] of integer;
function f(s,d:integer; v:tab):integer;
begin if s=d then if v[d]=2*d then f:=1
else f:=0
else f:=f(s,(s+d) div 2,v) + f(1+(s+d) div 2,d,v)
end;
Știind că variabila x memorează un tablou unidimensional cu elementele (2,0,2,6,8), în această ordine, numerotate de la 0 la 4, indicați valoarea f(0,4,x).
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Diagrama originală a mozaicului, inclusiv cele două zone evidențiate, se află la pagina 1.
Un mozaic este alcătuit din plăcuțe de formă pătrată, cu dimensiuni egale, de culoare albă sau roșie, așezate pe două rânduri și aliniate ca în exemplu. Mozaicul are un model în zig-zag dacă oricare două plăcuțe cu o latură comună au culoare diferită. Se știe că plăcuțele de pe latura din dreapta au culori diferite.
Variabilele j și ok sunt întregi, iar variabila a este un tablou bidimensional cu două linii și 12 coloane, cu elemente de tip char, în care fiecare linie, în ordine, memorează succesiunea de plăcuțe aflate pe un rând al mozaicului, notându-se cu litera R cele roșii și cu litera A cele albe. Liniile și coloanele sunt numerotate începând de la 0.
Indicați expresia care poate înlocui punctele de suspensie astfel încât, în urma executării secvenței Pascal obținute, variabila ok să aibă valoarea 1, dacă mozaicul are un model în zig-zag, sau valoarea 0 în caz contrar.
Exemplu: în urma executării secvenței pentru tabloul de mai jos, unde sunt evidențiate două zone în care nu se respectă modelul, ok=0.
ok:=1;
for j:=0 to 10 do
if ........ then ok:=0;
R A A R A R A R A R A R
A R R A R A R A R R R A
a. (a[0,j]=a[0,j-1]) or (a[0,j]=a[1,j-1])
b. (a[0,j]=a[0,j+1]) or (a[0,j]=a[1,j+1])
c. (a[0,j]=a[0,j-1]) or (a[0,j]=a[1,j+1])
d. (a[0,j]=a[0,j+1]) or (a[0,j]=a[1,j])
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Subprogramul f este definit alăturat.
Indicați valoarea f(2,5).
function f(n,x:integer):integer;
begin if n>0 then
f:=f(f(n-2,x)-2,x-5)
else f:=x
end;
Subprogramul f este definit alăturat, iar variabila întreagă r are valoarea 0 înainte de apel. Indicați apelul în urma căruia variabila r are valoarea 2.
procedure f(x,y:integer; var z:integer);
begin if (x mod 2)*(y mod 2)<>0 then z:=1
else begin f(x div 2,y div 2,z); z:=z+1 end
end;
a. f(21,22,r);
b. f(20,21,r);
c. f(19,20,r);
d. f(18,19,r);
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Subprogramul f este definit alăturat.
type T=array[0..4] of integer;
function f(st,dr:integer;v:T):integer;
begin if st=dr then if v[st]=st then f:=1
else f:=0
else f:=f(st,(st+dr) div 2,v) + f(1+(st+dr) div 2,dr,v)
end;
Știind că variabila x este de tip T și memorează un tablou unidimensional cu elementele (7,1,2,5,4), în această ordine, numerotate de la 0 la 4, indicați valoarea f(0,4,x).
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Declarația alăturată:
type data=record
zi,luna,an:integer
end;
var x:data;
Variabila x este declarată alăturat. Indicați secvența care, în urma executării, afișează pe ecran ziua, luna și anul corespunzătoare unei date calendaristice memorate în variabila x.
a. write(x.zi,' ',x.luna,' ',x.an);
b. write(zi.x,' ',luna.x,' ',an.x);
c. write(x(zi,luna,an),' ');
d. write(data.x.zi,' ',data.x.luna,' ',data.x.an);
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte.
Utilizând metoda backtracking se generează toate valorile naturale formate cu cifre ale numărului 289 și care sunt strict mai mici decât acesta. Primele șase numere generate sunt, în această ordine, 2, 22, 222, 228, 229, 28. Indicați al câtelea număr generat este 8.
a. al 10-lea
b. al 9-lea
c. al 8-lea
d. al 7-lea