Documente Academic
Documente Profesional
Documente Cultură
Secvența 2: Secvența 2:
s=0; i=<initial>; s:=0; i:=<initial>;
do repeat
{s=s+i*i; s:=s+i*i;
<instrucțiune> <instrucțiune>
} while(i>=1); until i=0;
Indicați cu ce trebuie înlocuite <initial> și <instrucțiune> astfel încât cele două
secvențe de cod să fie echivalente (în final variabila s să aibă aceeași valoare).
Limbajul C/C++ Limbajul Pascal
a) n și i=i-1; a) n și i:=i-1;
b) 1 și i=i+1; b) 1 și i:=i+1;
c) n și i=i+1; c) n și i:=i+1;
d) 0 și i=i+1; d) 0 și i:=i+1;
e) n+1 și i=i+1; e) n+1 și i:=i+1;
f) 0 și i=i-1; f) 0 și i:=i-1;
81
else c=b;
c) if(a>b && a%2==0 && c) if (a>b) and (a mod 2=0)
b%2==0) c=a; and (b mod 2=0) then c:=a;
if(a<b && a%2!=0 && if (a<b) and (a mod 2<>0)
b%2!=0) c=b; and (b mod 2<>0) then c:=b;
4. Indicați numărul minim de muchii ce trebuie eliminate dintr-un graf neorientat complet
care are 88 noduri astfel încât acesta să devină eulerian.
a) 0 b) 84 c) 88 d) 176 e) 10 f) 44
7. Precizați intervalul căruia îi aparţine valoarea memorată de variabila reală x, astfel încât
expresia următoare să aibă valoarea 1 (pentru Limbajul C/C++), true (pentru Limbajul
Pascal)
Limbajul C/C++
x<-10 || !(!(x>=10) || Limbajul Pascal
(x<-10) or not(not(x>=10) or
x>=100)
(x>=100))
a) x ∈ (−∞, − )∪[ , )
b) ∈ (−∞, − ]∪[ , )
82
c) ∈ (−∞, − ) ∪ ( , )
d) ∈ (−∞, − ) ∪ [ , ]
e) ∈ (− , ) ∪ ( , +∞)
f) ∈ (− , )
8. În secvenţa de mai jos, variabilele i,j,x şi y sunt de tip întreg, iar variabila a
memorează un tablou bidimensional în care prima linie şi prima coloană sunt numerotate
cu 1. Toate elementele tabloului primesc valori în urma executării secvenţei. Precizați
care este valoarea elementului a[4][4] (pentru limbajul C/C++), respectiv a[4,4]
(pentru limbajul Pascal) în urma executării secvenţei de mai jos.
Limbajul C/C++ Limbajul Pascal
x =3478; x:=3478;
for(j=4;j>=1;j--) for j:=4 downto 1 do
{ y=x; begin
for(i=4;i>=1;i--) y:=x;
{ for i:=4 downto 1 do
if(j%2==0)a[i][j]=10-y%10; begin
else a[i][j]=y%10; if j mod 2=0 then
y=y/10; a[i,j]:=10-y mod 10
} else a[i,j]:=y mod 10;
x++;} y:=y div 10;end;
x:=x+1; end;
a) 7 b) 3 c) 6 d) 4 e) 2 f) 8
9. Precizați numărul maxim de noduri izolate pe care le poate avea un graf neorientat cu
30 de noduri și 20 de muchii
a) 24 b) 23 c) 15 d) 25 e) 0 f) 10
10. Se consideră un graf neorientat cu 9 noduri, al cărui vector de muchii este M = {(1,2),
(1,9), (2,3), (3,4), (3,7), (3,8), (4,5), (5,6), (5,7), (6,7), (6,8), (8,9)}. Indicați numărul
minim de muchii care trebuie eliminate astfel încât graful să devină eulerian, dar să
rămână hamiltonian.
a) 4 b) 0 c) Nu se poate d) 2 e) 7 f) 3
11. Se utilizează metoda backtracking pentru a genera șiruri de câte 5 caractere distincte din
mulţimea {a,1,b,2,c,3,d,4} cu proprietatea că nu poate să aibă două cifre sau
două litere alăturate. Ştiind că primul șir generat este a1b2c, iar al doilea este a1b2d,
precizați șirul obţinut imediat înainte de 2c4a1.
a) 2c3d4 b) 2c1b4 c) 2b4d3 d) 2c3a4 e) 1c3a4 f) 2c1a4
83
if(a[i]>='0' && a[i]<='9') v:='aeiouAEIOUn';
a[i]=v[a[i]-'0']; for i:=1 to length(a) do
if (a[i]>='0') and (a[i]<='9')
then
a[i]:=v[ORD(a[i])-ORD('0')+1];
a) Eroare de
b) iEiunieinOe c) eAiunieeUIa
compilare
d) 152410211970 e) EiunieinO f) AiunieeUI
84
14. Indicați valorile variabilelor a și b, în urma apelului f(a,b,b) (pentru Limbajul
C++/Pascal), respectiv f(&a,b,b) (pentru Limbajul C), al subprogramului f definit
mai jos.
Limbajul C++ Limbajul Pascal
int a,b; var a,b:integer;
void f(int&x,int y,int b) procedure f(var x:integer;
{ a++; b++; y,b:integer);
x=x*2; y=y*3; begin
} inc(a); inc(b);
x:=x*2; y:=y*3;
Limbajul C end;
int a,b;
void f(int*x,int y,int b)
{ a++; b++;
*x=*x*2; y=y*3;
}
a) Eroare de
b) 2 3 c) 1 1 d) 2 0 e) 2 2 f) 1 0
compilare
85