Sunteți pe pagina 1din 15

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE

1.Scriei un program PASCAL/C/C++ care citete de la tastatur dou numere naturale nenule n i m
(2m10, 2n10) i care construiete n memorie i apoi afieaz o matrice A cu n linii (numerotate
de la 1 la n) i m coloane (numerotate de la 1 la m) cu proprietatea c fiecare element Aij memoreaz
cea mai mic dintre valorile indicilor i i j (1in, 1jm). Matricea se va afia pe ecran, cte o linie a
matricei pe cte o linie a ecranului, elementele fiecrei linii fiind separate prin cte un spaiu.
Exemplu: pentru n=4 i m=5 se va afia matricea alturat.
11111
12222
12333
12344
Type matrice=array[1..50,1..50]
Var a : matrice ;
I, m,n,j :integer ;
Read(n,m) ;
For i :=1 to n do
For j :=1 to m do
If i<j then a[i,j] :=i ;
Else a[i,j] :=j ;
For i :=1 to n do
For j :=1 to m do
Write(a[i,j], ) ;
Writeln ;
End.
2.Scriei un program Pascal care citete de la tastatur un cuvnt format din cel mult 20 de caractere,
doar litere ale alfabetului englez. Programul determin transformarea cuvntului citit prin eliminarea
fiecrei litere mici a cuvntului, restul literelor nemodificndu-se, ca n exemplu. Programul afieaz
pe ecran cuvntul obinut. n cazul n care cuvntul citit conine numai litere mici, programul va afia
mesajul CUVANT VID. Exemple:
- dac se citete cuvntul: baCALaUreaT se va afia pe ecran: CALUT
- dac se citete cuvntul: vara se va afia pe ecran: CUVANT VID

var s:string[20];
i:integer;
begin
readln(s);
i:=1;
while i<=length(s) do
if s[i] in [a..z] then delete(s,1,i);
else i:=i+1;
n:= n-1;
end;
if s[i]= then write(cuvant vid);
else write(s);
end.
3.Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2n24) i
construiete n memorie o matrice cu n linii i n coloane ale crei elemente vor primi valori dup cum
urmeaz:
- elementele aflate pe diagonala principal a matricei vor primi valoarea 0

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


- elementele de pe prima coloan, cu excepia celui aflat pe diagonala principal vor primi valoarea n
- elementele de pe a doua coloan, cu excepia celui aflat pe diagonala principal vor primi valoarea
n-1...
- elementele de pe ultima coloan, cu excepia celui aflat pe diagonala principal vor primi valoarea 1
Programul va afia matricea astfel construit pe ecran, cte o linie a matricei pe cte o linie a
ecranului, cu cte un spaiu ntre elementele fiecrei linii (ca n exemplu).
Exemplu: pentru n=4 se va afia matricea alturat.
0321
4021
4301
4320

Type matrice=array[1..50,1..50] ;
Var a :matrice ;
I,j,n :integer ;
Begin
Readln(n) ;
For i :=1 to n do
For j :=1 to n do
If i=j then a[i,j] :=0
Else a[j,i] :=n-i+1 ;
For i :=1 to n do
Begin
For j :=1 to n do
Write( a[i,j], ) ;
Writeln ;
End ;
End.

4.Scriei un program PASCAL/C/C++ care citete de la tastatur dou numere naturale n i m


(2m10, 2n10) i care construiete n memorie i apoi afieaz o matrice A cu n linii (numerotate
de la 1 la n) i m coloane numerotate de la 1 la m) cu proprietatea c fiecare element Aij memoreaz
cea mai mare dintre valorile indicilor i i j (1in, 1jm). Matricea se va afia pe ecran, cte o linie a
matricei pe cte o linie a ecranului, elementele fiecrei linii fiind separate prin cte un spaiu.
Exemplu: pentru n=4 i m=5 se va afia matricea alturat.
12345
22345
33345
44445

5.Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2n24) i


construiete n memorie o matrice cu n linii i n coloane ale crei elemente vor primi valori dup cum
urmeaz:
- elementele aflate pe diagonala secundar a matricei vor primi valoarea 0
- elementele de pe prima linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea n
- elementele de pe a doua linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea n-1
...

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


- elementele de pe ultima linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea 1
Programul va afia matricea astfel construit pe ecran, cte o linie a matricei pe cte o linie a
ecranului, cu cte un spaiu ntre elementele fiecrei linii (ca n exemplu).
Exemplu: pentru n=4 se va afia matricea alturat.
4440
3303
2022
0111
Type matrice=array[1..50,1..50]
Var a ;matrice ;
N,i,j :integer ;
Begin
Readln(n) ;
For i :=1 to n do
For j :=1 to n do
If i+j=n+1 then a[i,j] :=0 ;
Else a[i,j] := n-i+j ;
For i :=1 to n do
Begin
For j :=1 to n do
Write(a[i,j] ) ;
Writeln ;
End ;
End.
6. Se consider un text cu maximum 255 de caractere n care cuvintele sunt separate prin unul sau mai
multe spaii. Primul caracter din textul citit este o liter, iar cuvintele sunt formate numai din litere
mici ale alfabetului englez. Scriei un program PASCAL/C/C++ care citete de la tastatur textul i l
transform nlocuind prima liter a fiecrui cuvnt cu litera mare corespunztoare, restul caracterelor
rmnnd nemodificate. Textul astfel transformat va fi afiat pe ecran.
Exemplu: dac de la tastatur se introduce textul: mare frig rosu
se va afia pe ecran: Mare Frig Rosu
var s:string[55];
i:integer;
begin
read(s);
s[1]:=upcase(s[1]);
for i:=1 to length(s) do
if (s[i]>=a) and (s[i]<=z) and(s[i-1]= ) then s[i]:= upcase(s[i]);
write(s);
end.
7.Se consider un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez i
spaii. Textul conine cel puin o consoan. Scriei un program PASCAL/C/C++ care citete de la
tastatur textul i afieaz pe ecran numai ultima consoan care apare n text.
Exemplu: dac de la tastatur se introduce textul mare frig saci pe ecran se va afia: c
Var s:string[255];
I:integer;
C:char;
M:set of char;
Begin
Readln(s);
M:=[a,e,i,o,u , ];

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


For i:=1 to length(s) do
If not(s[i] in m) then c:=s[i];
Write(c);
End.

8.Scriei un program PASCAL/C/C++ care citete de la tastatur dou numere naturale n i p


(2n20, 1p20) i construiete n memorie un tablou bidimensional cu n linii i p coloane. Tabloul
va fi construit astfel nct, parcurgnd tabloul linie cu linie de sus n jos i fiecare linie de la stnga la
dreapta, s se obin irul primelor n*p ptrate perfecte impare, ordonat strict cresctor, ca n
exemplu. Tabloul astfel construit va fi afiat pe ecran, fiecare linie a tabloului pe cte o linie a
ecranului, cu cte un spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=2, p=3 programul va afia tabloul alturat:
1 9 25
49 81 121
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
N,p,j :integer ;
Begin
Read(n,p) ; x :=1 ;
For i :=1 to n do
For j :=1 to p do
A[i,j] :=x*x ;
X :=x+2 ; end ;
For i :=1 to n do
For j :=1 to p do
Write (a[i,j], ) ;
End ;
end.

9. Se consider tabloul bidimensional cu n linii i n coloane ce conine numere naturale cu cel mult
patru cifre fiecare. Scriei programul PASCAL/C/C++ care citete de la tastatur numrul natural n
(2n23) i cele n*n elemente ale tabloului i apoi afieaz pe ecran elementele primului ptrat
concentric, separate prin cte un spaiu. Ptratul este parcurs n sensul acelor de ceasornic ncepnd
din colul su stnga-sus, ca n exemplu. Primul ptrat concentric este format din prima i ultima linie,
prima i ultima coloan a tabloului.
Exemplu: pentru n=5 i tabloul alturat
12345
67891
23456
78912
34567
se va afia: 1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
Begin
Read(n) ;
For i :=1 to n do
For j :=1 to n do

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


Read(a[i,j]) ;
For i :=1 to n do
Write(a[1,i], ) ;
For i :=2 to n do
Write(a[i,n], ) ;
For i :=n downto 1 do
Write(a[n,i], ) ;
For i := n-1 downto 2 do
Write(a[i,1], ) ;
End.
10. Scriei un program PASCAL/C/C++ care citete de la tastatur dou numere naturale n i p
(1<n20, 1p20) i construiete n memorie un tablou bidimensional cu n linii i p coloane. Tabloul
va fi construit astfel nct parcurgnd matricea de la prima linie ctre ultima i fiecare linie de la
stnga la dreapta s se obin irul primelor n*p ptrate perfecte pare ordonat strict cresctor. Tabloul
astfel construit va fi afiat pe ecran, fiecare linie a tabloului pe cte o linie a ecranului, cu cte un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=2, p=3 programul va afia tabloul alturat:
0 4 16
36 64 100
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
N,p,j :integer ;
Begin
Read(n,p) ; x :=0 ;
For i :=1 to n do
For j :=1 to p do
A[i,j] :=x*x ;
X :=x+2 ; end ;
For i :=1 to n do
For j :=1 to p do
Write (a[i,j], ) ;
End ;
end.

11.Scriei un program PASCAL/C/C++ care citete de la tastatur dou valori naturale nenule m i n
(m10, n10) i apoi un numr de m*n numere naturale nenule cu cel mult 4 cifre fiecare,
reprezentnd elementele unei matrice cu m linii i n coloane. Programul determin apoi valorile
minime de pe fiecare linie a matricei i le afieaz pe o linie a ecranului separate prin cte un spaiu.

12 9 10

5 13

4
2

7
3

Exemplu: pentru m=3, n=5 i matricea


, se afieaz pe ecran valorile 3 6 2 (cea
mai mic valoare de pe prima linie a matricei este 3, cea mai mic valoare de pe linia a doua este 6,
cea mai mic valoare de pe linia a treia este 2).
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
i,n,j:integer;
begin

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


read(m,n);
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to m do begin
min:=9999;
for j:=1 to n do
if a[i,j]< min then min:=a[i,j];
write(min, );
end;
end.

12.Scriei un program Pascal care citete de la tastatur un numr natural n (2<n<25) i apoi
construiete n memorie o matrice cu n linii i n coloane, numerotate de la 1 la n, ale crei elemente
primesc valori dup cum urmeaz: elementul din linia i i coloana j primete ca valoare ultima cifr a
produsului i*j (1in i 1jn).
Programul va afia matricea astfel construit pe ecran, cte o linie a matricei pe cte o linie a
ecranului, elementele fiecrei linii fiind separate prin cte un spaiu.
Exemplu: pentru n=4 se va afia matricea alturat.
1234
2468
3692
4826
Type matrice=array[1..100,1..100] of integer ;
Var a:matrice:
I,j,n:integer;
Begin
Read(n);
For i:=1 to n do
For j:=1 to n do
A[I,j]:=i*j mod 10
For i:=1 to n do begin
For j:=1 to n do
Write(a[I,j]. );
Writeln;
End;
End.

13.Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<40) i


apoi construiete n memorie o matrice cu n linii i n coloane, numerotare de la 1 la n, ale crei
elemente primesc valori dup cum urmeaz:
- elementele aflate pe diagonala secundar sunt toate nule;
- elementele aflate deasupra diagonalei secundare sunt toate 1;
- elementele aflate sub diagonala secundar sunt toate 2.
Programul afieaz pe ecran matricea construit, cte o linie a matricei pe cte o linie a ecranului,
elementele fiecrei linii fiind separate prin cte un spaiu.
Exemplu: pentru n=4 se va afia matricea alturat.
1110
1102
1022
0222

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


Type matrice=array[1..100,1..100] of integer ;
Var a:matrice:
I,j,n:integer;
Begin
Read(n);
For i:=1 to n do
A[I,n-i+1]:=0
For i:=1 to n-1 do
For j:=1 to n-i do
A[I,j]:=1
For i:=1 to n do
For j:=1 to n-i+2 do
A[I,j]:=2;
For i:=1 to n do begin
For j:=1 to n do
Write(a[I,j], );
Writeln;
End;
End.

14. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural nenul cu exact 4
cifre, construiete n memorie i afieaz apoi pe ecran o matrice avnd 4 linii i 4 coloane, completat
astfel: elementele de pe prima coloan a matricei vor fi toate egale cu cifra unitilor numrului dat,
elementele de pe a doua coloan a matricei vor fi toate egale cu cifra zecilor numrului dat, elementele
de pe a treia coloan a matricei vor fi toate egale cu cifra sutelor numrului dat, iar elementele de pe a
patra coloan a matricei vor fi toate egale cu cifra miilor numrului dat.
Matricea va fi afiat pe ecran, cte o linie a matricei pe cte o linie a ecranului, iar elementele fiecrei
linii vor fi separate prin cte un spaiu.
Exemplu: dac se citete numrul 1359, matricea construit va fi cea alturat.

Type matrice=array[1..100,1..100] of integer ;


Var a:matrice:
I,j,n:integer;
Begin
Read(n);
For i:=1 to 4 do begin
For j:=1 to 4 do
A[I,j]:=n mod 10;
N:= n div 10;
End;
For i:=1 to 4 do begin
For j:=1 to 4 do
Write(a[I,j], );
Writeln;
End;
End.

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE

15. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural cu exact 5 cifre
i construiete n memorie o matrice cu 5 linii i 5 coloane, numerotate de la 1 la 5, format astfel:
- elementele de pe linia 1, au toate valoarea egal cu cifra unitilor numrului citit;
- elementele de pe linia 2, au toate valoarea egal cu cifra zecilor numrului citit;
- elementele de pe linia 3, au toate valoarea egal cu cifra sutelor;
- elementele de pe linia 4, au toate valoarea egal cu cifra miilor;
- elementele de pe linia 5, au toate valoarea egal cu cifra zecilor de mii.
Programul afieaz pe ecran matricea astfel construit, cte o linie a matricei pe cte o linie a
ecranului, elementele de pe aceeai linie fiind separate prin cte un spaiu.
Exemplu: dac se citete numrul 28731 matricea construit va fi cea alturat.
11111
33333
77777
88888
22222
Type matrice=array[1..100,1..100] of integer ;
Var a:matrice:
I,j,n:integer;
Begin
Read(n);
For i:=1 to 5 do begin
For j:=1 to 5 do
A[I,j]:=n mod 10;
N:= n div 10;
End;
For i:=1 to 5 do begin
For j:=1 to 5 do
Write(a[I,j], );
Writeln;
End;
End.

16. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<16),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, n care elementele de pe
cele dou diagonale sunt egale cu 4, iar restul elementelor sunt egale cu 3. Elementele matricei vor fi
afiate pe ecran, cte o linie a matricei pe cte o linie a ecranului cu cte un spaiu ntre elementele
fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat.
43334
34343
33433
34343
43334
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ; I ,j,n :integer ;
Begin
Read(n);
For i :=1 to n do

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


A[i,j] :=3 ;
For i :=1 to n do
Begin
A[i,i] :=4 ;
A[i,n-i+1] :=4 ;
End ; For i:=1 to 1 do begin
For j:=1 to n do
Write(a[i,j], ) ;
Writeln ;
End ;
17.Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, n care fiecare element
de pe diagonala secundar are valoarea n, fiecare element aflat deasupra diagonalei secundare este mai
mic cu o unitate dect vecinul aflat pe aceeai linie n dreapta lui i fiecare element aflat sub diagonala
secundar este mai mare cu o unitate dect vecinul aflat pe aceeai linie n stnga lui.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a ecranului cu cte un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat.
12345
23456
34567
45678
56789
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
I ,j,n :integer ;
Begin
Read(n) ;
For i :=1 to n do
For j :=1 to n do
A[i.j] :=i+j-1 ;
For i :=1 to n do
Begin
For j:=1 to n do
Write(a[i,j], ) ;
Writeln ;
End ;
End .
18. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate de la 1 la n.
Fiecare element din matrice aflat pe o linie impar va fi egal cu numrul liniei pe care se afl i fiecare
element aflat pe o linie par va fi egal cu numrul coloanei pe care se afl.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a ecranului cu cte un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat.
11111
12345
33333
12345

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


55555
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
I ,j,n :integer ;
Begin
Read(n) ;
For i :=1 to n do
For j :=1 to n do
If I mod 2=1 then a[I,j]:=I
Else a[I,j]:=j;
For i :=1 to n do
Begin
For j:=1 to n do
Write(a[i,j], ) ;
Writeln ;
End ;
End.

19. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate de la 1 la n,
n care fiecare element aflat pe o coloana impar este egal cu suma dintre numrul liniei i numrul
coloanei pe care se afl i fiecare element aflat pe o coloan par este egal cu numrul liniei pe care se
afl.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a ecranului, cu cte un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat.
21416
32527
43638
54749
6 5 8 5 10
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
I ,j,n :integer ;
Begin
Read(n) ;
For i :=1 to n do
For j :=1 to n do
If j mod 2=1 then a[I,j]:=i+j
Else a[I,j]:=i;
For i :=1 to n do
Begin
For j:=1 to n do
Write(a[i,j], ) ;

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


Writeln ;
End ;
End.

20. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<10),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate de la 1 la n,
n care fiecare element aflat pe prima linie sau pe prima coloan din matrice este egal cu suma dintre
numrul liniei i numrul coloanei pe care se afl, iar fiecare dintre celelalte elemente este egal cu
suma dintre elementul vecin aflat pe aceeai linie cu el, dar pe coloana din stnga sa i elementul vecin
aflat pe aceeai coloan cu el, dar pe linia de deasupra sa.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a ecranului cu cte un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va obine matricea alturat.
2 3 4
5
6
3 6 10 15 21
4 10 20 35 56
5 15 35 70 126
6 21 56 126 252
Type matrice=array[1..100,1..100] of integer ;
Var a :matrice ;
I ,j,n :integer ;
Begin
Read(n) ;
For i :=1 to n do
For j :=1 to n do
If (i-1) and (j-1) then a[I,j]:=i+j
Else a[I,j]:=a[I,j-1]+a[i-1,j];
For i :=1 to n do
Begin
For j:=1 to n do
Write(a[i,j], ) ;
Writeln ;
End ;
End.

21. Se consider un text alctuit din cel mult 250 de caractere, n care cuvintele sunt formate doar din
litere mici ale alfabetului englez i sunt separate prin unul sau mai multe caractere *. Scriei un
program PASCAL/C/C++ care citete de la tastatur textul i afieaz pe ecran, pe cte o linie, toate
secvenele formate din cte dou litere identice, ca n exemplu.
Exemplu: dac textul citit este:
se afieaz perechile alturate.
ii
ii
oo

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE

22. Scriei un program PASCAL/C/C++ care citete de la tastatur numerele naturale m i n din
intervalul [1,20], apoi construiete n memorie i afieaz pe ecran un tablou bidimensional cu m linii
i n coloane astfel nct prin parcurgerea acestuia linie cu linie de sus n jos i fiecare linie de la stnga
la dreapta, se obin n ordine descresctoare toate numerele naturale de la 1 la m*n, ca n exemplu.
Fiecare linie a tabloului este afiat pe cte o linie a ecranului, elementele aceleiai linii fiind separate
prin cte un spaiu.
Exemplu: pentru m=4 i n=3 se va construi i afia tabloul alturat.
121110
987
654
321
Type matrice=array[1..50,1..50] of integer ;
Var a :matrice ;
I ,j,n ,m,s:integer ;
Begin
Read(n,m) ; s:=m*n;
For i :=1 to m do
For j :=1 to n do begin
A[I,j]:=s;
S:=s-1;
End;
For i :=1 to m do
Begin
For j:=1 to n do
Write(a[i,j], ) ;
Writeln ;
End ;
End.

23. Un tablou bidimensional A cu m linii i n coloane (1m100, 1n100) conine pe prima linie
numerele 1,2,...,n, iar pe prima coloan numerele 1,2,...,m. Celelalte elemente ale tabloului sunt date
de relaia: A[i][j]=A[i-1][j]+A[i][j-1]. Scriei un program PASCAL/C/C++ care citete de la tastatur
numerele m i n i afieaz pe ecran elementul de pe ultima linie i ultima coloan a tabloului.
Exemplu: pentru m=3 i n=4 se va afia 5 deoarece elementele tabloului A sunt:
1 2 3 4
24711
371425
Type matrice=array[1..50,1..50] of integer ;
Var a :matrice ;
I ,j,n ,m,:integer ;
Begin
Read(n,m) ;

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


For i :=1 to m do
A[I,1]:=I;
For j:=1 to n do
A[1,i]:=I;
For i:=2 to m do
For j:=2 to n do
A[I,j]:=a[i-1,j]+a[I,j-1];
Write(a[m,n], );
End.

24. Scriei un program PASCAL/C/C++ care citete de la tastatur dou iruri de caractere formate
din maximum 100 litere mici ale alfabetului englez i afieaz pe ecran cel mai lung sufix comun al
celor dou iruri de caractere. Dac cele dou iruri nu au niciun sufix comun, atunci programul va
afia pe ecran mesajul NU EXIST.
Exemplu: pentru irurile marina i elena se va afia na
Var t,s,p:string[100];
ok:boolean;
i,j:integer;
begin
readln(s);
readln(t);
p:=; ok:=true;
while (i>=1) and (j>=1) and (ok=true) do begin
if s[i]=t[i] then p:=p+s[i]
else ok:=false;
i:=i-1; j:=j-1;
end;
if p= then write(nu exista)
else for i:=lenght(p) downto 1 do
write(p[i]);
end.
25.Se consider un tablou bidimensional cu m linii i n coloane (1m100,1n100), ale crui
elemente aparin mulimii {0,1,2}. Scriei un program PASCAL/C/C++ citete de la tastatur valorile
m, n i elementele tabloului i care afieaz pe ecran numerele de ordine ale coloanelor pentru care
produsul elementelor situate pe ele, este maxim. Liniile i coloanele tabloului se numeroteaz de la 1
la m respectiv de la 1 la n. Numerele se vor afia separate prin cte un spaiu.
Exemplu: pentru m=4 i n=4 i tabloul alturat
2110
1111
2221
1211
se va afia, nu neaprat n aceast ordine: 12
26. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<=n<=9) i
elementele unui tablou bidimensional A cu n linii i n coloane, care memoreaz numere naturale mai

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


mici dect 10, i afieaz pe ecran pentru fiecare coloan, produsul elementelor de pe acea coloan.
Valorile afiate vor fi separate prin cte un spaiu.
Exemplu: pentru matricea din figura alturat
1 1 2 3
9 2 5 4
8 6 1 1
0 2 2 1
se afieaz, nu neaprat n aceast ordine, valorile 0 24 20 12.

27. Scriei un program PASCAL/C/C++ care citete de la tastatur un numr natural n (2<n<=10) i
construiete n memorie o matrice A cu n linii i n coloane n care toate elementele de pe prima linie,
prima i ultima coloan au valoarea 1 i oricare alt element Aij din matrice este egal cu suma a 3
elemente situate pe linia i-1: primul aflat pe coloana j-1, al doilea pe coloana j, iar al treilea pe coloana
j+1, ca n exemplu. Matricea va fi
afiat pe ecran, linie cu linie, numerele de pe aceeai linie fiind separate prin cte un spaiu.
Exemplu: pentru n=5 , se afieaz matricea alturat.

28. irul de caractere s2 este clona irului de caractere s1 dac se poate obine din s1 prin
eliminarea tuturor apariiilor unei singure vocale. Se consider vocal orice liter din
mulimea {a,e,i,o,u}. Scriei programul Pascal care citete de la tastatur un cuvnt format din
cel mult 20 litere mici ale alfabetului englez i afieaz pe ecran (dac exist), toate clonele
acestui cuvnt,
fiecare pe cte o linie a ecranului.
Exemplu: pentru cuvntul informatica se afieaz, nu neaprat n aceast ordine, clonele
scrise mai jos:
nformatca
infrmatica
informtic
29. Un tablou bidimensional A cu n linii i m coloane (1m100, 1n100) conine pe prima linie
numerele 1,2,...,m, iar pe prima coloan numerele 1,2,...,n. Celelalte elemente ale tabloului sunt date
de relaia: A[i][j]=A[i-1][j]+A[i][j-1]. Scriei un program PASCAL/C/C++ care citete de la tastatur
numerele m i n i afieaz pe ecran elementul de pe ultima linie i ultima coloan a tabloului.
Exemplu: pentru n=3 i m=4 se va afia 5 deoarece elementele tabloului A sunt:
1 2 3 4
24711
371425

30. Scriei un program Pascal care citete de la tastatur un numr natural n (2<n<=15) i
construiete n memorie o matrice A cu n linii i n coloane n care orice element aflat pe prima
linie sau pe primacoloan are valoarea 1 i oricare alt element Aij din matrice este egal cu
suma a dou elemente din matrice, primul aflat pe linia i i pe coloana j-1 iar cel de-al doilea
pe coloana j i pe linia i-1. Matricea va fi afiat pe ecran, linie cu linie, numerele de pe
aceeai linie fiind separate prin cte un spaiu.

Atestat profesional la informatica 2016 - SUBIECTE PROGRAMARE


Exemplu: pentru n=4 , se obine matricea alturat: