You are on page 1of 60

Luminia Rpeanu (coordonator)

Adriana Constantin Iulia Monica Lincan


Carmen Maria Dedu Liliana Mircea
Simona Drghici Luminia Gabriela Nstase
Cristina Laurenia Dragomirescu Olivia Ctlina Pascu
Laura Dora Du Mirela Luminia Popa
Daniela Ionescu Constantin cheau
Daniela Elena Lica Cristian Vsii-Psric

SUBIECTE

atestat profesional la informatic

Idei de rezolvare
Subiecte Atestat profesional la informatic Idei de rezolvare

Autori:
Inspector colar Luminia Rpeanu (coordonator) Inspectoratul colar Prahova
Prof. Adriana Constantin Colegiul Naional Nichita Stnescu, Ploieti
Prof. Carmen Maria Dedu Colegiul Naional Alexandru Ioan Cuza, Ploieti
Prof. Simona Drghici Colegiul Tehnic Toma N. Socolescu, Ploieti
Prof. Cristina Laurenia Dragomirescu Colegiul Naional Mihai Viteazul, Ploieti
Prof. Laura Dora Du Colegiul Spiru Haret, Ploieti
Prof. Daniela Ionescu Colegiul Naional Jean Monnet, Ploieti
Prof. Daniela Elena Lica Colegiul Naional Ion Luca Caragiale, Ploieti
Prof. Iulia Monica Lincan Colegiul Naional Mihai Viteazul, Ploieti
Prof. Liliana Mircea Colegiul Naional Ion Luca Caragiale, Ploieti
Prof. Luminia Gabriela Nstase Colegiul Naional Nichita Stnescu, Ploieti
Prof. Olivia Ctlina Pascu Colegiul Naional Nichita Stnescu, Ploieti
Prof. Mirela Luminia Popa Colegiul Spiru Haret, Ploieti
Prof. Constantin cheau Colegiul Naional Mihai Viteazul, Ploieti
Prof. Cristian Vsii-Psric Colegiul Tehnic Elie Radu, Ploieti

Concepie grafic i copert:


Prof. Luminia-Gabriela NSTASE Colegiul Naional Nichita Stnescu, Ploieti

Tipar:
Tehnician Viorel OPREA Casa Corpului Didactic Prahova

Descrierea CIP a Bibliotecii Naionale a Romniei


Subiecte Atestat profesional la Informatic : idei de rezolvare /
Constantin Adriana, Dedu Carmen Maria, Drghici Simona, ....
Ploieti : Editura Casei Corpului Didactic Prahova, 2014
ISBN 978-606-8287-80-5

I. Constantin, Adriana
II. Dedu, Carmen Maria
III. Drghici, Simona

004

EDITURA CASA CORPULUI DIDACTIC PRAHOVA


Ploieti, Str. Democraiei, nr. 35
Web: www.ccdph.ro
Telefon/ Fax: 0244-577338

2
Subiecte Atestat profesional la informatic Idei de rezolvare

Cuvnt nainte
Lucrarea de fa este un instrument util pentru pregtirea examenului de atestare a
competenelor profesionale a absolvenilor claselor de matematic-informatic i matematic-
informatic, intensiv informatic i conine subiectele specifice probei practice din judeul Prahova.
Astfel, lucrarea devine un material necesar pe care colectivul de realizatori l pune la dispoziia
elevilor i a profesorilor, putnd fi folosit i n scopul pregtirii de specialitate pe parcursul celor
patru ani de liceu.
n aceast culegere vei gsi:
subiectele de algoritmic rezolvate n Pascal /C++;
subiectele de gestiunea bazelor de date (abordate n Visual Fox, Oracle, MySql);
subiectele care verific competenele de a lucra cu un sistem de operare, cu un editor de texte,
aplicaii software;
exemple de realizare a proiectelor n MySql i Oracle.
Culegerea a fost realizat de un numr mare de profesori metoditi cu o bogat experien n
predarea disciplinelor informatice la toate nivelurile.
Sunt convins c o vei rsfoi cu interes i vei gsi amnunte care v vor folosi.

Precizri
Pentru nscriere la examenul de atestare a competenelor profesionale la informatic, se va
completa o cerere tip pus la dispoziie de profesorul de informatic.
Depunerea documentaiei i a aplicaiei se va face pn la data de 30 aprilie 2015, la
secretariatul liceului.

DOCUMENTAIA APLICAIEI va conine cel puin 5 pagini i va cuprinde:


Motivaia alegerii temei, utilitatea aplicaiei
Structura aplicaiei: organizarea coninutului informaional, structuri de date utilizate
Detalii tehnice de implementare (limbajul de programare, respectiv aplicaii software utilizate pentru
crearea aplicaiei, secvene de cod relevante etc.)
Resurse hardware i software necesare
Modaliti de utilizare
Posibiliti ulterioare de dezvoltare
Bibliografie

Documentaia tehnic va fi nsoit de CD-ul/ DVD-ul care conine aplicaia n vederea


arhivrii.

Coordonatorul colectivului redacional

3
Subiecte Atestat profesional la informatic Idei de rezolvare
Capitolul 1

PROGRAMARE
Problema 1
Fiierul numere.txt conine pe prima linie cel mult 10000 de numere naturale nenule, separate prin cte un spaiu,
fiecare numr avnd cel mult 9 cifre. Se cere s se afieze pe ecran, separate printr-un spaiu, cele mai mari dou valori
pare memorate n fiier. Dac n fiier nu se afl memorate dou astfel de valori, pe ecran se va afia valoarea 0.
Exemplu: dac fiierul numere.txt are coninutul: 10 5 1393 77 20 158 9 12 18 30
pe ecran se va afia: 30 158
Rezolvare
1 var max1,max2,x:longint; f:text; #include <iostream>
2 begin #include <fstream>
3 assign(f,'numere.txt'); reset(f); using namespace std;
4 while not eof(f) do long x,max1,max2;
5 begin ifstream f(numere.txt);
6 read(f,x); int main()
7 if x mod 2=0 then {while (f>>x)
8 if x>max1 then if (x%2==0)
9 begin if (x>max1)
10 max2:=max1; max1:=x {
11 end max2=max1; max1=x;
12 else if x>max2 then max2:=x; }
13 end; else if (x>max2) max2=x;
14 if (max1<>0)and(max2<>0) then if(max1 && max2) cout<<max2<< <<max1;
15 writeln(max2,' ',max1) else cout<<0;
16 else writeln(0); f.close();
17 close(f); return 0;
18 end. }

Problema 2
Fiierul text numere.txt conine pe prima linie un numr natural nenul Exemplu: dac fiierul numere.txt are
n cu cel mult 9 cifre, iar pe a doua linie n cifre, separate prin cte un spaiu. urmtorul coninut:
Scriei un program care determin cea mai mare cifr dintre cele situate pe a 11
doua linie a fiierului numere.txt i numrul de apariii ale acesteia. Valorile 25315892794
determinate se vor afia pe ecran, separate printr-un spaiu. se va afia: 9 2
Rezolvare
1 var n,k,i:longint; #include <iostream>
2 x,max:byte; #include <fstream>
3 f:text; using namespace std;
4 begin long n,i,k,x,max1;
5 assign(f,'numere.txt'); reset(f); ifstream f(numere.txt);
6 readln(f,n); int main()
7 for i:=1 to n do { f>>n;
8 begin for(i=1;i<=n;i++)
9 read(f,x); {f>>x;
10 if x>max then if (x>max1) {max1=x; k=1;}
11 begin max:=x; k:=1 end else if (x==max1) k++;
12 else if x=max then inc(k); }
13 end; cout<<max1<< <<k;
14 writeln(max,' ',k); f.close();
15 close(f); return 0;
16 end. }

Problema 3
Se citesc de la tastatur dou numere naturale nenule n i m. S se construiasc n memorie i apoi s se afieze
pe ecran un tablou unidimensional cu n elemente, care conine numere naturale ncepnd cu valoarea m, fiecare numr
fiind urmat, n tablou, de divizorii si primi, n ordine cresctoare:
Exemplu: pentru n=20 i m=24 se afieaz tabloul: 24 2 3 25 5 26 2 13 27 3 28 2 7 29 29 30 2 3 5 31

4
Subiecte Atestat profesional la informatic Idei de rezolvare
Rezolvare
1 var v:array[1..10000] of integer; #include <iostream>
2 n,m,x,k,f,i:integer; using namespace std;
3 begin int n,m,x,k,f,i,v[10000];
4 write('n=');readln(n); int main()
5 write('m=');readln(m); {
6 while k<n do cin >> n >> m;
7 begin while (k<n)
8 k:=k+1; v[k]:=m; x:=m; f:=2; {v[++k] = m;
9 while(x>1)and(k<n)do x=m; f = 2;
10 begin while(x>1 && k<n)
11 if x mod f=0 then {if (x % f == 0)
12 begin {while (x % f == 0) x/=f;
13 while x mod f=0 do x:=x div f; v[++k] = f;
14 k:=k+1; v[k]:=f; end; }
15 f:=f+1;end; f++; }
16 m:=m+1;end; m++; }
17 for i:=1 to n do write(v[i],' '); for(i=1; i<=n; i++) cout<<v[i]<< ;
18 end. return 0;}

Problema 4
Exemplu: pentru n=6 i tabloul (4, 5,
Fie un tablou unidimensional cu n elemente (n100), care conine
numere ntregi. S se realizeze un program care afieaz perechile de numere 9, 3, 6, 2), se vor afia perechile:
corespondente. Dou numere sunt corespondente dac numrul de elemente 45
din tablou mai mici dect primul numr este egal cu numrul de elemente din 92
tablou mai mari dect cel de-al doilea numr. 36
Rezolvare
1 var a,b:array[1..100]of integer; #include <iostream>
2 i,j,n:integer; using namespace std;
3 begin read(n); int i,j,n,a[101],b[101];
4 for i:=1 to n do read(a[i]); int main()
5 for i:=1 to n-1 do {cin>>n;
6 for j:=i+1 to n do for(i=1;i<=n;i++)cin>>a[i];
7 if a[i]<a[j] then b[j]:=b[j]+1 for(i=1;i<=n-1;i++)
8 else b[i]:=b[i]+1; for(j=i+1;j<=n;j++)
9 for i:=1 to n do if(a[i]<a[j])b[j]=b[j]+1;
10 for j:=i+1 to n do else b[i]=b[i]+1;
11 if b[i]+b[j]=n-1 then for(i=1;i<=n;i++) for(j=i+1;j<=n;j++)
12 writeln(a[i],' ',a[j]); if(b[i]+b[j]==n-1)
13 end. cout<<a[i]<< <<a[j]<<\n; return 0;}

Problema 5
Exemplu: Pentru fiierul mat.in:
Fiierul mat.in conine pe prima linie un numr natural n (2n50),
i pe urmtoarele n linii cte n numere naturale, separate prin cte un spaiu, 4
reprezentnd elementele unei matrice ptratice de dimensiune n. S se 40 55 8 900
determine i s se afieze valoarea celui mai mare divizor comun al 9 25 350 89
elementelor situate pe diagonala secundar a matricei. 30 60 7 768
15 2 3 4
se va afia: 5
Rezolvare
1 var a,b:array[1..100]of integer; #include <iostream>
2 i,j,n:integer; using namespace std;
3 begin read(n); int i,j,n,a[101],b[101];
4 for i:=1 to n do read(a[i]); int main()
5 for i:=1 to n-1 do {cin>>n;
6 for j:=i+1 to n do for(i=1;i<=n;i++)cin>>a[i];
7 if a[i]<a[j] then b[j]:=b[j]+1 for(i=1;i<=n-1;i++)
8 else b[i]:=b[i]+1; for(j=i+1;j<=n;j++)
9 for i:=1 to n do if(a[i]<a[j])b[j]=b[j]+1;
10 for j:=i+1 to n do else b[i]=b[i]+1;

5
Subiecte Atestat profesional la informatic Idei de rezolvare
11 if b[i]+b[j]=n-1 then for(i=1;i<=n;i++) for(j=i+1;j<=n;j++)
12 writeln(a[i],' ',a[j]); if(b[i]+b[j]==n-1)
13 end. cout<<a[i]<< <<a[j]<<\n; return 0;}

Problema 6
Fiierul mat.txt conine pe prima linie dou numere naturale m i n Exemplu: Pentru fiierul mat.txt:
(2m,n100) separate prin spaiu, i pe urmtoarele m linii cte n numere 43
naturale, separate prin cte un spaiu, reprezentnd elementele unui tablou 40 556 89
bidimensional cu m linii i n coloane. S se afieze indicii coloanelor tabloului 9 25 350
care conin cel puin un numr palindrom. 303 60 704
155 21 6996
se va afia: 1 3
Rezolvare
1 var a:array[1..100,1..100]of integer; using namespace std;
2 n,m,i,j,x,ox:integer; ifstream f (mat.txt);
3 f:text; ok:boolean; int a[101][101],n,m,i,j,x,ox,ok;
4 begin int main()
5 assign(f,'mat.txt'); reset(f); {f>>m>>n;
6 readln(f,m,n); for(i=1;i<=m;i++)
7 for i:=1 to m do for(j=1;j<=n;j++)
8 for j:=1 to n do read(f,a[i,j]); f>>a[i][j];
9 for j:=1 to n do for(j=1;j<=n;j++)
10 begin {ok=0;
11 ok:=false; for(i=1;i<=m;i++)
12 for i:=1 to m do begin {x=a[i][j]; ox=0;
13 x:=a[i,j]; ox:=0; while (x)
14 while x>0 do begin {ox=ox*10+x%10; x/=10; }
15 ox:=ox*10+x mod 10; x:=x div 10; if (a[i][j]==ox)
16 end; {ok=1;break;}
17 if a[i,j]=ox then }
18 begin ok:=true; break; end; if (ok) cout<<j<< ;}
19 end; f.close();
20 if ok then write(j,' ');end; return 0;
21 close(f);end. }

Problema 7
Se citesc de la tastatur dou numere naturale nenule cu cel mult 9 cifre. Afiai cifrele comune ale lor, n ordine
descresctoare.
Exemplu: Pentru numerele 543992100 i 9084327 se va afia 9 4 3 2 0.
Rezolvare
1 var i,x,y,n,m: longint; #include <iostream>
2 ok1, ok2 : boolean; using namespace std;
3 begin int i,x,y,n,m; bool ok1, ok2;
4 read(n, m); int main(){
5 for i:=9 downto 0 do begin cin >> n>> m;
6 x:=n; y:=m; ok1:=false; ok2:=false; for(i=9; i>=0; i--){
7 while(x>0) do begin x=n; y=m; ok1=ok2=false;
8 if(x mod 10=i) then ok1:=true; while(x){
9 x:=x div 10; if(x%10==i)ok1=true;
10 end; x/=10; }
11 while(y>0) do begin while(y){
12 if(y mod 10=i) then ok2:=true; if(y%10==i)ok2=true;
13 y:=y div 10; y/=10; }
14 end; if(ok1&&ok2) cout<<i<< ;
15 if(ok1 and ok2) then write(i,' '); }
16 end; return 0;
17 end. }

Problema 8
Se citete de la tastatur un numr ntreg. Afiai pe ecran, cel mai apropiat numr prim fa de acesta.
Exemplu: pentru n = 27 se va afia numrul 29, iar pentru numrul 85 se va afia 83.

6
Subiecte Atestat profesional la informatic Idei de rezolvare
Rezolvare
1 var i,x,n1,n2:longint; #include <iostream>
2 ok:boolean; using namespace std;
3 begin int i,x,n1,n2; bool ok;
4 readln(x); n1:=x-1; n2:=x; int main()
5 repeat {
6 inc(n1); dec(n2); ok:=true; cin >> x; n1=x-1; n2=x;
7 fori:=2 to trunc(sqrt(n1)) do do { n1++; n2--; ok=true;
8 if n1 mod i=0 then ok:=false; for (i=2; i*i<=n1; i++)
9 if ok then begin if (n1%i==0) ok=false;
10 writeln(n1); break; end; if (ok) {cout<< n1; break;}
11 ok:=true; ok=true;
12 fori:=2 to trunc(sqrt(n2)) do for (i=2; i*i<=n2; i++)
13 if n2 mod i=0 then ok:=false; if (n2%i==0) ok=false;
14 if ok then begin if (ok) {cout<< n2; break;}
15 writeln(n2); break; }
16 end; while (true);
17 until false; return 0;
18 end. }

Problema 9
Se consider un tablou unidimensional cu n elemente numere ntregi. tergei toate elementele din vector care
sunt divizibile cu 5 i afiai elementele vectorului la finalul operaiei.
Exemplu: n=6 i vectorul (35, 45, 35, 32, 85, 6) se va afia 32 6
Rezolvare
1 var i,n,j:integer; #include <iostream>
2 a:array[1..1000]of integer; using namespace std;
3 begin int i, n, j, a[1000];
4 read(n); int main(){
5 for i:=1 to n do cin >> n;
6 read(a[i]); i:=1; for(i=1; i<=n; i++) cin >> a[i];
7 while (i<=n) do i=1;
8 if(a[i] mod 5=0) then begin while(i<=n)
9 for j:=i to n-1 do a[j]:=a[j+1]; if(a[i]%5==0){
10 dec(n); for(j=i; j<n; j++) a[j]=a[j+1];
11 end n--; }
12 else inc(i); else i++;
13 for i:=1 to n do write(a[i],' '); for(i=1; i<=n; i++) cout<<a[i]<< ;
14 end. return 0; }

Problema 10
Se consider un vector A cu n elemente naturale. S se afieze pe linii, Exemplu: Pentru n=7 i A=(534, 224,
elementele din A grupate dup cifra dominant (prima n scrierea zecimal). 101, 24, 122,51, 59) se va afia:
Pe aceeai linie vor fi scrise elemente cu aceeai cifr dominant. 101 122
224 24
534 51 59
Rezolvare
1 var i,x,j,n,m:integer; #include <iostream>
2 a:array[1..1000]of integer; using namespace std;
3 ok:boolean; int i,x,j,n, m, a[1000];
4 begin bool ok;
5 read(n); int main(){
6 for i:=1 to n do read(a[i]); cin >> n;
7 for i:=1 to 9 do begin for(i=1; i<=n; i++) cin>>a[i];
8 ok:=false; for(i=1; i<=9; i++){ ok=false;
9 for j:=1 to n do begin x:=a[j]; for(j=1; j<=n; j++){
10 while x>9 do x:=x div 10; x=a[j];
11 if(x=i) then begin while(x>9) x/=10;
12 ok:=true; write(a[j],' '); if(x==i){ok=true; cout<<a[j]<< ;}
13 end;end; }
14 if (ok) then writeln;end if (ok) cout<<endl; }
15 end. return 0;}

7
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 11
Fie N un numr natural de cel mult 9 cifre. S se genereze toate numerele care se pot scrie ca produs de dou
numere prime mai mici ca N.
Exemplu: Pentru n=10 se va afia 4 6 9 10 14 15 21 25 35 49
Rezolvare
1 var Pr:array[1..100]of integer; #include <iostream>
2 m,i,p,n,j:integer; using namespace std;
3 begin int Pr[100]; int m,n,i,p,j;
4 readln(n); int main() {
5 Pr[1]:= 2; m:= 1; p:= 3; cin>>n;
6 while p<=n do begin Pr[0]=2; m=1; p=3;
7 i:=1; while (p<=n) { i=0;
8 while (i<=m)and (Pr[i]*Pr[i]<=p) do while(i<m && Pr[i]*Pr[i]<=p)
9 if p mod Pr[i]=0 then i:=n if (p%Pr[i]==0) i=n;
10 else inc(i); else i++;
11 if i<>n then begin inc(m); Pr[m]:=p; end; if (i!=n) Pr[m++]=p;
12 p:=p+2; p+=2; }
13 end; for (i=0;i<m;i++)
14 for i:=1 to m do for (j=i;j<m;j++) cout<<Pr[i]*Pr[j]<<endl;
15 for j:=i to m do writeln(Pr[i]*Pr[j]) return 0;
16 end. }

Problema 12
Se citesc de la tastatur elementele unui tablou bidimensional ptratic Exemplu: Pentru n=4 i matricea:
cu n linii. S se afieze pe ecran elementele care sunt situate pe linii i coloane 3721
de sum egal. Cu alte cuvinte, un element a[i,j] (a[i][j]) va fi afiat dac 4021
suma pe linia i este egal cu suma pe coloana j. 0508
0133
Se va afisa: 7 1 4 2 5 8 0 3
Rezolvare
1 var i, j, n:integer; #include <iostream>
2 a:array[0..100,0..100]of integer; using namespace std;
3 begin int i, j, n, a[100][100];
4 read(n); int main()
5 for i:=1 to n do { cin>>n;
6 for j:=1 to n do begin for(i=1;i<=n; i++)
7 read(a[i,j]); for(j=1;j<=n;j++)
8 inc(a[i,0],a[i,j]); inc(a[0,j],a[i,j]); { cin>>a[i][j]; a[i][0] += a[i][j];
9 end; a[0][j] += a[i][j]; }
10 for i:=1 to n do for(i=1;i<=n; i++)
11 for j:=1 to n do for(j=1;j<=n;j++){
12 if a[i,0]=a[0,j] then write(a[i,j],' ') if(a[i][0]==a[0][j]) cout<<a[i][j]<< ;}
13 end. return 0;}

Problema 13
Se citete de la tastatur un numr natural n cu cel mult 9 cifre. Notm cu cmax, cifra de valoare maxim din
scrierea zecimal lui n. Afiai n ordine cresctoare cifrele numrului n situate n dreapta ultimei apariii a cifrei cmax
n numr.
Exemplu: Pentru numrul n=59392041 se afieaz: 0 1 2 4.
Rezolvare
1 var n,cmax,i,cn,x,m:longint; #include <iostream>
2 begin using namespace std;
3 read(n);x:=n; long n,cmax,i,cn,x,m;
4 m:=x mod 10;x:=x div 10; int main(){
5 while(x>0) do begin cin>>n;x=n;m=x%10;x=x/10;
6 if (x mod 10>m) then m:=x mod 10; while(x>0) {
7 x:=x div 10; end; if (x%10 >m) m=x%10; x=x/10;}
8 for i:=0 to 9 do begin cn:=n; for (i=0;i<=9;i++){ cn=n;
9 while (cn mod 10 <>m) do while (cn % 10 !=m){

8
Subiecte Atestat profesional la informatic Idei de rezolvare
10 begin if( cn% 10 == i) cout<<i<< ;
11 if( cn mod 10 = i) then write(i, ); cn=cn/ 10; }
12 cn:=cn div 10; }
13 end; end; return 0;
14 end. }

Problema 14
Se citesc de la tastatur n numere naturale pozitive cu cel mult 9 cifre. Exemplu: pentru n=3 i numerele:
Afiai pe ecran de S ori ultima cifr a fiecrui numr citit, unde S reprezint 301, 200, 123 se afieaz:
suma cifrelor numrului respectiv. 1111
00
333333
Rezolvare
1 var n,x,uc,s,i,j: integer; #include <iostream>
2 begin using namespace std;
3 read(n); long n,x,uc,s,i,j;
4 for i:=1 to n do begin int main(){
5 read(x); cin>>n;
6 s:=0; uc:=x mod 10; for( i=1;i<=n;i++){
7 while(x>0) do begin cin>>x;s=0;uc=x % 10;
8 s:=s+x mod 10;x:=x div 10; while(x>0) {
9 end; s=s+x%10;x=x/10;}
10 for j:=1 to s do write(uc); for (j=1;j<=s ;j++)cout<<uc;
11 writeln; cout<<'\n';}
12 end; return 0;
13 end. }

Problema 15
Se consider un tablou unidimensional v cu n elemente numere ntregi. Inserai ntr-o poziie dat p, (1 p n)
suma elementelor aflate la stnga acesteia n vectorul iniial. Afiai elementele vectorului dup operaia de inserare.
Exemplu: n=6, p=3 i vectorul v = (2, 6, 35, 21, 89, 16) se afieaz: 2 6 8 35 21 89 16
Rezolvare
1 var n,p,i,j,s:integer; #include <iostream>
2 v:array[1..1000]of integer; using namespace std;
3 begin int n,p,i,j,s,v[1000];
4 read(n,p); int main(){
5 for i:=1 to n do read(v[i]); cin>>n>>p;
6 i:=1; s:=0; for (i=1;i<=n ;i++) cin>>v[i];
7 while(p<>i) do begin i=1; s=0;
8 s:=s+v[i]; i:=i+1; end; while(p!=i) { s=s+v[i]; i=i+1;}
9 for j:=n downto i do v[j+1]:=v[j]; for (j=n;j>=i;j--) v[j+1]=v[j];
10 v[j]:=s; n:=n+1; v[p]=s;n=n+1;
11 for i:=1 to n do write(v[i],' '); for (i=1;i<=n ;i++) cout<<v[i]<< ;
12 end. return 0;}

Problema 16
Construii n memorie un vector v cu m elemente respectnd regula: Exemplu: Pentru fiierul vect.in:
elementul de pe poziia i din vector reprezint valoarea minim a elementelor 43
situate pe linia i a unei matrice de numere ntregi, citit din fiierul vect.in. De 14 0
pe prima linie a fiierului se vor citi numrul m de linii i n de coloane, iar de 5 7 11
pe urmtoarele m linii se citesc elementele matricei. Elementele vectorului 324
obinut vor fi scrise pe o singur linie n fiierul vect.out.
50 11 10
fiierul vect.out va conine 0 5 2 10
Rezolvare
1 Varf,g:text; #include <fstream>
2 a:array[1..100,1..100]of integer; using namespace std;
3 v:array[1..100] of integer; int a[100][100],v[100];
4 i,j,m,n,vm:integer; int i,j,m,n,vm;

9
Subiecte Atestat profesional la informatic Idei de rezolvare
5 begin int main(){
6 assign(f,vect.in);reset(f); ifstream f(vect.in);
7 assign(g,vect.out);rewrite(g); ofstream g(vect.out);
8 readln(f,m,n); f>>m>>n;
9 for i:=1 to m do for(i=1;i<=m ;i++)
10 for j:=1 to n do read(f,a[i,j]); for(j=1 ;j<= n ;j++) f>>a[i][j];
11 for i:=1 to m do begin for(i=1;i<=m ;i++){
12 vm:=a[i,1]; vm=a[i][1];
13 for j:=2 to n do for(j=2;j<=n;j++)
14 if(a[i,j]<vm)then vm:=a[i,j]; if(a[i][j]<vm) vm=a[i][j];
15 v[i]:=vm; end; v[i]=vm; }
16 for i:=1 to m do write(g,v[i],' '); for( i=1;i<=m ;i++) g<<v[i]<<' ';
17 close(g); return 0;
18 end. }

Problema 17
Se citete de la tastatur o matrice cu m linii i n coloane cu elemente Exemplu: Pentru m=4 , n=3 i tabloul
numere naturale. Determinai i afiai pe ecran cel mai mare divizor comun 45 90 18
al elementelor situate pe marginea matricei, adic pe prima sau ultima linie 36 10 9
sau prima sau ultima coloan. 270 1 27
81 900 54
se va afia: 9
Rezolvare
1 var i,j,m,n,c,b:integer; #include <iostream>
2 a:array[1..100,1..100] of integer; using namespace std;
3 begin int i,j,m,n,c,b, a[100][100];
4 read(m,n); int main() {
5 for i:=1 to m do cin>>m>>n;
6 for j:=1 to n do begin for (i=1;i<=m;i++)
7 read(a[i,j]); for (j=1 ;j<=n ;j++){
8 if i*j=1 then b:=a[i,j] cin>>a[i][j];
9 else if(i*j==1)b=a[i][j];
10 if(i=1)or(j=1)or(i=m)or(j=n) else
11 begin if(i==1||j==1||i==m||j==n){c=a[i][j];
12 c:=a[i,j]; while (c!=b)
13 while (c<>b) do if (c>b) c=c-b; else b=b-c;}
14 if (c>b)then c:=c-b else b:=b-c; }
15 end; cout<<c;
16 writeln(c); return 0;
17 end. }

Problema 18
Se consider un tablou unidimensional v cu n elemente numere ntregi. Afiai pe o singur linie n fiierul
vector.out, elementele din vector care se repet. De pe prima linie a fiierului vector.in se va citi numrul n, iar de pe a
doua linie elementele vectorului.
Exemplu: Dac fiierul vector.in conine
7
2 979 209 2
Fiierul vector.out va conine 2 9
Rezolvare
1 var v:array[1..100] of integer; #include <fstream>
2 nr,i,n,j,x:integer;f,g:text; using namespace std;
3 begin int v[100],nr,i,n,j,x;
4 assign(f,vector.in);reset(f); int main(){
5 assign(g,vector.out);rewrite(g); ifstream f(vector.in);
6 read(f,n); ofstream g(vector.out);
7 for i:=1 to n do read(f,v[i]); f>>n;
8 for i:=1 to n-1 do for (i=1 ;i<=n ;i++) f>>v[i];
9 for j:=i+1 to n do for (i=1 ;i<n ;i++)
10 if( v[i]>v[j] ) then begin for (j=i+1 ;j<=n;j++)

10
Subiecte Atestat profesional la informatic Idei de rezolvare
11 x:=v[i];v[i]:=v[j];v[j]:=x; end; if(v[i]>v[j]){x=v[i];v[i]=v[j];v[j]=x;}
12 nr:=0; nr=0;
13 for i:=1 to n-1 do for (i=1 ;i<= n-1 ;i++)
14 if (v[i]<>v[i+1]) then begin if (v[i]!=v[i+1]){
15 if (nr>0) then write(g,v[i],' '); if (nr>0) g<<v[i]<< ;
16 nr:=0; end nr=0; }
17 else inc(nr); else nr++;
18 if (nr>0) then if (nr>0) g<<v[i]<< ;
19 write(g,v[i],' ');close(g); return 0;
20 end. }

Problema 19
S se contorizeze i s se afieze perechile de numere naturale mai mici sau egale dect un numr natural n i
care au cel mai mare divizor comun un numr natural k dat.
Exemplu: Pentru n=17 i k=4 perechile sunt: (4,4), (4,8), (4,12), (4,16), (8,12), (12,16), iar numrul lor este 6.
Rezolvare
1 Var a,b,n,k,x,y,nr:integer; #include <iostream>
2 begin using namespace std;
3 read(n,k);nr:=0; int a,b,n,k,x,y,nr=0;
4 for x:=k to n-1 do int main()
5 for y:=x to n do { cin>>n>>k;
6 begin for(x=k; x<=n-1; x++)
7 a:=x;b:=y; for(y=x; y<=n; y++) {a=x;b=y;
8 while(a<>b)do while(a!=b)
9 if(a>b)then a:=a-b; if(a>b) a-=b;
10 else b:=b-a; elseb-=a;
11 if a=k then if(a==k)
12 begin {nr++;
13 nr:=nr+1; writeln(x, ,y); cout<<x<< <<y<<\n;}
14 end; }
15 writeln(nr);end. cout<<nr; return 0;}

Problema 20
Se citesc de la tastatur dou cifre a i b, un ntreg n, precum i un ir de n numere ntregi. S se afieze acele
elemente ale irului care au n componena lor succesiunea de cifre .
Exemplu: Pentru a=2, b=7, n=5 i irul 2741, 312, 327, 42735, 244 se vor afia numerele 2741, 327 i 42735.
Rezolvare
1 var n,a,b,x,i,ok,y:integer; #include <iostream>
2 begin using namespace std;
3 write(n=);readln(n); int n,a,b,x,i,ok,y;
4 write(a=);readln(a); int main()
5 write(b=);readln(b); { cout<<n=;cin>>n;
6 a:=a*10+b; cout<<a=;cin>>a;
7 for i:=1 to n do cout<<b=;cin>>b;
8 begin a=a*10+b;
9 write(x=);readln(x); y:=x;ok:=0; for(i=1;i<=n;i++)
10 while (x<>0) and (ok=0)do { cout<<x=;cin>>x;
11 begin if x mod 100=a then ok:=1; y=x;ok=0;
12 x:=x div 10; while(x && ok==0)
13 end; { if(x%100==a) ok=1; x=x/10;}
14 if ok=1 then write(y, ); if(ok==1) cout<<y<< ; }
15 end;end. return 0;}

Problema 21
Scriei un program care citete de pe prima linie a fiierului text numere.txt o valoare natural n (0<n<1000), iar
de pe urmtoarea linie exact n valori naturale de cel mult 5 cifre fiecare, desprite prin cte un spaiu. Programul afieaz
n fiierul text rezultat.txt cte din elementele vectorului dat sunt numere Fibonacci.
Exemplu: Pentru n=10 i vectorul (15, 8, 1, 6, 7, 13, 4, 34, 6, 71) se va afia:4 (numerele Fibonacci sunt: 8 1 13 34).
Rezolvare
1 var i,nr,n:integer; a,b,c:longint; #include <fstream>
2 v:array[1..20]of integer; using namespace std;

11
Subiecte Atestat profesional la informatic Idei de rezolvare
3 begin int i,a,b,c,nr=0,n,v[20];
4 assign(f,numere.txt); int main()
5 assign(g,rezultat.txt); {ifstream f(numere.txt);
6 reset(f); rewrite(g); ofstream g(rezultat.txt);
7 readln(f,n); nr:=0; f>>n;
8 for i=1 to n do read(f,v[i]); for(i=1; i<=n; i++) f>>v[i];
9 for i=1 to n do for(i=1; i<=n; i++)
10 if v[i]=1 then nr:=nr+1 if(v[i]==1) nr++;
11 else else
12 begin a:=1;b:=1;c:=a+b; { a=b=1; c=a+b;
13 while c<v[i] do while(c<v[i])
14 begin { a=b; b=c; c=a+b;}
15 a:=b;b:=c;c:=a+b; if(v[i]==c) nr++;
16 end; }
17 if v[i]=c then nr:=nr+1; g<<nr;
18 end; f.close(); g.close();
19 write(g,nr); close(f);close(g); return 0;
20 end. }

Problema 22
Numerele puternice sunt acele numere naturale care au numrul divizorilor mai mare dect numrul divizorilor
oricrui numr natural mai mic dect numrul respectiv. Scriei un program care verific dac un numr n este puternic.
Exemplu: Pentru n=24 se va afisa e puternic, n=15 se va afisa nu e puternic.
Rezolvare
1 var n,i,kn,ki,c,d,ok:integer; include<iostream>
2 begin using namespace std;
3 read(n); int n,i,kn=0,ki,c,d=2,ok=1;
4 c:=n;kn:=0;d:=2;ok:=1; int main()
5 while d<=n div 2 do {cin>>n;
6 begin c=n;
7 if (n mod d=0)then kn:=kn+1; while(d<=n/2)
8 d:=d+1; {if(n%d==0) kn++;
9 end; d++;
10 for i:=c-1 downto 2 do }
11 begin for(i=c-1; i>=2; i--)
12 ki=0;d=2; {ki=0;
13 while d<=i div 2 do d=2;
14 begin while(d<=i/2)
15 if i mod d=0 then ki:=ki+1; {if(i%d==0)ki++;
16 d:=d+1;end; d++;
17 if kn<ki then }
18 begin if(kn<ki)
19 write( nu e puternic); ok:=0;break; {cout<< nu e puternic;
20 end; ok=0; break;}
21 end; }
22 if ok=1 then write(c, e puternic); if(ok==1) { cout<<c<< e puternic;}
23 end. return 0;}

Problema 23
Se citete de la tastatur un numr natural x cu maxim nou cifre. S se afieze toate numerele care se obin prin
eliminarea pe rnd a cte unei singure cifre din x, precum i cel mai mare dintre aceste numere.
Exemplu: Pentru x=547621 se vor afia: 54762, 54761, 54721, 54621, 57621, 47621 maxim 57621.
Rezolvare
1 var x,max,p,aux:longint; #include <iostream>
2 begin using namespace std;
3 readln(x); int x,Max=0,p=1,aux;
4 max:=0; p:= 1; int main()
5 repeat { cin>>x;
6 p:=p*10; do
7 aux:=x div p*(p div 10)+x mod (p div 10); {p*=10; aux=x/p*(p/10)+x%(p/10);
8 write(aux, ); cout<<aux<< ;
9 if aux>max then max:=aux; if(aux>Max) Max=aux;
10 until p>x; } while(p<=x);

12
Subiecte Atestat profesional la informatic Idei de rezolvare
11 writeln(max); cout<<Max;
12 end. return 0;}

Problema 24
Scriei un program care citete de pe prima linie a fiierului text Exemplu: Dac fiierul numere.txt
numere.txt o valoare natural n (0<n<1000), iar de pe urmtoarea linie exact conine:
n valori naturale de cel mult 5 cifre fiecare, desprite prin cte un spaiu. 8
Programul afieaz n fiierul text rezultat.txt cea mai mic valoare de exact 3 2839 675 103 72 101 6721 100 32
cifre care nu apare n fiierul iniial. Dac nu exist niciun astfel de numr, se Se afieaz 102.
va afia mesajul EROARE.
Rezolvare
1 var i,x,n,k:integer; #include<fstream>
2 a:array[1..1000] of integer; using namespace std;
3 begin int a[1000], i, x, n, k=0;
4 k:=0; int main()
5 assign(f,numere.txt); { ifstream f(numere.txt);
6 assign(g,rezultat.txt); ofstream g(rezultat.txt);
7 reset(f); rewrite(g); for(i=100; i<=999; i++) a[i]=0;
8 for i:=100 to 999 do a[i]:=0; f>>n;
9 read(f,n); for(i=1; i<= n; i++)
10 for i:=1 to n do begin read(f,x); { f>>x;
11 if(x>=100)and(x<=999) then a[x]:=1; if(x>=100 && x<=999) a[x]=1;
12 end }
13 for i:=100 to 999 do for(i=100; i<=999; i++)
14 if a[i]=0 begin if(a[i]==0)
15 write(g,i, ); k:=1; break; { g<<i; k=1; break; }
16 end; if(k==0) g<<EROARE;
17 if k=0 then write(g,EROARE); f.close(); g.close();
18 close(f); close(g); return 0;
19 end. }

Problema 25
Se citete de la tastatur un ir de n numere naturale cu cel mult 9 cifre. Afiai pe ecran acele numere care au
cifrele n ordine strict descresctoare.
Exemplu: Pentru n=4 i numerele 543, 7621, 23245 i 9084327 se va afia 543 7621.
Rezolvare
1 var i,x,y,n: longint; #include <iostream>
2 ok: boolean; using namespace std;
3 begin long i,x,y,n,ok;
4 read(n); int main()
5 for i:=1 to n do begin {
6 read(x);y:=x; ok:=true; cin >> n;
7 while(x>9)and (ok) do for(i=1;i<=n;i++)
8 begin {
9 if(x mod 10>= x div 10 mod 10) then cin>>x; y=x; ok=1;
10 ok:=false; while(x>9 && ok)
11 x:=x div 10; { if(x%10>=x/10%10)ok=0;
12 end; x/=10; }
13 if(ok) then write(y,' '); if(ok) cout<<y<< ;}
14 end; return 0;
15 end. }

Problema 26
Se citete de la tastatur un ir de numere ntregi, terminat cu 0. Afiai pe ecran numrul din ir care are cei mai
muli divizori factori primi n descompunerea sa. Dac sunt mai multe numere cu aceast proprietate, se va afia cel mai
mare dintre ele.
Exemplu: Pentru irul 12 36 25 0 se va afia numrul 36.
Rezolvare
1 var x,y,nrmax,d,a,nr:longint; #include <iostream>
2 begin using namespace std;

13
Subiecte Atestat profesional la informatic Idei de rezolvare
3 nrmax:=0; read(x); int main()
4 while x<>0 do { long x,y,a,nrmax=0,d,nr;
5 begin cin>>x;
6 y:=x; d:=2; nr:=0; while(x)
7 while y<>1 do { y=x;nr=0;d=2;
8 begin while(y!=1)
9 if y mod d=0 then {
10 begin nr:=nr+1; if(y%d==0)
11 while y mod d=0 do y:=y div d; { nr++;
12 end; while(y%d==0) y=y/d;}
13 inc(d); d++;
14 end; }
15 if nr>nrmax then if(nr>nrmax)
16 begin nrmax:=nr; a:=x; end { nrmax=nr;a=x; }
17 else else if (nr==nrmax && x>a) a=x;
18 if (nr=nrmax) and (x>a) then a:=x; cin>>x;
19 read(x); }
20 end; cout<<a; return 0;
21 writeln(a); }
22 end.

Problema 27
Se consider un tablou unidimensional cu n elemente numere ntregi i apoi un numr ntreg x. Dac x
apartine tabloului, afiati pe ecran pe ce loc s-ar afla acesta dac tabloul ar fi ordonat cresctor, iar daca x nu se
afl n tablou, se va afia mesajul nu exista.
Exemplu: n=6 i vectorul (35, 45, 35, 32, 85, 6), pentru x=45 se va afia 5, iar pentru x=8, se va afia nu exista
Rezolvare
1 var i,n,x,nr:integer; #include <iostream>
2 a:array[1..1000]of integer; using namespace std;
3 ok:boolean; int i, n, x,nr=0, a[1000],ok=0;
4 begin int main(){
5 read(n);nr:=0; cin >> n;
6 for i:=1 to n do read(a[i]); for(i=1; i<=n; i++)
7 read(x); cin >> a[i];
8 ok:=false; cin>>x;
9 for i:=1 to n do for(i=1; i<=n; i++)
10 if a[i]<x then inc(nr) if(a[i]<x) nr++;
11 else else if(a[i]==x) ok=1;
12 if a[i]=x then ok:=true; if (ok)
13 if ok then write(nr+1,' ') cout<<nr+1<< ;
14 else wite('nu exista '); else cout<<nu exista;
15 end. return 0;
16 }

Problema 28
Fie N i K dou numere naturale de cel mult 9 cifre. S se afieze n fiierul out.txt, separate prin spaii, K numere
naturale consecutive a cror sum este egal cu N, sau mesajul nu exist.
Exemplu: N=15 i K=5, n fiier se vor afia numerele 1 2 3 4 5, iar pentru N=15 i K=7 se va afia mesajul nu exist
Rezolvare
1 var N,K,X,i:longint; #include <iostream>
2 f:text; #include <fstream>
3 begin using namespace std;
4 readln(N,K); long N,K,x,i;
5 assign(f,'out.txt'); int main(){
6 rewrite(f); ofstream f(out.txt);
7 if (2*N mod K<> 0) or( (2*N div K-K+1) cin>>N>>K;
8 mod 2<>0) then if(2*N%K!=0 || (2*N/K-K+1)%2!=0)
9 writeln(f,'nu exista') f<<nu exista;
10 else begin else { x=(2*N/K-K+1)/2;
11 x:=(2*N div K-K+1) div 2; for(i=x;i<x+K;i++)
12 for i:=x to x+K-1 do f<<i<<' ';
13 write(f,i,' '); }

14
Subiecte Atestat profesional la informatic Idei de rezolvare
14 end; f.close();
15 close(f); return 0;
16 end. }

Problema 29
Se citete din fiierul in.txt un ir de maxim 1.000.000 numere cu maxim 3 cifre. Afiai numerele care apar de
cele mai multe ori n fiier.
Exemplu: pentru numerele 1 2 3 2 3 4 5 2 3 4 5 6 7 2 3 se va afia 2 3
Rezolvare
1 var v:array[0..999] of longint; #include <iostream>
2 max:longint; #include <fstream>
3 x:integer;f:text; using namespace std;
4 begin int x;
5 assign(f,'in.txt'); long xmax,v[1000];
6 reset(f); int main(){
7 while not eof(f) do ifstream f(in.txt);
8 begin while(f>>x)
9 read(f,x); v[x]++;
10 inc(v[x]); for(x=0;x<1000;x++)
11 end; if(v[x]>xmax)
12 for x:=0 to 999 do xmax=v[x];
13 if v[x]>max then max:=v[x]; for(x=0;x<1000;x++)
14 for x:=0 to 999 do if(v[x]==xmax)
15 if v[x]=max then write(x,' '); cout<<x<< ;
16 close(f); f.close();
17 end. return 0; }

Problema 30
Se citete din fiierul mat.in un numr n, n<100, i apoi n*n numere Exemplu: Pentru fiierul mat.in:
naturale nenule cu maxim 4 cifre. Afiai pe ecran cel mai mare numr 4
divizibil cu suma cifrelor lui, situat pe diagonala principal, sau un mesaj 12 23 25 27
corespunztor, dac pe diagonala principal nu exist nici un numr divizibil 213 132 24 27
cu suma cifrelor lui. 13 14 15 20
21 132 14 15
se va afia 132.
Rezolvare
1 var a:array[1..100,1..100] of integer; #include <iostream>
2 n,i,x,s,j,max:integer; f:text; #include <fstream>
3 begin using namespace std;
4 assign(f,'mat.in'); int j,i,n,s,x,a[100][100],xmax;
5 reset(f); read(f,n); int main(){
ifstream f(mat.in);
6 for i:=1 to n do
f>>n;
7 for j:=1 to n do for(i=1; i<=n; i++)
8 read(f,a[i,j]); for(j=1;j<=n;j++)
9 max:=0; f >> a[i][j];
10 for i:=1 to n do for(i=1; i<=n; i++)
11 begin {
12 x:=a[i,i]; s:=0; x=a[i][i]; s=0;
13 repeat while(x)
14 s:=s+x mod 10; {
15 x:=x div 10; s+=x%10; x=x/10;
}
16 until x=0;
if (a[i][i]%s==0 && a[i][i]>xmax)
17 if a[i,i] mod s=0 then xmax=a[i][i];
18 if a[i,i]>max then max:=a[i,i]; }
19 end; if (xmax) cout<<xmax;
20 if max=0 then writeln('nu exista') else cout<<nu exista;
21 else writeln(max); return 0;
22 close(f); }
23 end.

15
Subiecte Atestat profesional la informatic Idei de rezolvare
Capitolul 2

BAZE DE DATE
Problema 1
Se consider tabela BACALAUREAT cu structura alturat: Nume Tip Dimensiune
Cerine: cnp ir caractere 13
nume ir caractere 50
a. Creai tabela, n care cmpul cnp conine valori unice. Introducei minim nota1 numeric 5,2
7 nregistrri, relevante pentru rezolvarea cerinelor. nota2 numeric 5,2
b. S se afieze n ordine alfabetic toi elevi care au obinut la cel puin o prob nota3 numeric 5,2
nota 10. medie numeric 5,2
c. Modificai cmpul medie dup urmtoarele reguli: an_examen numeric 4
dat
(nota1+nota2+nota3)/3 dac toate notele sunt mai mari sau egale cu 5 i data_nastere
calendaristic
0 dac notele sunt mai mici dect 5.
d. S se afieze cea mai mare medie obinut de un elev.
Rezolvare
Varianta SQL - Oracle
a. CREATE TABLE bacalaureat (cnp VARCHAR2(13) PRIMARY KEY, nume VARCHAR2(50) NOT NULL, nota1
NUMBER(5,2), nota2 NUMBER(5,2), nota3 NUMBER(5,2), medie NUMBER(5,2), an_examen NUMBER(4),
data_nastere DATE);
INSERT INTO bacalaureat (cnp, nume, nota1, nota2, nota3, an_examen, data_nastere)
VALUES('1880306298723', 'Ioanide Florin', 10, 5, 7, 2015, '10/10/1999');
b. SELECT * FROM bacalaureat
WHERE nota1=10 OR nota2=10 OR nota3=10 ORDER BY nume;
c. UPDATE bacalaureat
SET medie=(nota1+nota2+nota3)/3
WHERE nota1>=5 AND nota2>=5 AND nota3>5;
d. SELECT nume, MAX(medie) AS Media cea mai mare FROM bacalaureat GROUP BY nume;
Varianta SQL Visual FoxPro
a. CREATE DATABASES ATESTAT
OPEN DATABASE ATESTAT
CREATE TABLE bacalaureat(cnp CHAR(13) PRIMARY KEY, nume CHAR(50) NOT NULL, nota1
NUMBER(5,2), nota2 NUMBER(5,2), nota3 NUMBER(5,2), medie NUMBER(5,2), an_examen INTEGER(4),
data_nastere DATE)
USE bacalaureat
INSERT INTO bacalaureat (cnp, nume, nota1, nota2, nota3, an_examen, data_nastere) VALUES
('1880306298723', 'Ioanide Florin', 10, 5, 7, 2015, {^1999/10/10})
b. SELECT * FROM bacalaureat WHERE nota1=10 OR nota2=10 OR nota3=10 ORDER BY nume
c. UPDATE bacalaureat SET medie=(nota1+nota2+nota3)/3 WHERE nota1>=5 AND nota2>=5 AND nota3>5
d. SELECT MAX(medie) FROM bacalaureat
Varianta SQL - MySQL
a. CREATE DATABASES ATESTAT;
USE ATESTAT;
CREATE TABLE bacalaureat (cnp VARCHAR(13) PRIMARY KEY, nume VARCHAR(50) NOT NULL, nota1
DECIMAL(5,2), nota2 DECIMAL(5,2), nota3 DECIMAL(5,2), medie DECIMAL(5,2),an_examen INT(4),
data_nastere DATE);
INSERT INTO bacalaureat (cnp, nume, nota1, nota2, nota3, an_examen, data_nastere)
VALUES('1880306298723', 'Ioanide Florin', 10, 5, 7, 2015, '1999-10-10');
b. SELECT * FROM bacalaureat
WHERE nota1=10 OR nota2=10 OR nota3=10 ORDER BY nume;
c. UPDATE bacalaureat
SET medie=(nota1+nota2+nota3)/3
WHERE nota1>=5 AND nota2>=5 AND nota3>5;
d. SELECT nume, MAX(medie) AS 'Media cea mai mare' FROM bacalaureat;

Problema 2
Se consider tabela ELEVI cu structura alturat: Nume Tip Dimensiune
Cerine: nr_matricol numeric 4
nume ir caractere 50
a. Creai tabela, n care cmpul nr_matricol conine valori unice. Introducei clasa ir caractere 5
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. medie_gener
numeric 5,2
b. S se afieze n ordine alfabetic toi elevii clasei 12A. ala
c. S se determine numrul de elevi i numrul de absene pentru fiecare nr_anbsente numeric 3
clas n parte. bursa ir caractere 10
sex caracter 1
d. Modificai cmpul bursa cu valoarea social dac medie_generala 8,50

16
Subiecte Atestat profesional la informatic Idei de rezolvare
dar mai mic dect 9 i merit dac medie_generala 9,00.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM elevi
WHERE clasa='12A'
ORDER BY nume;
c. SELECT clasa, COUNT(*) AS Numar elevi, SUM(nr_absente) AS Numar absente
FROM elevi
GROUP BY clasa;
d. UPDATE elevi
SET bursa='merit'
WHERE medie_generala>=9;
UPDATE elevi
SET bursa='sociala'
WHERE medie_generala>=8.5 AND medie_generala<9;
Varianta SQL Visual FoxPro
b. SELECT * FROM elevi WHERE clasa='12A' ORDER BY nume
c. SELECT clasa, COUNT(*) AS Numar_elevi, SUM(nr_absente) AS Numar_absente FROM elevi GROUP BY
clasa
d. UPDATE elevi SET bursa='merit' WHERE medie_gen>=9
Varianta SQL - MySQL
b. SELECT * FROM elevi
WHERE clasa='12A'
ORDER BY nume;
c. SELECT clasa, COUNT(*) AS Numar elevi, SUM(nr_absente) AS Numar absente
FROM elevi
GROUP BY clasa;
d. UPDATE elevi
SET bursa='merit'
WHERE medie_generala>=9;
UPDATE elevi
SET bursa='sociala'
WHERE medie_generala>=8.5 AND medie_generala<9;

Problema 3
Se consider tabela BACALAUREAT cu structura alturat: Nume Tip Dimensiune
Cerine: cnp ir caractere 13
nume ir caractere 50
a. Creai tabela, n care cmpul cnp conine valori unice, iar cmpul medie nota1 numeric 5,2
se calculeaz dup regula (nota1 + nota2 +nota3) / 3 dac toate mediile nota2 numeric 5,2
sunt mai mari sau egale cu 5 i 0 dac notele sunt mai mici dect 5. nota3 numeric 5,2
Introducei minim 7 nregistrri, relevante pentru rezolvarea cerinelor. medie numeric 5,2
b. S se afieze toi elevi care au obinut la prima prob cel puin nota 5 i an_examen numeric 4
dat
maxim nota 8. data_nastere
calendaristic
c. S se afieze numrul de elevi care au promovat examenul (nota15,
nota25, nota35 i medie6) n anul 2015.
d. tergei toi elevi care s-au nscut nainte de 15.01.1980.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume, nota1 FROM bacalaureat
WHERE nota1>=5 AND nota1<=8;
Observaie: nota1>=5 AND nota1<=8 nota1 BETWEEN 5 AND 8
c. SELECT COUNT(*) AS Numar elevi promovati 2015 FROM bacalaureat
WHERE nota1>=5 AND nota2>=5 AND nota3>=5 AND medie>=6 AND an_examen=2015;
d. DELETE FROM bacalaureat
WHERE data_nastere<TO_DATE('15-01-1980','DD-MM-YYYY');
Varianta SQL Visual FoxPro
b. SELECT nume, nota1 FROM bacalaureat WHERE nota1>=5 AND nota1<=8
c. SELECT COUNT(*) FROM bacalaureat WHERE nota1>=5 AND nota2>=5 AND nota3>=5 AND medie>=6 AND
an_examen=2015
d. DELETE FROM bacalaureat WHERE data_nastere < {^1980-01-15}
Varianta SQL - MySQL
b. SELECT nume, nota1 FROM bacalaureat
WHERE nota1>=5 AND nota1<=8;
Observaie: nota1>=5 AND nota1<=8 nota1 BETWEEN 5 AND 8
c. SELECT COUNT(*) AS 'Numar elevi promovati in anul 2015' FROM bacalaureat

17
Subiecte Atestat profesional la informatic Idei de rezolvare
WHERE nota1>=5 AND nota2>=5 AND nota3>=5 AND medie>=6 AND an_examen=2015;
d. DELETE FROM bacalaureat
WHERE data_nastere<'1980-01-15';

Problema 4
Se consider tabela ELEVI cu structura alturat: Nume Tip Dimensiune
Cerine: nr_matricol numeric 4
nume ir caractere 50
a. Creai tabela, n care cmpul nr_matricol conine valori unice. Introducei clasa ir caractere 5
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. medie_generala numeric 5,2
b. S se afieze toi elevii al cror nume ncepe cu litera A. nr_absente numeric 3
c. Pentru fiecare clas n parte, s se calculeze numrul maxim de absene bursa ir caractere 10
nregistrate de un elev. sex caracter 1
d. tergei toi elevii care au numrul de absene mai mare dect 40, iar numele
clasei ncepe cu caracterele 11, 12 sau 13.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM elevi
WHERE sex='F' AND nume LIKE('A%');
c. SELECT clasa, MAX(nr_absente) AS Numar maxim absente FROM elevi
GROUP BY clasa;
d. DELETE FROM elevi
WHERE nr_absente>=40 AND
(clasa LIKE('11%') OR clasa LIKE('12%') OR clasa LIKE('13%'));
Varianta SQL Visual FoxPro
b. SELECT * FROM elevi WHERE sex='F' AND nume LIKE 'A%'
c. SELECT clasa, MAX(nr_absente) AS Numar_maxim_absente FROM elevi GROUP BY clasa
d. DELETE FROM elevi WHERE nr_absente>=40 AND (clasa LIKE '11%' OR clasa LIKE '12%' OR clasa
LIKE '13%')
Varianta SQL - MySQL
b. SELECT * FROM elevi
WHERE sex='F' AND nume LIKE('A%');
c. SELECT clasa, MAX(nr_absente) AS Numar maxim absente FROM elevi
GROUP BY clasa;
d. DELETE FROM elevi
WHERE nr_absente>=40 AND
(clasa LIKE('11%') OR clasa LIKE('12%') OR clasa LIKE('13%'));

Problema 5
Se consider tabela STUDENTI cu structura alturat: Nume Tip Dimensiune
Cerine: cod_student numeric 4
nume ir caractere 50
a. Creai tabela, n care cmpul cod_student conine valori unice. Introducei grupa numeric 4
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. specializ ir caractere 50
b. S se afieze n ordine descresctoare toi studenii care aparin grupei sex caracter 1
1001 sau 1002. dat
data_nastere
c. S se calculeze numrul de studeni pentru fiecare specializare n parte. calendaristic
d. Modificai cmpul grup cu valoarea 5000 la toi studenii din grupa 4000.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM studenti
WHERE grupa=1001 OR grupa=1002
ORDER BY nume DESC;
Observaie: grupa=1001 OR grupa=1002 grupa IN (1001,1002)
c. SELECT specializ, COUNT(*) AS Numar sudenti FROM studenti
GROUP BY specializ;
d. UPDATE studenti
SET grupa=5000
WHERE grupa=4000;
Varianta SQL Visual FoxPro
b. SELECT * FROM studenti WHERE grupa=1001 OR grupa=1002 ORDER BY nume DESC
c. SELECT specializ, COUNT(*) AS Numar_studenti FROM studenti GROUP BY specializ
d. UPDATE studenti SET grupa=5000 WHERE grupa=4000
Varianta SQL - MySQL
b. SELECT * FROM studenti

18
Subiecte Atestat profesional la informatic Idei de rezolvare
WHERE grupa=1001 OR grupa=1002
ORDER BY nume DESC;
Observaie: grupa=1001 OR grupa=1002 grupa IN (1001,1002)
c. SELECT specializ, COUNT(*) AS Numar sudenti FROM studenti
GROUP BY specializ;
d. UPDATE studenti
SET grupa=5000
WHERE grupa=4000;

Problema 6
Se consider tabela STUDENTI cu structura alturat: Nume Tip Dimensiune
Cerine: cod_student numeric 4
nume ir caractere 50
a. Creai tabela, n care cmpul cod_student conine valori unice. Introducei grupa numeric 4
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. specializ ir caractere 50
b. S se afieze n ordine cresctoare toi bieii care sunt nscui dup sex caracter 1
1.01.1999. dat
data_nastere
c. S se determine grupele care au cel puin 2 studente. calendaristic
d. tergei studentul care are codul 999.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM studenti
WHERE sex='M' AND data_nastere>= TO_DATE('01-01-1999','DD-MM-YYYY')
ORDER BY nume;
c. SELECT grupa, COUNT(*) AS Numar fete FROM studenti
WHERE sex='F'
GROUP BY grupa
HAVING COUNT(*)>=2;
d. DELETE FROM studenti
WHERE cod_student=999;
Varianta SQL Visual FoxPro
b. SELECT * FROM studenti WHERE sex='M' AND data_n >= {^1999/01/01} ORDER BY nume
c. SELECT grupa, COUNT(*) AS 'Numar_fete' FROM studenti WHERE sex='F' GROUP BY grupa HAVING
COUNT(*)>=2
d. DELETE FROM studenti WHERE cod_st=999
Varianta SQL - MySQL
b. SELECT * FROM studenti
WHERE sex='M' AND data_nastere >= '1999-01-01'
ORDER BY nume;
c. SELECT grupa, COUNT(*) AS Numar fete FROM studenti
WHERE sex='F'
GROUP BY grupa
HAVING COUNT(*)>=2;
d. DELETE FROM studenti
WHERE cod_student=999;

Problema 7
Se consider tabela MEDICAMENTE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim cantitate numeric 4
7 nregistrri, relevante pentru rezolvarea cerinelor. pret_unitar numeric 7,2
b. S se afieze medicamentele fabricate nainte de anul 2013. an_fabricatie numeric 4
c. S se calculeze valoarea stocului de medicamente. an_expirare numeric 4
d. S se tearg medicamentele care au anul fabricaiei 2012.
Rezolvare
Varianta SQL - Oracle
b. SELECT denumire, an_fabricatie FROM medicamente
WHERE an_fabricatie<2013;
c. SELECT sum(cantitate * pret_unitar) as Valoarea medicamentelor
FROM medicamente;
d. DELETE FROM medicamente
WHERE an_fabricatie=2012;
Varianta SQL Visual FoxPro
b. SELECT denumire, an_fab FROM medicamente WHERE an_fab<2013
c. SELECT SUM(cantitate * pr_unit) AS Valoarea_medicamentelor FROM medicamente

19
Subiecte Atestat profesional la informatic Idei de rezolvare
d. DELETE FROM medicamente WHERE an_fab=2012
Varianta SQL - MySQL
b. SELECT denumire, an_fabricatie FROM medicamente
WHERE an_fabricatie<2013;
c. SELECT sum(cantitate * pret_unitar) AS Valoarea medicamentelor
FROM medicamente;
d. DELETE FROM medicamente
WHERE an_fabricatie=2012;

Problema 8
Se consider tabela MEDICAMENTE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim cantitate numeric 4
7 nregistrri, relevante pentru rezolvarea cerinelor. pret_unitar numeric 7,2
b. S se afieze medicamentele n ordinea cronologic a anului de expirare. an_fabricatie numeric 4
c. S se calculeze cte medicamente expir n anul 2016. an_expirare numeric 4
d. S se modifice cmpul cantitate, corespunztor medicamentului cu codul
123, cu cantitate + 100.
Rezolvare
Varianta SQL - Oracle
b. SELECT denumire, an_expirare FROM medicamente
ORDER BY an_expirare;
c. SELECT count(denumire) AS Expira in 2016 (nr) FROM medicamente
WHERE an_expirare = 2016;
d. UPDATE medicamente
SET cantitate = cantitate + 100
WHERE cod=123;
Varianta SQL Visual FoxPro
b. SELECT denumire, an_expir FROM medicamente ORDER BY an_expir
c. SELECT COUNT(denumire) AS Expira_in_2016 FROM medicamente WHERE an_expir = 2016
d. UPDATE medicamente SET cantitate = cantitate + 100 WHERE cod=123
Varianta SQL - MySQL
b. SELECT denumire, an_expirare FROM medicamente
ORDER BY an_expirare;
c. SELECT count(denumire) AS Expira in 2016 (nr) FROM medicamente
WHERE an_expirare = 2016;
d. UPDATE medicamente
SET cantitate = cantitate + 100
WHERE cod=123;

Problema 9
Se consider tabela MEDICI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim specializare ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. cabinet numeric 2
b. S se afieze medicii care dau consultaii n ziua de joi. ziua ir caractere 10
c. S se afieze cel mai mare numr de pacieni consultai mari. nr_pacienti numeric 4
d. S se modifice cmpul nr_pacienti dup formula nr_pacienti + 8 pentru
medicul cu codul 62.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume AS Medici - joi FROM medici
WHERE ziua = 'joi';
c. SELECT max(nr_pacienti) AS Maxim pacienti marti from medici
WHERE ziua='marti';
d. UPDATE medici
SET nr_pacienti = nr_pacienti + 8
WHERE cod = 62;
Varianta SQL Visual FoxPro
b. SELECT nume AS Medici_joi FROM medici WHERE ziua = 'joi'
c. SELECT MAX(nr_pac) AS Maxim_pacienti_marti FROM medici WHERE ziua='marti'
d. UPDATE medici SET nr_pac = nr_pac + 8 WHERE cod = 62

20
Subiecte Atestat profesional la informatic Idei de rezolvare
Varianta SQL - MySQL
b. SELECT nume AS Medici - joi FROM medici
WHERE ziua = 'joi';
c. SELECT max(nr_pacienti) AS Maxim pacienti marti from medici
WHERE ziua='marti';
d. UPDATE medici
SET nr_pacienti = nr_pacienti + 8
WHERE cod = 62;

Problema 10
Se consider tabela MEDICI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim specializ ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. cabinet numeric 2
b. S se afieze medicii n ordinea alfabetic a specializrilor. ziua ir caractere 10
c. S se calculeze numrul medicilor care acord consultaii n fiecare nr_pacienti numeric 4
cabinet.
d. S se tearg medicul cu codul 78.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume, specializ FROM medici
ORDER BY specializ;
c. SELECT cabinet, count(cod) AS Cabinet - nr. medici FROM medici
GROUP BY cabinet;
d. DELETE FROM medici
WHERE cod=78;
Varianta SQL Visual FoxPro
b. SELECT nume, specializ FROM medici ORDER BY specializ
c. SELECT cabinet, COUNT(cod) AS Cabinet_nr_medici FROM medici GROUP BY cabinet
d. DELETE FROM medici WHERE cod=78
Varianta SQL - MySQL
b. SELECT nume, specializ FROM medici
ORDER BY specializ;
c. SELECT cabinet, count(cod) AS Cabinet - nr. medici from medici
GROUP BY cabinet;
d. DELETE FROM medici
WHERE cod=78;

Problema 11
Se consider tabela CAINI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim rasa ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. varsta numeric 2
b. S se afieze toi cinii din rasa bichon. proprietar ir caractere 30
c. S se afieze cea mai lung perioad (numr de zile) pe care un cine a nr_zile numeric 4
petrecut-o n pensiunea canin.
d. S se modifice cmpul rasa dup cum urmeaz: rasa ciobanesc se va
nlocui cu rasa ciobanesc german.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM caini
WHERE rasa='bichon';
c. SELECT max(nr_zile) AS Maxim gazduire - zile FROM caini;
d. UPDATE caini
SET rasa = 'ciobanesc german'
WHERE rasa = 'ciobanesc';
Varianta SQL Visual FoxPro
b. SELECT * FROM caini WHERE rasa='bichon'
c. SELECT MAX(nr_zile) AS Maxim_gazduire_zile FROM caini
d. UPDATE caini SET rasa = 'ciobanesc german' WHERE rasa = 'ciobanesc'
Varianta SQL - MySQL
b. SELECT * FROM caini
WHERE rasa='bichon'

21
Subiecte Atestat profesional la informatic Idei de rezolvare
c. SELECT max(nr_zile) AS Maxim gazduire - zile FROM caini;
d. UPDATE caini
SET rasa = 'ciobanesc german'
WHERE rasa = 'ciobanesc';

Problema 12
Se consider tabela CAINI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 4
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim rasa ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. varsta numeric 2
b. S se afieze toi cinii al cror nume ncepe cu litera D. proprietar ir caractere 30
c. S se afieze vrsta celui mai tnr cel din pensiunea canin. nr_zile numeric 4
d. S se tearg cinii proprietarului Petrescu Vlad.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM caini
WHERE nume like 'D%';
c. SELECT min(varsta) AS Varsta cea mai mica FROM caini;
d. DELETE FROM caini
WHERE proprietar='Petrescu Vlad';
Varianta SQL Visual FoxPro
b. SELECT * FROM caini WHERE nume LIKE 'D%'
c. SELECT MIN(varsta) AS Varsta_cea_mai_mica FROM caini
d. DELETE FROM caini WHERE proprietar='Petrescu Vlad'
Varianta SQL - MySQL
b. SELECT * FROM caini
WHERE nume like 'D%';
c. SELECT min(varsta) AS Varsta cea mai mica FROM caini;
d. DELETE FROM caini
WHERE proprietar='Petrescu Vlad';

Problema 13
Se consider tabela MASINI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 7
nr_inmatr ir caractere 9
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim dat
7 nregistrri, relevante pentru rezolvarea cerinelor. data_rep
calendaristic
b. S se afieze toi proprietarii care i-au reparat maina marca Dacia, nume_mecanic ir caractere 30
modelul Logan. marca ir caractere 20
c. S se afieze suma pltit la atelier de proprietarii mrcii Skoda de-a model ir caractere 20
pret numeric 7,2
lungul timpului.
nume_propriet
d. S se mreasc preul fiecrei reparaii cu 5%. ir caractere 30
ar
tel_proprietar ir caractere 10

Rezolvare
Varianta SQL - Oracle
b. SELECT nume_proprietar AS Proprietar masina FROM masini
WHERE (marca ='Dacia') AND (model='Logan');
c. SELECT SUM(pret) AS Reparatii marca Skoda FROM masini
WHERE marca ='Skoda';
d. UPDATE masini
SET pret=pret*1.05;
Varianta SQL Visual FoxPro
b. SELECT nume_prop AS Proprietar_masina FROM masini WHERE (marca ='Dacia') AND (model='Logan')
c. SELECT SUM(pret) AS Reparatii_marca_Skoda FROM masini WHERE marca ='Skoda'
d. UPDATE masini SET pret=pret*1.05
Varianta SQL - MySQL
b. SELECT nume_proprietar AS Proprietar masina FROM masini
WHERE (marca ='Dacia') AND (model='Logan');
c. SELECT SUM(pret) AS Reparatii marca Skoda FROM masini
WHERE marca ='Skoda';
d. UPDATE masini
SET pret=pret*1.05;

22
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 14
Se consider tabela MASINI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 7
nr_inmatr ir caractere 9
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim
dat
7 nregistrri, relevante pentru rezolvarea cerinelor. data_rep
calendaristic
b. S se afieze toi proprietarii care i-au reparat mainile marca Skoda, n nume_mecani
ir caractere 30
ordine descresctoare a preului reparaiei. c
c. S se afieze cea mai scump reparaie pentru mainile marca Dacia. marca ir caractere 20
d. S se tearg nregistrarea cu codul 202. model ir caractere 20
pret numeric 7,2
nume_propri
ir caractere 30
etar
tel_proprietar ir caractere 10

Rezolvare
Varianta SQL - Oracle
b. SELECT nume_proprietar AS Proprietar masina , pret AS Pret reparatie
FROM masini
WHERE marca='Skoda'
ORDER BY pret DESC;
c. SELECT MAX(pret) AS Pret maxim FROM masini
WHERE marca ='Dacia';
d. DELETE FROM masini
WHERE cod=202;
Varianta SQL Visual FoxPro
b. SELECT nume_prop AS Proprietar_masina, pret AS Pret_reparatie FROM masini WHERE
marca='Skoda' ORDER BY pret DESC
c. SELECT MAX(pret) AS Pret_maxim FROM masini WHERE marca ='Dacia'
d. DELETE FROM masini WHERE cod=202
Varianta SQL - MySQL
b. SELECT nume_proprietar AS Proprietar masina , pret AS Pret reparatie
FROM masini
WHERE marca='Skoda'
ORDER BY pret DESC;
c. SELECT MAX(pret) AS Pret maxim FROM masini
WHERE marca ='Dacia';
d. DELETE FROM masini
WHERE cod=202;

Problema 15
Se consider tabela PRAJITURI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim pret_unitar numeric 7,2
7 nregistrri, relevante pentru rezolvarea cerinelor. cantitate numeric 5
b. S se afieze denumirile prjiturilor a cror cantitate este egal cu 10. calorii numeric 7,2
c. S se afieze cel mai mare numr de calorii pe care l conine o prjitur. data_exp
dat
d. S se micoreze cu o zi data expirrii pentru fiecare prjitur. calendaristic

Rezolvare
Varianta SQL - Oracle
b. SELECT denumire FROM prajituri
WHERE cantitate=10;
c. SELECT MAX(calorii) FROM prajituri;
d. UPDATE prajituri
SET data_exp=data_exp-1;
Varianta SQL Visual FoxPro
b. SELECT denumire FROM prajituri WHERE cantitate=10
c. SELECT MAX(calorii) FROM prajituri
d. UPDATE prajituri SET data_exp=data_exp-1
Varianta SQL - MySQL
b. SELECT denumire FROM prajituri
WHERE cantitate=10;
c. SELECT max(calorii) FROM prajituri;
d. UPDATE prajituri
SET data_exp=DATE_SUB(data_exp, INTERVAL 1 DAY);
Observaie: SET data_exp=DATE_SUB(data_exp, INTERVAL 1 DAY) SET data_exp=data_exp-1;

23
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 16
Se consider tabela PRAJITURI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim pret_unitar numeric 7,2
7 nregistrri, relevante pentru rezolvarea cerinelor. cantitate numeric 5
b. S se afieze denumirile prjiturilor, cresctor dup numrul de calorii. calorii numeric 7,2
c. S se calculeze valoarea total a prjiturilor din stoc. data_exp
dat
d. S se mreasc cu 5 valoarea din cmpul cantitate pentru prjitura calendaristic
Amandina.
Rezolvare
Varianta SQL - Oracle
b. SELECT denumire, calorii FROM prajituri ORDER BY calorii;
c. SELECT SUM(pret_unitar*cantitate) AS Valoare totala FROM prajituri;
d. UPDATE prajituri
SET cantitate=cantitate+5
WHERE denumire='Amandina';
Varianta SQL Visual FoxPro
b. SELECT denumire, calorii FROM prajituri ORDER BY calorii
c. SELECT SUM(pr_unit*cantitate) AS Valoare_totala FROM prajituri
d. UPDATE prajituri SET cantitate=cantitate+5 WHERE denumire='Amandina'
Varianta SQL - MySQL
b. SELECT denumire, calorii FROM prajituri
ORDER BY calorii;
c. SELECT SUM(pret_unitar*cantitate) AS Valoare totala FROM prajituri;
d. UPDATE prajituri
SET cantitate=cantitate+5
WHERE denumire='Amandina';

Problema 17
Se consider tabela ORASE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim tara ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. populatie numeric 8
b. S se afieze toate oraele n ordine cresctoare a numrului de locuitori. suprafata numeric 8,2
c. S se afieze numrul de orae din fiecare ar.
d. S se mreasc populaia din fiecare ora cu 1%.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume AS Oras, populatie AS Numar locuitori FROM orase
ORDER BY populatie;
c. SELECT tara,COUNT(nume) AS Numar orase FROM orase
GROUP BY tara;
d. UPDATE orase
SET populatie=populatie*1.01;
Varianta SQL Visual FoxPro
b. SELECT nume AS Oras, populati AS Numar_locuitori FROM orase ORDER BY populatie
c. SELECT tara, COUNT(nume) AS Numar_orase FROM orase GROUP BY tara
d. UPDATE orase SET populatie=populatie*1.01
Varianta SQL - MySQL
b. SELECT nume AS Oras, populatie AS Numar locuitori FROM orase
ORDER BY populatie;
c. SELECT tara,COUNT(nume) AS Numar orase FROM orase GROUP BY tara;
d. UPDATE orase
SET populatie=populatie*1.01;

Problema 18
Se consider tabela ORASE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
nume ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim tara ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. populatie numeric 8
b. S se afieze toate oraele care au un numr de locuitori mai mare dect suprafata numeric 8,2
1000000.

24
Subiecte Atestat profesional la informatic Idei de rezolvare
c. S se afieze numrul total al locuitorilor din mediul urban, pentru fiecare ar.
d. S se tearg toate oraele al cror nume ncepe cu litera C.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume AS Oras FROM orase
WHERE populatie>1000000;
c. SELECT tara, SUM(populatie) AS Locuitori mediul urban FROM orase
GROUP BY tara;
d. DELETE FROM orase
WHERE nume LIKE 'C%';
Varianta SQL Visual FoxPro
b. SELECT nume AS Oras FROM orase WHERE populati>1000000
c. SELECT tara, SUM(populati) AS Locuitori_mediul_urban FROM orase GROUP BY tara
d. DELETE FROM orase WHERE nume LIKE 'C%'
Varianta SQL - MySQL
b. SELECT nume AS Oras from orase
WHERE populatie>1000000;
c. SELECT tara, SUM(populatie) AS Locuitori mediul urban FROM orase
GROUP BY tara;
d. DELETE FROM orase
WHERE nume like 'C%';

Problema 19
Se consider tabela LOCATARI cu structura alturat: Nume Tip Dimensiune
Cerine: cod_loc numeric 5
nume_pren ir caractere 20
a. Creai tabela, n care cmpul cod_loc conine valori unice. Introducei strada ir caractere 25
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. bloc ir caractere 6
b. S se afieze toi locatarii de pe strada Marasesti, n ordine descresctoare ap numeric 3
a blocurilor, iar pentru acelai bloc, n ordine cresctoare a apartamentului. telefon numeric 10
c. Afiai cea mai mare sum restant precum i numrul total de restanieri. chel_curente numeric 7,2
restanta numeric 7,2
d. Modificai tabela astfel nct s reias c toi locatarii cu restan mai mare
de 100 RON i au achitat datoria.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM locatari WHERE UPPER(strada)='MARASESTI' ORDER BY bloc DESC, ap;
c. SELECT MAX(restanta) AS Cea mai mare suma restanta,
COUNT(restanta) AS Nr. locatari respantieri
FROM locatari;
d. UPDATE locatari
SET restanta=0 WHERE restanta >100;
Varianta SQL Visual FoxPro
b. SELECT * FROM locatari WHERE UPPER(strada)='MARASESTI' ORDER BY bloc DESC, ap
c. SELECT MAX(restanta) AS Cea_mai_mare_suma_restanta, COUNT(restanta) AS
Nr_locatari_respantieri FROM locatari
d. UPDATE locatari SET restanta=0 WHERE restanta >100
Varianta SQL - MySQL
b. SELECT * FROM locatari
WHERE UPPER(strada)='MARASESTI'
ORDER BY bloc DESC, ap;
c. SELECT MAX(restanta) AS Cea mai mare suma restanta,
COUNT(restanta) AS Nr. locatari respantieri
FROM locatari;
d. UPDATE locatari
SET restanta=0 WHERE restanta >100;

Problema 20
Se consider tabela LOCATARI cu structura alturat: Nume Tip Dimensiune
Cerine: cod_loc numeric 5
nume_pren ir caractere 20
a. Creai tabela, n care cmpul cod_loc conine valori unice. Introducei strada ir caractere 25
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. bloc ir caractere 6
b. Afiai toi locatarii al cror nume ncepe cu M, n ordine cresctoare a ap numeric 3
codului de locatar. telefon numeric 10
c. Pentru blocul 15B, de pe strada 8 Martie afiai valoarea total de achitat chelt_curente numeric 7,2
restanta numeric 7,2

25
Subiecte Atestat profesional la informatic Idei de rezolvare
i numrul locatarilor care pot fi informai rapid de aceast sum.
d. Pentru toi locatarii cu restan, se aplic o penalizare de 5% la suma
restant. Modificai corespunztor tabela.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM locatari
WHERE nume_pren LIKE 'M%'
ORDER BY cod_loc;
c. SELECT SUM(chelt_curente) + SUM(restanta) AS De plata Bl. 15B Str. 8 Martie,
COUNT(telefon) AS Nr. locatari informati
FROM locatari
WHERE UPPER(bloc)='15B' AND UPPER(strada)='8 MARTIE';
d. UPDATE locatari
SET restanta=1.05*restanta WHERE restanta>0;
Varianta SQL Visual FoxPro
b. SELECT * FROM locatari WHERE nume_pren LIKE 'M%' ORDER BY cod_loc
c. SELECT SUM(chelt_curente) + SUM(restanta) AS De_plata_Bl_15B, COUNT(telefon) AS
Nr_locatari_informati FROM locatari WHERE UPPER(bloc)='15B' AND UPPER(strada)='8 MARTIE'
d. UPDATE locatari SET restanta=1.05*restanta WHERE restanta>0
Varianta SQL - MySQL
b. SELECT * FROM locatari
WHERE nume_pren LIKE 'M%'
ORDER BY cod_loc;
c. SELECT SUM(chelt_curente) + SUM(restanta) AS De plata Bl. 15B Str. 8 Martie,
COUNT(telefon) AS Nr. locatari informati
FROM locatari
WHERE UPPER(bloc)='15B' AND UPPER(strada)='8 MARTIE';
d. UPDATE locatari
SET restanta=1.05*restanta WHERE restanta>0;

Problema 21
Se consider tabela ABONATI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
nume ir caractere 25
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim localitate ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. telefon numeric 10
b. S se afieze abonaii alfabetic pe localiti, iar n cadrul aceleiai min_ab numeric 5
localiti, descresctor dup codul abonatului. min_cons numeric 5
c. S se calculeze numrul abonailor din Campina care au depit minutele factura numeric 7,2
din abonament.
d. S se calculeze factura abonailor, tiind c tariful pentru un minut din
abonament este de 0.5 euro, iar minutele ce depesc abonamentul sunt
taxate cu 10% mai mult dect cele incluse.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM abonati
ORDER BY localitate, cod DESC;
c. SELECT COUNT(cod) AS Nr. abonati din Campina, cu datorii FROM abonati
WHERE min_cons>min_ab AND UPPER(localitate)='CAMPINA';
d. UPDATE abonati
SET factura=0.5 * min_cons
WHERE min_cons<=min_ab;
UPDATE abonati
SET factura=0.5 * min_ab + 0.55 * (min_cons min_ab)
WHERE min_cons>min_ab;
Varianta SQL Visual FoxPro
b. SELECT * FROM abonati ORDER BY localitate, cod DESC
c. SELECT COUNT(cod) AS Nr_abonati_din_Campina_cu_datorii FROM abonati WHERE min_cons>min_ab
AND UPPER(localitate)='CAMPINA'
d. UPDATE abonati SET factura=0.5 * min_cons WHERE min_cons<=min_ab
UPDATE abonati SET factura=0.5 * min_ab + 0.55 * (min_cons - min_ab) WHERE min_cons>min_ab
Varianta SQL - MySQL
b. SELECT * FROM abonati
ORDER BY localitate, cod DESC;
c. SELECT COUNT(cod) AS Nr. abonati din Campina, cu datorii FROM abonati
WHERE min_cons>min_ab AND UPPER(localitate)='CAMPINA';

26
Subiecte Atestat profesional la informatic Idei de rezolvare
d. UPDATE abonati
SET factura=0.5 * min_cons
WHERE min_cons<=min_ab;
UPDATE abonati
SET factura=0.5 * min_ab + 0.55 * (min_cons min_ab)
WHERE min_cons>min_ab;

Problema 22
Se consider tabela ABONATI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
nume ir caractere 25
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim localitate ir caractere 30
7 nregistrri, relevante pentru rezolvarea cerinelor. telefon numeric 10
b. S se afieze toi abonaii al cror nume ncepe cu litera C i nu au depit min_ab numeric 5
minutele din abonament. min_cons numeric 5
c. S se determine numrul total de minute folosite. factura numeric 7,2
d. S se emit factura abonailor datornici, tiind c tariful pentru un minut
din abonament este de 0.5 euro, iar minutele ce depesc abonamentul sunt
taxate cu 10% mai mult dect cele incluse, iar abonaii fr datorii vor fi
scoi din tabel.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM abonati
WHERE nume LIKE 'C%' AND min_cons<=min_ab;
c. SELECT SUM(min_cons) AS Total minute consumate - Ploiesti FROM abonati
WHERE localitate=Ploiesti;
d. UPDATE abonati
SET factura=0.5 * min_cons
WHERE min_cons<=min_ab;
UPDATE abonati
SET factura=0.5 * min_ab + 0.55 * (min_cons - min_ab)
WHERE min_cons>min_ab;
DELETE FROM abonati
WHERE min_cons<=min_ab;
Varianta SQL Visual FoxPro
b. SELECT * FROM abonati WHERE nume LIKE 'C%' AND min_cons<=min_ab
c. SELECT SUM(min_cons) AS Total_minute_consumate_Ploiesti FROM abonati WHERE
localitate='Ploiesti'
d. UPDATE abonati SET factura=0.5 * min_cons WHERE min_cons<=min_ab
UPDATE abonati SET factura=0.5 * min_ab + 0.55 * (min_cons - min_ab) WHERE min_cons>min_ab
DELETE FROM abonati WHERE min_cons<=min_ab
Varianta SQL - MySQL
b. SELECT * FROM abonati
WHERE nume LIKE 'C%' AND min_cons<=min_ab;
c. SELECT SUM(min_cons) AS Total minute consumate - Ploiesti FROM abonati
WHERE localitate=Ploiesti;
d. UPDATE abonati
SET factura=0.5 * min_cons
WHERE min_cons<=min_ab;
UPDATE abonati
SET factura=0.5 * min_ab + 0.55 * (min_cons - min_ab)
WHERE min_cons>min_ab;
DELETE FROM abonati
WHERE min_cons<=min_ab;

Problema 23
Se consider tabela REVISTE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim an_aparitie numeric 4
7 nregistrri, relevante pentru rezolvarea cerinelor. pret numeric 5,2
b. S se afieze toate publicaiile aprute n anul 2010. nr_ex numeric 6
c. S se afieze preul celei mai scumpe reviste.
d. S se modifice cmpul nr_ex dup cum urmeaz: publicaia cu codul
300 i mrete tirajul cu 15%.

27
Subiecte Atestat profesional la informatic Idei de rezolvare
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM reviste
WHERE an_aparitie=2010;
c. SELECT MAX(pret) AS Pret maxim - publicatii FROM reviste;
d. UPDATE reviste
SET nr_ex=1.15*nr_ex
WHERE cod=300;
Varianta SQL Visual FoxPro
b. SELECT * FROM reviste WHERE an_apar=2010
c. SELECT MAX(pret) AS Pret_maxim_publicatii FROM reviste
d. UPDATE reviste SET nr_ex=1.15*nr_ex WHERE cod=300
Varianta SQL - MySQL
b. SELECT * FROM reviste
WHERE an_aparitie=2010;
c. SELECT MAX(pret) AS Pret maxim - publicatii FROM reviste;
d. UPDATE reviste
SET nr_ex=1.15*nr_ex
WHERE cod=300;

Problema 24
Se consider tabela REVISTE cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim an_aparitie numeric 4
7 nregistrri, relevante pentru rezolvarea cerinelor. pret numeric 5,2
b. S se afieze toate publicaiile aprute ntre anii 2007 i 2010. nr_ex numeric 6
c. S se determine suma ncasat, dac se vnd toate exemplarele tiprite.
d. S se tearg din tabel toate publicaiile cu pre mai mare de 15 RON.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM reviste
WHERE an_aparitie BETWEEN 2007 AND 2010;
c. SELECT sum(pret*nr_ex) AS Valoare totala - reviste FROM reviste;
d. DELETE FROM reviste
WHERE pret>15;
Varianta SQL Visual FoxPro
b. SELECT * FROM reviste WHERE an_aparitie BETWEEN 2007 AND 2010
c. SELECT SUM(pret*nr_ex) AS Valoare_totala_reviste FROM reviste
d. DELETE FROM reviste WHERE pret>15
Varianta SQL - MySQL
b. SELECT * FROM reviste
where an_aparitie between 2007 and 2010;
c. SELECT sum(pret*nr_ex) AS Valoare totala - reviste FROM reviste;
d. DELETE FROM reviste WHERE pret>15;

Problema 25
Se consider tabela STOC cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim umasura ir caractere 3
7 nregistrri, relevante pentru rezolvarea cerinelor. cantitate numeric 7,2
b. S se afieze produsele n ordine alfabetic. pret numeric 7,2
c. S se afieze pentru fiecare produs codul, denumirea i valoarea
(cantitate*pret).
d. S se afieze produsele cu preul maxim.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM stoc ORDER BY denumire;
c. SELECT cod, denumire, cantitate*pret AS Valoare stoc FROM stoc;
d. SELECT * FROM stoc
WHERE pret= ( SELECT MAX(pret) FROM stoc );
Varianta SQL Visual FoxPro
b. SELECT * FROM stoc ORDER BY denumire
c. SELECT cod, denumire, cantitate*pret AS valoare FROM stoc

28
Subiecte Atestat profesional la informatic Idei de rezolvare
d. SELECT * FROM stoc WHERE pret= (SELECT MAX(pret) FROM stoc);
Varianta SQL - MySQL
b. SELECT * FROM stoc
ORDER BY denumire
c. SELECT cod, denumire, cantitate*pret AS Valoare stoc FROM stoc
d. SELECT * FROM stoc
WHERE pret= ( SELECT MAX(pret) FROM stoc );

Problema 26
Se consider tabela PERSONAL cu structura alturat: Nume Tip Dimensiune
Cerine: marca numeric 5
nume ir caractere 30
a. Creai tabela, n care cmpul marca conine valori unice. Introducei functie ir caractere 20
minim 7 nregistrri, relevante pentru rezolvarea cerinelor. salariu numeric 5
b. S se afieze datele persoanei Ionescu Maria. retineri numeric 5
c. Afiai salariul mediu pentru fiecare funcie.
d. S se actualizeze coloana rest_plat cu salariu - retineri pentru toate
nregistrrile.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM personal
WHERE nume='Ionescu Maria';
c. SELECT functie, AVG(salariu) AS Salariu mediu
FROM personal
GROUP BY functie;
d. UPDATE personal
SET rest_plata = salariu retineri;
Varianta SQL Visual FoxPro
b. SELECT * FROM personal WHERE nume='Ionescu Maria'
c. SELECT functie,AVG(salariu) AS salariu_mediu FROM personal GROUP BY functie
d. UPDATE personal SET rest_plata=salariu-retineri
Varianta SQL - MySQL
b. SELECT * FROM personal
WHERE nume='Ionescu Maria';
c. SELECT functie, AVG(salariu) AS Salariu mediu
FROM personal
GROUP BY functie ;
d. UPDATE personal
SET rest_plata = salariu retineri;

Problema 27
Se consider tabela CARTI cu structura alturat: Nume Tip Dimensiune
Cerine: cod numeric 5
denumire ir caractere 30
a. Creai tabela, n care cmpul cod conine valori unice. Introducei minim umasura ir caractere 3
7 nregistrri, relevante pentru rezolvarea cerinelor. cantitate numeric 7,2
b. S se afieze crile ordonate alfabetic dup autor i titlu. pret numeric 7,2
c. S se calculeze suma valorilor crilor de la fiecare editur.
d. S se mreasc preurile crilor de la editura Nemira cu 10%.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM carti
ORDER BY autor, titlu;
c. SELECT editura, SUM(pret) AS valoare FROM carti
GROUP BY editura;
d. UPDATE carti
SET pret=pret*1.1
WHERE editura='Nemira';
Varianta SQL Visual FoxPro
b. SELECT * FROM carti ORDER BY autor, titlu
c. SELECT editura,SUM(pret)AS valoare FROM carti GROUP BY editura
d. UPDATE carti SET pret=pret*1.1 WHERE editura='Nemira'
Varianta SQL - MySQL
b. SELECT * FROM carti
ORDER BY autor, titlu;
c. SELECT editura, SUM(pret) AS valoare FROM carti

29
Subiecte Atestat profesional la informatic Idei de rezolvare
GROUP BY editura;
d. UPDATE carti
SET pret=pret*1.1
WHERE editura='Nemira';

Problema 28
Se consider tabela MATERIALE cu structura alturat: Nume Tip Dimensiune
Cerine: codp numeric 5
codf numeric 5
a. Creai tabela, n care cmpul codp conine valori unice. Introducei minim cantitate numeric 5
7 nregistrri, relevante pentru rezolvarea cerinelor. pret numeric 5,2
b. S se afieze produsele ordonate cresctor dup codf i dup codp. tva numeric 3,2
c. S se afieze produsele adugate n ultimile 3 zile. datai
dat
d. S se afieze pentru fiecare furnizor valoarea produselor (cantitate * pret) calendaristic
cu 0% tva.
Rezolvare
Varianta SQL - Oracle
b. SELECT * FROM materiale
ORDER BY codf, codp;
c. SELECT * FROM materiale
WHERE datai> SYSDATE-3;
d. SELECT *, SUM(cantitate*pret) AS valoare FROM materiale
Varianta SQL Visual FoxPro
b. SELECT * FROM materiale ORDER BY codf,codp
c. SELECT * FROM materiale WHERE datai>date()-3
d. SELECT *, SUM(cantitate*pret) AS valoare FROM materiale GROUP BY codf
WHERE tva=0
Varianta SQL - MySQL
b. SELECT * FROM materiale
ORDER BY codf,codp;
c. SELECT * FROM materiale
WHERE datai>CURDATE()-3;
d. SELECT *, SUM(cantitate*pret) AS valoare FROM materiale

Problema 29
Se consider tabela FACTURI cu structura alturat: Nume Tip Dimensiune
Cerine: serie ir caractere 10
nume_prod ir caractere 30
a. Creai tabela, n care cmpul serie conine valori unice. Introducei minim um sir caractere 4
7 nregistrri, relevante pentru rezolvarea cerinelor. cantitate numeric 5
b. S se afieze produsele i preurile unitare alfabetic. tva numeric 3,2
c. S se afieze produsele cu preul unitar maxim. datai
dat
d. Calculai suma valorilor produselor (valoare = cantitate * pret) ct i calendaristic
TVA-ul (valoare TVA = valoare * tva), nregistrate n ziua 14.01.2010.
Rezolvare
Varianta SQL - Oracle
b. SELECT nume_prod, pret_unit FROM facturi
ORDER BY nume_prod;
c. SELECT nume_prod, pret_unit FROM facturi
WHERE pret_unit=(SELECT MAX(pret_unit) FROM facturi);
d. SELECT SUM(cantitate*pret_unit) AS valoare, SUM(cantitate*pret_unit*tva) AS tva
FROM facturi
WHERE datai={14.01.2010};
Varianta SQL Visual FoxPro
b. SELECT nume_prod, pret_unit FROM facturi ORDER BY nume_prod
c. SELECT nume_prod, pret_unit FROM facturi WHERE pret_unit=(SELECT MAX(pret_unit) FROM facturi)
d. SELECT SUM(cantitate*pret_unit) AS valoare, SUM(cantitate*pret_unit*tva) AS tva FROM facturi
WHERE datai={^2010-01-14}
Varianta SQL - MySQL
b. SELECT nume_prod, pret_unit FROM facturi
ORDER BY nume_prod;
c. SELECT nume_prod, pret_unit FROM facturi
WHERE pret_unit=(SELECT MAX(pret_unit) FROM facturi);
d. SELECT SUM(cantitate*pret_unit) AS valoare, SUM(cantitate*pret_unit*tva) AS tva
FROM facturi
WHERE datai={14.01.2010};

30
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 30
Se consider tabela PRODUSE cu structura alturat: Nume Tip Dimensiune
Cerine: codp numeric 5
furnizor ir caractere 30
a. Creai tabela, n care cmpul codp conine valori unice. Introducei minim cantitate numeric 5
7 nregistrri, relevante pentru rezolvarea cerinelor. pret numeric 5
b. S se afieze numrul furnizorilor care au livrat produsul cu codul 101. tva numeric 3,2
c. S se afieze numrul produselor cu aceeai valoare a codului i cu tva=0.
d. S se afieze furnizorii care au livrat produse cu preul mai mic dect preul
mediu.
Rezolvare
Varianta SQL - Oracle
b. SELECT COUNT(furnizor)AS Nr_furnizori FROM produse
WHERE codp=101;
c. SELECT codp,COUNT(codp) AS nr_produse FROM produse
WHERE tva=0
GROUP BY codp;
d. SELECT furnizor FROM produse
WHERE pret<(SELECT AVG(pret) FROM produse)
GROUP BY furnizor;
Varianta SQL Visual FoxPro
b. SELECT COUNT(furnizor)AS Nr_furnizori FROM produse WHERE codp=101
c. SELECT codp,COUNT(codp) AS nr_produse FROM produse WHERE tva=0 GROUP BY codp
d. SELECT furnizor FROM produse WHERE pret<(SELECT AVG(pret) FROM produse)
GROUP BY furnizor
Varianta SQL - MySQL
b. SELECT COUNT(furnizor)AS Nr_furnizori FROM produse
WHERE codp=101;
c. SELECT codp,COUNT(codp) AS nr_produse FROM produse
WHERE tva=0
GROUP BY codp;
d. SELECT furnizor FROM produse
WHERE pret<(SELECT AVG(pret) FROM produse)
GROUP BY furnizor;

31
Subiecte Atestat profesional la informatic Idei de rezolvare
Capitolul 3

SISTEME DE OPERARE, ABILITI DE TEHNOREDACTARE, CALCUL


TABELAR I PREZENTRI POWERPOINT
Problema 1
1. Creai pe Desktop folderul Informatie, iar n acesta creai fiierul informatie.txt. Deschidei fiierul i scriei n acesta
rspunsurile la ntrebrile:
a) Cum procedai dac dorii s facei vizibile extensiile fiierelor comune, presupunnd c acestea nu sunt afiate?
b) Cror aplicaii le corespund urmtoarele pictograme i care este utilitatea acestor aplicaii?
c) Care este rolul tastelor Enter i Alt?
Salvai modificrile fcute n fiier i nchidei fiierul.
2. Punei n eviden cu ajutorul Print Screen modul n care putei afla informaii despre
dimensiunea folderului Informaie. Salvai n folderul Informatie fiierul informatie.png care cuprinde captura de ecran.
3. a. Cutai pe Internet dou imagini ale munilor Bucegi i salvai aceste imagini n folderul Informaie.
b. Denumii imaginile bucegi_1 i bucegi_2 n ordinea descresctoare a dimensiunii lor.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Informatie) apsai tasta
Enter.
a) Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(informatie) i se alege folderul Informatie Save.
Toos Folder Options click pe fila View pentru a vedea opiunile de afiare a directoarelor
se demarcheaz caseta de validare Hide extensions for known file types Ok.
b) Mozzila Firefox browser web; Windows sistem de operare; Microsoft Outlook program pentru
pota electronic.
c) Enter tast folosit de utilizator pentru confirmarea aciunilor cerute sistemului;
Alt tast utilizat numai n combinaie cu alte taste, are rolul de a realiza alegeri n cadrul
unor aciuni (de exemplu ntr-o list de opiuni ale unui meniu se vor regsi unele litere subliniate
n cadrul cuvintelor opiunilor; Alt + litera subliniat va conduce la deschiderea acelei opiuni)
File Save.
2. Click dreapta pe pictograma folderului Informatie Properties (Proprieti) se apas tasta
Print Screen se deschide aplicaia Paint Edit (Editare) Paste (Lipire) File Save.

Problema 2
1. Creai pe Desktop folderul Atestat, iar n acesta structura de foldere din partea
dreapt:
2. Creai n folderul B fiierul raspunsuri.txt. Deschidei fiierul i scriei n acesta
rspunsurile la ntrebrile:
a) Cror aplicaii le corespund urmtoarele pictograme
i care este utilitatea acestor aplicaii?
b) Cum procedai pentru a deschide fiecare folder cu
dublu clic, ntr-o fereastr nou?
c) Care este rezultatul calculului ln 255 + 77 ? Rezultatul se va scrie cu trei zecimale exacte.
3. Creai n folderul A o arhiv a folderului B i scriei n fiierul raspunsuri.txt care este dimensiunea pe disc a arhivei,
exprimat n Kilooctei.
Salvai modificrile fcute n fiier i nchidei fiierul.
4. a. Cutai pe Internet o imagine cu harta Romniei i salvai imaginea gsit n folderul Atestat.
b. Decupai din imaginea salvat de voi un fragment cu judeul Prahova. Salvai noua imagine n folderul Atestat cu
numele Prahova. Imaginea va fi salvat n format jpg.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Atestat) apsai tasta
Enter.
Se procedeaz asemntor pentru crearea folderelor A, B, C, D, E, F dnd click dreapta pe suprafaa
de lucru a ferestrei folderului n care are loc crearea.
2. Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(raspunsuri) i se alege folderul B Save.
a) Microsoft Office PowerPoint aplicaie pentru crearea prezentrilor;
Microsoft Office suit de programe de birou create de firma Microsoft Corporation, care sunt
nsoite i de o aplicaie special suprapus lor pentru accesarea unitar simpl;

32
Subiecte Atestat profesional la informatic Idei de rezolvare
Microsoft Office Access aplicaie pentru crearea i exploatarea bazelor de date.
b) Tools Folder Options implicit este activ fila General n seciunea Browse folders se
selecteaz butonul radio Open each folder in its own window Ok.
c) Se deschide aplicaia Calculator View Scientific se folosesc funciile ln i xy; rezultatul
obinut este 823548.541.
3. Click dreapta pe pictograma folderului B Send to Compressed (Zipped) folder; click dreapta
pe pictograma corespunztoare arhivei B.zip din fila General se preia dimensiunea pe disc a
arhivei.

Problema 3
1. Creai pe Desktop folderul Cerinte, iar n acesta creai fiierul sistem_operare.txt. Deschidei fiierul i rezolvai
urmtoarele cerine:
a) Scriei definiia unui program antivirus i dou exemple de programe antivirus.
b) Descriei paii pentru instalarea limbii romne pentru tastatur, astfel nct s putei folosi diacriticele.
c) Propunei o cale pentru a afla informaii despre atributele unui fiier.
Salvai modificrile fcute n fiier i nchidei fiierul.
2. Punei n eviden cu ajutorul Print Screen fereastra n care putei stabili pagina de start http://subiecte2014.edu.ro
pentru browserul Internet Explorer. Salvai n folderul Cerinte fiierul imagine.png care cuprinde captura de ecran.
3. a. Cutai pe Internet o imagine cu un calculator i salvai aceast imagine n folder-ul Cerinte.
b. Editai aceast imagine, scriind numele vostru n colul dreapta-jos al imaginii.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Cerinte) apsai tasta
Enter.
2. Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(sistem_operare) i se alege folderul Cerinte Save.
a) Programul antivirus este un produs software creat special pentru:
detectarea viruilor prin verificarea coninutului fiierelor i semnalarea prezenei semnturii
unui virus cunoscut sau a unor secvene suspecte n interiorul lor;
dezinfectarea sau tergerea fiierelor infectate;
prevenirea infectrii prin supravegherea aciunilor din memorie i semnalarea ntlnirii unor
anumite aciuni care ar putea fi generate de existena n memorie a unui virus.
Exemple de programe antivirus: Norton Antivirus, Avira AntiVir Personal, BitDefender Antivirus,
Kaspersky AntiVirus.
b) Start Control Panel Region and Language fila Keyboards and Languages Change keyboards...
fila General Add se alege limba romn din lista propus Ok Ok.
c) Click dreapta pe fiier Properties fila General seciunea Attributes (Hidden, Read-Only)
File Save.
2. Start Control Panel Internet Options fila General n seciunea Home Page se scrie adresa
http://subiecte2014.edu.ro se apas tasta Print Screen se deschide aplicaia Paint Edit
(Editare) Paste (Lipire) File Save.

Problema 4
1. Creai pe Desktop folderul Examen, iar n acesta creai fiierul aplicatie.txt. Deschidei fiierul i scriei n acesta
rspunsurile la ntrebrile:
a) Cum procedai dac dorii s stabilii ca operaia de cutare a unui folder/ fiier s nu includ directoarele de sistem?
b) Cror aplicaii le corespund urmtoarele pictograme i care este utilitatea acestor aplicaii?
c) Care este rolul tastelor Ctrl i Alt?
3
d) Care este rezultatul calculului 3116 + 10! ? Rezultatul se va scrie cu trei zecimale exacte.
Salvai modificrile fcute n fiier i nchidei fiierul.
2. Punei n eviden cu ajutorul Print Screen fereastra n care putei schimba imaginea de pe Desktop. Salvai n folderul
Examen fiierul imagine.png care cuprinde captura de ecran.
3. a. Cutai toate fiierele cu extensia .bmp cu dimensiunea mai mare dect 2 MB existente pe discul C.
b. Copiai primele trei fiiere gsite (considernd ordinea cresctoare a dimensiunii lor) n folderul Examen.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Examen) apsai tasta
Enter.
Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(aplicatie) i se alege folderul Examen Save.
a) Tools Folder Options click pe fila Search pentru a vedea opiunile de cutare a directoarelor/
fiierelor se demarcheaz caseta de validare Include system directories Ok.
b) Google Chrome browser web; Microsoft Office Word aplicaie pentru procesarea textelor;
Microsoft Outlook program pentru pota electronic.

33
Subiecte Atestat profesional la informatic Idei de rezolvare
c) Ctrl tast folosit numai n combinaie cu alte taste (sau cu mouse-ul) pentru a lansa n
execuie unele comenzi.
Alt tast utilizat numai n combinaie cu alte taste, are rolul de a realiza alegeri n cadrul
unor aciuni (de exemplu ntr-o list de opiuni ale unui meniu se vor regsi unele litere subliniate
n cadrul cuvintelor opiunilor; Alt + litera subliniat va conduce la deschiderea acelei opiuni).

d) Se deschide aplicaia Calculator View Scientific se folosesc funciile n! i ; rezultatul
obinut este 3628814.606.
File Save
3. Click dreapta pe Desktop Personalize Desktop Background se apas tasta Print Screen se
deschide aplicaia Paint Edit (Editare) Paste (Lipire) File Save.

Problema 5
1. Creai pe Desktop folderul Atestat, iar n acesta creai fiierul setari.txt. Deschidei fiierul i scriei n acesta rspunsul
la ntrebarea:
a) Cum procedai dac dorii s modificai culoarea bordurilor ferestrelor, a meniului butonului Start i a barei de
activiti?
b) Formatai fontul din fiierul setari.txt, astfel nct s fie Lucida Handwriting, de dimensiune 14.
c) Formatai textul din fiierul setari.txt, astfel nct fiecare rnd s fie vizibil n fereastra aplicaiei Notepad, indiferent
de limea acesteia.
d) Inserai automat data i ora pe primul rnd al fisierului setari.txt.
Salvai modificrile fcute n fiier i nchidei fiierul.
2. Punei n eviden cu ajutorul Print Screen fereastra n care putei stabili blocarea barei de activiti (taskbar). Salvai
n folderul Atestat fiierul imagine.png care cuprinde captura de ecran.
3. a. Cutai pe discul C: toate fiierele al cror nume ncep cu litera n i care au fost modificate n ultima lun.
b. Ordonai fiierele gsite dup extensie i copiai primul fiier din list n folderul Atestat.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Atestat) apsai tasta Enter
Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(setari) i se alege folderul Atestat Save.
a) Start Control Panel Personalization Window Color se alege schema de culori dorit Save
changes;
b) Format Font se aleg tipul i dimensiunea de font dorite Ok;
c) Format Word Wrap (ncadrare text);
d) Edit Time/Date (sau se apas tasta F5).
File Save
2. Click dreapta pe bara de activiti (taskbar) Properties se marcheaz caseta de validare
Lock the taskbar se apas tasta Print Screen se deschide aplicaia Paint Edit (Editare)
Paste (Lipire) File Save.

Problema 6
1. Creai pe Desktop folderul Atestat, iar n acesta creai fiierul setari.txt. Deschidei fiierul i rezolvai urmtoarele cerine:
a) Precizai dou efecte ale prezenei unui virus software n computer.
b) Descriei paii pe care i parcurgei pentru a modifica pictograma corespunztoare aplicaiei Computer, care permite
accesul ctre unitile de disc ale sistemului de calcul.
c) Salvai modificrile fcute n fiier i nchidei fiierul.
2. Creai urmtoarea structur de foldere:
a) Creai o scurttur (shortcut) a fiierului setari.txt n folderul D.
b) Copiai fiierul setari.txt n folderele B i C.
3. Punei n eviden cu ajutorul Print Screen fereastra n care pot fi vizualizate
informaii despre versiunea sistemului de operare, capacitatea memoriei RAM i
despre procesorul sistemului de calcul. Salvai n folderul Atestat fiierul imagine.png care cuprinde captura de ecran.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Atestat) apsai tasta Enter.
Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(setari) i se alege folderul Atestat Save.
a) Efecte pe care le genereaz viruii software:
Distrugerea unor fiiere;
Modificarea dimensiunii fiierelor;
Stergerea total a informaiilor de pe disc, inclusiv formatarea acestuia;
Distrugerea tabelei de alocare a fiierelor, care duce la imposibilitatea citirii informaiei de
pe disc;

34
Subiecte Atestat profesional la informatic Idei de rezolvare
ncetinirea vitezei de lucru a calculatorului pn la blocarea acestuia.
b) Start Control Panel Personalization Change desktop icons click pe aplicaia Computer
click pe butonul Change icon... se alege pictograma dorit Ok Ok.
2. Click dreapta pe suprafaa de lucru a ferestrei folderului Atestat New Folder scriei
numele folderului A apsai tasta Enter.
Se procedeaz asemntor pentru crearea folderelor B, C, D dnd click dreapta pe suprafaa de lucru
a ferestrei folderului n care are loc crearea.
a) Click dreapta pe numele fiierului setari.txt Create shortcut click dreapta pe shortcut
Cut se deschide folderul D click dreapta pe suprafaa de lucru a ferestrei acestuia Paste.
b) Click dreapta pe numele fiierului setari.txt Copy se deschide folderul B click dreapta pe
suprafaa de lucru a ferestrei acestuia Paste; asemntor pentru folderul C.
3. Start Control Panel System n seciunea Windows edition se afl informaii despre versiunea
sistemului de operare instalat; n seciunea System se afl informaii despre capacitatea memoriei
RAM i despre procesorul sistemului de calcul se apas tasta Print Screen se deschide aplicaia
Paint Edit (Editare) Paste (Lipire) File Save.

Problema 7
1. Creai pe Desktop folderul Examen, iar n acesta creai fiierul informatii.txt. Deschidei fiierul i rezolvai urmtoarele
cerine:
a) Definii browserul web.
b) Scriei dou exemple de browsere web.
c) Salvai modificrile fcute n fiierul informatii.txt.
2. Creai folderul A n folderul Examen.
a) Creai fiierul desen.png i salvai-l n folderul Examen.
b) Trasai n acest fiier un triunghi cu contur verde i culoare de umplere galben i un pentagon cu contur portocaliu i
culoare de umplere verde.
c) Salvai modificrile fcute n fiier i apoi salvai-l n folderul A, cu numele desenmic.png.
d) Redimensionai desenul din fiierul desenmic.png la 50% din dimensiunea iniial.
e) Salvai modificrile fcute n fiierul desenmic.png.
3. Punei n eviden cu ajutorul Print Screen fereastra n care se poate seta ca traiectoria pointerului mouse-ului s fie
vizibil. Salvai n folderul Examen fiierul imagine.png care cuprinde captura de ecran.
Rezolvare
1. Click dreapta pe Desktop New Folder scriei numele folderului (Examen) apsai tasta Enter.
Se deschide aplicaia Notepad File Save n fereastra de salvare se scrie numele fiierului
(informatii) i se alege folderul Examen Save
a) Un browser este o aplicaie software care permite utilizatorilor s afieze texte, grafic,
video, muzic i alte informaii localizate pe o pagin din World Wide Web, dar i s comunice cu
ofertantul de informaii sau cu ali utilizatori. Browserul este, prin urmare, un program de
navigare n web.
b) Exemple de browsere: Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, Google Chrome
c) File Save
2. Click dreapta pe suprafaa de lucru a ferestrei folderului Examen New Folder scriei numele
folderului A apsai tasta Enter
a) Se deschide aplicaia Paint se folosesc comenzi din fila Home grupul Shapes.
File Save se scrie numele fiierului (desen), se alege folderul Examen n care se va salva
fiierul se apas tasta Enter.
c) File Save As... se scrie numele fiierului (desenmic), se alege folderul A n care se va
salva fiierul se apas tasta Enter.
d) Fila Home grupul de comenzi Image comanda Resize se stabilete un procent de 50% pe
orizontal i 50% pe vertical.
e) File Save
3. Start Control Panel Mouse n fila Pointer Options, seciunea Visibility se marcheaz caseta
de validare Display pointer trails se apas tasta Print Screen se deschide aplicaia Paint
Edit (Editare) Paste (Lipire) File Save.

Problema 8
S se creeze un document atestat.doc pe Desktop apoi s se introduc paragrafele din caseta de mai jos:
Lucrurile care par imposibile devin posibile dac le priveti dintr-o alt lumin. (Hannibal)
Fiecare experien de via, fiecare lecie pe care o nv este cheia spre viitorul meu. (Clark Gable)
Am nvat c un om n-are dreptul s-l priveasc pe un altul de sus dect atunci cnd trebuie s se aplece pentru a-l
ajuta s se ridice. (G.G. Marquez)

1. S se alinieze la centru al doilea paragraf apoi s se sublinieze cu o linie dubl primele ase cuvinte din primul paragraf.

35
Subiecte Atestat profesional la informatic Idei de rezolvare
2. S se caute cuvntul nvat utiliznd funcia de cutare i s se nlocuiasc cu aflat.
3. S se selecteze cuvntul viitorul i apoi s se ncadreze ntr-un chenar verde de dimensiune 5 cu umbr.
4. S se introduc un titlu adecvat, cu dimensiunea fontului 21, culoare rou, aliniat la dreapta.
5. Dup al doilea paragraf s se introduc o ntrerupere de pagin.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
Se lanseaz aplicaia Word. Documentul creat se salveaz pe desktop conform cerinelor astfel: File
Save apare fereastra de dialog Save n care se precizeaz calea (Desktop), numele fiierului
(atestat.doc) i tipul acestuia (word), apoi se acioneaz butonul Save.
1. Se selecteaz paragraful doi i se acioneaz butonul Center (Ctrl+E). Se selecteaz primele
ase cuvinte din paragraful nti click dreapta pe textul selectat opiunea Font fereastra
de dialog Font Underline style: se alege linie dubl OK.
2. Se selecteze cuvntul nvat se acioneaz de pe tastatur Ctrl+H n zona Replace,
seciunea Found trebuie s apar cuvntul nvat iar n zona Replacement with se trece cuvntul
aflat se acioneaz butonul Repace.
3. Se selecteaz cuvntul viitorul click dreapta pe selecie i se alege opiunea Copy
AutoShapes Basic Shapes se alege un dreptunghi click dreapta i se alege opiunea Add text
click dreapta, Paste apoi se d click dreapta pe conturul formei i se alege opiunea Format
AutoShape din fereastra care apare, n zona Color line se alege culoarea verde, n zona Line
style n cmpul Weight se stabilete grosimea liniei 5 iar n zona Shadow Style se alege un tip de
umbr.
4. Se introduce un titlu adecvat, se selecteaz textul introdus click dreapta i se alege
opiunea Font n fereastra de dialog ce se deschide se stabilesc: dimensiunea (Size) 21, culoare
(Font color) rou, aliniat la dreapta (Align Text Right sau Ctrl+R).
5. Se poziioneaz cursorul dup paragraful doi din meniul Insert Break Break types: Page
break.
File Save File Exit

Problema 9

Instruciuni
Antetul i subsolul sunt zone din marginile de sus, respectiv de jos ale fiecrei pagini dintr-un document.
n antet i subsol, se pot insera sau modifica texte sau reprezentri grafice. De exemplu, avei posibilitatea
s adugai numere de pagin, data i ora, sigla unei companii, titlul documentului sau numele fiierului sau al
autorului.

S se creeze un document atestat.doc pe Desktop apoi s se introduc paragrafele din caseta anterioar.
1. S se alinieze la dreapta al doilea paragraf apoi s se taie cu o linie primele cinci cuvinte din primul paragraf.
2. n dreptul fiecrui paragraf s se adauge marcatori.
3. S se adauge bordur ntregii pagini.
4. Titlul va avea dimensiunea 23, culoare albastru, ngroat, aliniat la dreapta.
5. La sfritul documentului s se realizeze un grafic pe baza datelor din tabelul urmtor:
Liceu/Colegiu Clasa a IX-a Clasa a X-a Clasa a XI-a Clasa a XII-a
Cuza 210 215 230 235
Caragiale 400 410 415 420
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Se selecteaz paragraful doi i se acioneaz butonul Align Text Right (Ctrl+R). Se selecteaz
primele cinci cuvinte din primul paragraf click dreapta pe textul selectat opiunea Font
fereastra de dialog Font din zona Effects opiunea Strikethrough OK.
2. Selecie paragrafe click dreapta pe textul selectat opiunea Bullets Bullet Library
click pe stilul dorit.
3. Din meniul Page Layout, n seciunea Page Setup se selecteaz zona Layout se acioneaz
butonul Borders din fereastra Borders and Shading, n seciunea Page Border se alege formatul
dorit OK.
4. Se selecteaz titlul click dreapta pe textul selectat opiunea Font fereastra de dialog
Font n zona Size se stabilete dimensiunea 23, n zona Font color: se alege culoarea albastru,
n zona Font style: se alege Bold OK. Pentru aliniere la dreapta se selecteaz titlul i se
acioneaz din meniul Home, seciunea Paragraph butonul Align Text Right sau Ctrl+R.
5. Se introduce tabelul (meniul Insert Tables Insert Table n fereastra de dialog Insert
Table se stabilete numrul de coloane i de linii OK. Se completeaz tabelul cu datele
specificate.
Se selecteaz tabelul i se alege din meniul Insert Chart OK. File Save File Exit

36
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 10
S se creeze un document atestat.doc pe Desktop apoi s se introduc paragrafele din caseta de mai jos:
1. S se editeze urmtorul tabel, centrat n pagin:
Medii

Matematic

Informatic
Biologie

general
Romn

Chimie

Media
Fizic
Nume elev

2. S se introduc n tabel datele pentru cel puin 7 elevi. Media general se va calcula folosind opiunea formula Word.
Capul de tabel se va formata astfel: fundal de culoare galben iar textul de culoare albastru.
3. S se adauge tabelului un chenar de culoare albastru, linie de lime 3 pct. iar n interiorul tabelului liniile vor fi
punctate, culoare verde, lime 1 pct.
4. S se adauge un titlul artistic utiliznd opiunea WordArt.
5. Stabilii modul de vizualizare al paginii la 85%.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Se introduce tabelul astfel: meniul Insert Tables Insert Table n fereastra de dialog
Insert Table se stabilete numrul de coloane i de linii OK. Se completeaz tabelul cu datele
specificate.
2. Pentru calculul mediei folosind formula Word procedai astfel: meniul Insert Table Tools
Layout Formula din fereastra Formula se alege funcia corespunztoare.
3. Selecie tabel click dreapta pe selecie i se alege Borders and Shading... din fereastra
Borders and Shading, din zona Borders se fac setrile cerute OK.
4. Meniul Insert zona Text WordArt se alege stilul dorit OK.
5. Meniul View sectiunea Zoom optiunea Zoom in fereastra Zoom, n caseta Percent se scrie
procentul cerut OK.
File Save File Exit

Problema 11
S se creeze un document atestat.doc pe Desktop apoi s se introduc paragrafele din caseta de mai jos:
1. S se alinieze la dreapta paragraful nti apoi s taie cu o linie dubl ultimele ase cuvinte din al doilea paragraf.

Instruciuni
Antetul i subsolul sunt zone din marginile de sus, respectiv de jos ale fiecrei pagini dintr-un document.
n antet i subsol, se pot insera sau modifica texte sau reprezentri grafice. De exemplu, avei posibilitatea s
adugai numere de pagin, data i ora, sigla unei companii, titlul documentului sau numele fiierului sau al
autorului.

2. Pentru ntregul text, s se stabileasc o distan ntre rnduri de cel puin 21 pct. iar al doilea paragraf se va alinia
stnga-dreapta.
3. S se adauge un antet n care se va introduce data i ora curent iar n subsolul paginii se va introduce numele autorului
aliniat la dreapta.
4. Titlul se va introduce ntr-o form (de tip hexagon fr umplere, culoarea conturului fiind verde) cu efect umbr.
5. S se stabileasc pentru document urmtoarele caracteristici: pagin A4, orientare tip vedere, margini de 1.5 cm
(stnga, dreapta, sus, jos).
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Se selecteaz primul paragraf i din meniul Home, din zona Paragraph se acioneaz butonul Align
Text Right (sau Ctrl+R). Se selecteaz ultimele ase cuvinte din al doilea paragraf click dreapta
pe textul selectat opiunea Font fereastra de dialog Font din zona Effects opiunea Double
strikethrough OK.
2. Se selecteaz ntregul text click dreapta pe selecie Paragraph n fereastra Paragraph,
n zona Indents and Spacing, seciunea Spacing n caseta Line Spacing se alege 1.5 lines OK.
Se selecteaz paragraful al doilea i din meniul Home, din zona Paragraph se acioneaz butonul
Justify(sau Ctrl+J).
3. Din meniul Insert, din zona Header&Footer se alege opiunea Header Edit Header se editeaz
antetul conform cerinei. Pentru editarea subsolului paginii, din meniul Insert, din zona
Header&Footer se alege opiunea Footer Edit Footer se editeaz subsolul conform cerinei.
4. Meniul Insert zona Illustrations Shapes se alege forma hexagon dup desenarea

37
Subiecte Atestat profesional la informatic Idei de rezolvare
hexagonului se d click dreapta pe acesta i se alege opiunea Format AutoShape n fereastra
de dialog Format AutoShape se stabilesc criteriile solicitate n enun. Pentru stabilirea efectului
de umbr se selecteaz forma hexagon Format Shadow Effects se alege efectul dorit.
5. Meniul Page Layout zona Page Setup se stabilesc criteriile specificate n enun.
File Save File Exit

Problema 12
S se creeze un document atestat.doc pe Desktop apoi s se editeze urmtorul tabel (completat cu cel puin 7
rnduri), centrat n pagin:
Subiectul 1 Subiectul 2 Subiectul 3 Oficiu
Nume i prenume elev Nota examen
30 pct. 30 pct. 30 pct. 10 pct.

1. Bordura tabelului va avea culoare verde, lime 2 pct. iar n interior, liniile vor avea culoarea galben, lime pct.
2. S se calculeze nota la examen folosind funcia Word.
3. S se ordoneze descresctor datele din tabel dup cmpul Nota examen.
4. S se adauge un titlu artistic (Borderou examen), aliniat la centru, cu majuscule, de dimensiune 19.
5. S se insereze la sfritul documentului o imagine ntr-un chenar umbrit cu coluri rotunjite.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
Se introduce tabelul astfel: meniul Insert Tables Insert Table n fereastra de dialog
Insert Table se stabilete numrul de coloane i de linii OK. Se completeaz tabelul cu datele
specificate.
1. Selecie tabel click dreapta pe selecie Borders and Shading... n fereastra Borders
and Shading se fac setrile specificate OK.
2. Meniul Insert Table Tools Layout Data Formula.
3. Selecie tabel Table Tools Layout Data Sort n fereastra Sort se stabilesc
criteriile solicitate OK.
4. Meniul Insert Text WordArt n fereastra Edit WordArt Text se va edita titlul solicitat
conform cerinei OK.
5. Meniul Insert Illustrations Picture n fereastra deschis se alege calea spre imaginea
dorit selecie imagine OK. Pentru realizarea formatrilor se selecteaz imaginea click
dreapta pe imagine Format Picture... n fereastra Format Picture se aplic formatrile
solicitate.
File Save File Exit

Problema 13
S se creeze un document atestat.doc pe Desktop apoi s se introduc textul de mai jos:
Ce-i doresc eu ie, dulce Romnie
Ce-i doresc eu ie, dulce Romnie, Vis de rzbunare negru ca mormntul
ara mea de glorii, ara mea de dor? Spada ta de snge duman fumegnd,
Braele nervoase, arma de trie, i deasupra idrei fluture cu vntul
La trecutu-i mare, mare viitor! Visul tu de glorii falnic triumfnd,
Fiarb vinu-n cupe, spumege pocalul, Spun lumii large steaguri tricoloare,
Dac fiii-i mndri aste le nutresc; Spun ce-i poporul mare, romnesc,
Cci rmne stnca, dei moare valul, Cnd s-aprinde sacru candida-i vlvoare,
Dulce Romnie, asta i-o doresc. Dulce Romnie, asta i-o doresc.
1. Textul introdus va fi aranjat ca n enun (pe dou coloane cu linie ntre acestea) iar titlul va fi scris folosind opiunea
WordArt.
2. S se introduc la sfritul documentului o imagine sugestiv cu efect umbr.
3. S se stabileasc pentru pagin urmtoarele caracteristici: dimensiune A4, orientare portret, margini de 2 cm (sus, jos,
stnga, dreapta), bordur.
4. S se caute n document cuvntul Romnie iar la sfritul documentului s se precizeze de cte ori apare n text.
5. S se vizualizeze documentul naintea imprimrii.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Se selecteaz textul (introdus conform cerinei) meniul Page Layout Page Setup Columns
se fac setrile precizate. Pentru titlu: Meniul Insert Text WordArt n fereastra Edit
WordArt Text se va edita titlul OK.
2. Meniul Insert Illustrations Picture n fereastra deschis se alege calea spre imaginea
dorit selecie imagine OK. Pentru realizarea formatrilor se selecteaz imaginea click

38
Subiecte Atestat profesional la informatic Idei de rezolvare
dreapta pe imagine Format Picture... n fereastra Format Picture se aplic formatrile
solicitate.
3. Din meniul Page Layout, n seciunea Page Setup n fereastra Page Setup se fac setrile
precizate n enun OK.
4. Meniul Home zona Editing Find n fereastra Find and Replace, n zona Find se tasteaz
n campul Find What cuvntul ce se caut, apoi se acioneaz butonul Find. Numrul gsit se va
scrie conform cerinei.
5. Se acioneaz butonul Office Button Print Print Preview.
File Save File Exit

Problema 14
S se creeze un document atestat.doc pe Desktop apoi s se introduc textul din caseta de mai jos:

Nuvela este o specie a genului epic n proz, cu un singur fir narativ, urmrind un conflict unic, concentrat;
personajele nu sunt numeroase, fiind caracterizate succint, n funcie de contribuia lor la desfurarea aciunii. Nuvela
prezint fapte ntr-un singur conflict, cu o intrig riguros construit, accentul fiind pus mai mult pe definirea
personajului dect pe aciune. Este o naraiune n proz, mai scurt dect un roman i mai lung dect o povestire.
Conine de obicei puine personaje care sunt ns construite pe cteva linii principale. Ea are o naraiune ceva mai
concentrat, personaje mai puine, drama mai puin complicat dect la un roman.

1. S se nlocuiasc utiliznd opiunea nlocuire toate apariiile cuvntului Nuvela cu Nouvelle (fr.) i s se sublinieze
cu o linie dubl, culoare verde, toate apariiile cuvntului roman.
2. S se stabileasc spaiul dintre linii de 1.5.
3. S se introduc n subsolul paginii urmtoarele informaii: numele autorului, adresa, numrul de telefon, iar deasupra
acestor informaii se va insera o form de tip linie orizontal. Subsolul va fi configurat astfel nct s apar doar pe
paginile pare.
4. S se introduc un titlu sugestiv ce va avea dimensiunea fontului 23, culoare albastru, ngroat, aliniat la centru.
5. S se adauge o not de subsol primei apariii a cuvntului Nouvelle avnd urmtorul coninut: A aprut n Evul Mediu,
n literatura italian, cptnd strlucire prin creaia lui Boccaccio. Din sec. 19 specia s-a dezvoltat, n special prin
adncirea observaiei i a analizei psihologice, dar i prin varietatea tematic.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Se introduce textul Meniul Home zona Editing Replace n fereastra Find and Replace,
n zona Replace, n cmpul Find what se tasteaza cuvntul Nuvela iar n cmpul Replace with se
tasteaz cuvntul Nouvelle dup care se acioneaz butonul Replace All. Pentru subliniere: meniul
Home, zona Font fereastra de dialog Font Underline style: se alege linie dubl, culoare verde
OK.
2. Se selecteaz ntregul text click dreapta pe selecie Paragraph n fereastra Paragraph,
n zona Indents and Spacing, seciunea Spacing n caseta Line Spacing se alege 1.5 lines OK.
3. Din meniul Insert, din zona Header&Footer se alege opiunea Footer Edit Footer se editeaz
subsolul paginii conform cerinei.
Pentru inserarea unei forme de tip linie orizontal se va proceda astfel: Meniul Insert zona
Illustrations Shapes se alege un format de linie i se introduce conform cerinei.
Pentru ca subsolul de pagin s apar doar pe paginile pare procedm astfel: meniul Page Layout, zona
Page Setup n fereastra Page Setup, n zona Layout se bifeaz caseta Different odd and even OK.
4. Se tasteaz titlul conform ceriei i se aplic formatrile solicitate din meniul Home zonele
Font i Paragraph.
5. Se pozitioneaz cursorul dup prima apariie a cuvntului Nouvelle meniul References
Footnotes Insert Footnote se va edita coninutul notei de subsol conform cerinei.
File Save File Exit

Problema 15
S se creeze un document atestat.doc pe Desktop apoi s se introduc textul din caseta de mai jos:

Nuvela este o specie a genului epic n proz, cu un singur fir narativ, urmrind un conflict unic, concentrat;
personajele nu sunt numeroase, fiind caracterizate succint, n funcie de contribuia lor la desfurarea aciunii.
Nuvela prezint fapte ntr-un singur conflict, cu o intrig riguros construit, accentul fiind pus mai mult pe
definirea personajului dect pe aciune. Este o naraiune n proz, mai scurt dect un roman i mai lung dect o
povestire. Conine de obicei puine personaje care sunt ns construite pe cteva linii principale. Ea are o naraiune ceva
mai concentrat, personaje mai puine, drama mai puin complicat dect la un roman.
1. S se formateze al doilea paragraf astfel nct acesta s nceap de la 2.5 cm fa de marginea din stnga.
2. S se numeroteze paginile documentului ncepnd cu 8.

39
Subiecte Atestat profesional la informatic Idei de rezolvare
3. S se insereze la sfritul documentului un tabel centrat cu trei linii i patru coloane, cu un stil la alegere.
6
4. Cu ajutorul editorului de ecuaii s se scrie relaia: 1 ( 3 2 + 4) 6=1
5. La sfritul celui de-al doilea paragraf s se introduc o ntrerupere de pagin.
S se salveze documentul, apoi s se nchid aplicaia de procesare text.
Rezolvare
1. Selecie paragraf doi se deschide meniul contextual (click dreapta pe selecie) Paragraph
Indentation: left se precizeaz distana OK.
2. Insert Page Numbers Format Start at: 8 se apas butonul OK se apas butonul OK.
3. Table Insert Table din fereastra deschis (Insert Table) Table Size: se precizeaz 4
coloane i 3 linii se apas butonul Autoformat i se selecteaz un stil se apas butonul OK.
Se selecteaz tabelul creat i se centreaz.
4. Insert Object Microsoft Equation se editeaz relaia dat.
5. Se poziioneaz cursorul dup paragraful al doilea Insert Break Break types: Page break.
File Save File Exit

Problema 16
Creai, pe Desktop, o prezentare Microsoft
PowerPoint jobs.ppt care s conin 4 diapozitive. Nr.
Locaia Data i ora
1. Primul diapozitiv, de tip Titlu, va conine titlul Bursa crt.
locurilor de munc i subtitlul pentru absolvenii de liceu 1. Casa Sindicatelor 15.01.2015, ora 16
din judeul Prahova. 2. U.P.G. - Ploieti 22.01.2015, ora 16
2. Al doilea diapozitiv conine ca titlu Calendarul aciunilor 3. Sala Leonard Doroftei 01.02.2015, ora 12
de promovare (scris cu font Castellar, culoare verde,
dimensiune 20) i tabelul alturat.
3. Al treilea diapozitiv va conine o imagine potrivit cu titlul din
diapozitivul 1 i o nomogram piramidal, aa cum este prezentat
Calificare obinut n alturat. n diapozitivul al treilea, inserai dou butoane de aciune,
liceu unul ctre diapozitivul al doilea, iar cellalt ctre diapozitivul al
patrulea.
4. Diapozitivul patru conine titlul: Oferte valabile dup data de
Calificare la locul de
munc 01.03.2015. Adugai cuvntului Oferte un Hyperlink ctre un
document din My Documents.
5. Inserai, n seciunea de subsolul, data, ora (cu actualizare
Altele automat) i numrul de diapozitivului. Adugai ntregii prezentri
ca design un ablon la alegere. Aplicai un efect de tranziie de tip
cutie ntregii prezentri. Salvai i nchidei aplicaia.
Rezolvare
Pornii aplicaia Microsoft Power Point i click pe File/ New/ Blank Presentation. Pentru fiecare
diapozitiv, alegei opiunea Insert/ New.
1. Click dreapta pe primul diapozitiv Layout/ Title Slide i completai conform cerinei.
2. Se alege pentru diapozitivul doi, aspect titlu i coninut. Se completeaz titlul conform
cerinei i se va insera tabelul cu ajutorul opiunii Insert/ Table sau dnd click pe opiunea
potrivit din seciunea coninut. Se completeaz tabelul conform cerinei.
3. Click dreapta pe al treilea diapozitiv Layout/ Two content. Se adaug coninuturile conform
cerinei, alegnd tipul de coninut solicitat. Adugarea butoanelor de aciune se face alegnd
opiunea Insert/ Shapes/ Action Buttons, apoi alegei Hyperlink to slide 4. Click pe diapozitivul
patru, selectai cuvntul Oferte i apsai Insert/ Hyperlink/ Existing File or Web Page/ Current
Folder/ nume.
5. Alegei opiunea Insert/ Header&Footer i adugai automat data i ora precum i numrul de
diapozitiv. Alegei opiunea Design variants i Transition Box i alegei opiunea Apply to all.

Problema 17
Creai, pe Desktop, o prezentare Microsoft PowerPoint info.ppt care s conin 4 diapozitive.
1. Primul diapozitiv, de tip Titlu, conine numele i prenumele (n caseta titlu) i clasa (n caseta subtitlu). Formatai
textul introdus astfel: font Comic Sans, dimensiune 50, culoare mov i aplicai-i o tem la alegere.
2. n al doilea diapozitiv, de tip Doar titlu, inserai n caseta titlu textul Inserare obiecte i introducei o miniatur (la
alegere) i o form ondulat de tip Defilare pe vertical.
3. Formatai obiectele din diapozitivul al doilea astfel: pentru titlu font Tahoma, dimensiunea 40 i culoarea albastr;

40
Subiecte Atestat profesional la informatic Idei de rezolvare
adugai miniaturii o bordur cu linie continu, grosime 6 puncte i culoare violet i rotii miniatura la stnga cu 900;
aplicai formei un gradient (la alegere); grupai miniatura i forma automat ca un singur obiect.
4. Inserai al treilea diapozitiv de tip Titlu i coninut, n care introducei un
tabel, respectnd structura i datele alturate. Adugai ca titlu Tabel, Nume elev Nota informatic
folosind fontul Times New Roman, dimensiunea 36 i culoarea albastr. Ion Vasile 10
5. Inserai al patrulea diapozitiv de tip Titlu i coninut, n care introducei Copu Maria 9
o diagram de tip coloan, folosind datele de la diapozitivul 3. Adugai ca Popa Ion 6
titlu al diapozitivului Inserare diagram, folosind fontul Arial, Cristea Ioana 8
dimensiunea 40 i culoarea violet. Aplicai ultimelor trei diapozitive fundal
de tip textur. Salvai i nchidei aplicaia.
Rezolvare
1. Click dreapta pe primul diapozitiv Layout Title Slide i tastai textele conform cerinei;
selectai fiecare caset text i formatai textul introdus utiliznd opiunile din meniul Home,
seciunea Font. Aplicai-i acestui diapozitiv din Design Theme Office Theme.
2. Click dreapta pe al doilea diapozitiv, alegei Layout Title Slide. Alegei Insert Online
pictures i introducei o miniatur (la alegere). Alegei Insert Shapes i introducei o form
ondulat de tip Defilare pe vertical.
3. Formatarea textului se face din meniul Home, seciunea Font. Selectai miniatura inserat i
alegei Format Shape Outline o bordur cu linie continu, grosime 6 puncte i culoare violet,
apoi Format Flip left 900, selectai din nou forma i din meniul Format Shape Fill Gradient
alegei unul oarecare. Selectai cele dou forme, click dreapta pe selecie i alegei din meniul
Format, opiunea Group.
Click dreapta Format backgroud Fill colour (oricare culoare).
4. Format Font
5. Insert Chart Column i ntroducei n foaia Excel deschis datele din tabelul de mai sus. Click
dreapta Format backgroud Fill texture fill.

Problema 18
Creai, pe Desktop, o prezentare Microsoft PowerPoint atestat.ppt
care s conin 4 diapozitive. Nume i prenume Nota 1 Nota 2
1. Adugai n subsol numele vostru n antet i numrul de pagin. Titlul Ion Vasile 7 9
primului diapozitiv s fie Atestat 2015, iar subtitlul Informatic. Aplicai Copu Maria 8 6
prezentrii atestat.ppt o tem la alegere. Folosind o funcie special inserai o Popa Ion 9 8
imagine din miniatur o singur dat n colul din dreapta al tuturor Cristea Ioana 6 7
diapozitivelor, cu excepia celui de tip titlu.
2. n diapozitivul al doilea inserai tabelul alturat:
3. n diapozitivul al treilea inserai urmtoarea organigram de mai jos, alegnd cte o imagine potrivit pentru fiecare
element al organigramei.
4. n diapozitivul al patrulea schimbai n portocaliu culoarea de
CLASA umplere a fundalului. Inserai o diagram de tip coloan folosind
datele din tabelul din diapozitivul al doilea.
5. Aplicai un efect de tranziie ntre diapozitivele prezentrii.
ELEV1 ELEV2 ELEV3 Salvai i nchidei aplicaia.
Rezolvare
1. Insert Header&Footer i introducei numele i numrul de pagin n subsol. Pe fila View, facei
click pe butonul Slide Master, apoi click pe Insert Picture, redimensionai miniatura inserat
i o plasai n colul din dreapta sus. Revenii la vizualizarea Normal prin Close Master View.
Design Themes i alegei prezentrii atestat.ppt formatul implicit (design template).
2. Click pe al doilea diapozitiv i se va insera tabelul (Insert Table) cu 3 coloane i 5 linii
completnd datele cerute.
3. Click pe al treilea diapozitiv, Insert SmartArt Hierarchy i completm structura dup modelul
indicat. La Type your text here apsai Enter pentru a aduga cei doi elevi n organigram.
4. Design Format Background Color i alegei potocaliu din Theme Colors.
5. Selectai fila Transitions i aplicai efectele de tranziie dorite.

Problema 19
Creai, pe Desktop, o prezentare Microsoft PowerPoint ciocolata.ppt care s conin 4 diapozitive.
1. Primul diapozitiv va fi de tip Titlu i va conine titlul Ciocolata, iar ca subtitlu Istoria ciocolatei. Al doilea
diapozitiv, de tip titlu i text, va conine titlul Tipuri de ciocolat, iar n Caseta coninut (utiliznd marcatori)
specificarea: Neagr, Alb, Amruie. Aplicai un efect de animaie, la alegere, titlului i casetei text.

41
Subiecte Atestat profesional la informatic Idei de rezolvare
2. n al treilea diapozitiv, de tip Titlu i dou coninuturi, inserai tabelul cu primii cinci
productori de cacao ai lumii. Adugai i o diagram de tip coloan, pe fiecare dintre ar To. cafea
acestea fiind afiate valorile. Brazilia 2.179.270
3. n al patrulea diapozitiv de tipul Titlu i dou coninuturi introducei ca titlu Efectele Vietnam 990.000
ciocolatei, iar n cele dou zone pentru coninuturi Efecte pozitive i Efecte negative Indonezia 762.006
ale ciocolatei. Columbia 682.580
4. Mutai diapozitivul al patrulea imediat dup diapozitivul titlu. Inserai o singur dat, Mexic 310.861
folosind o funcie special, n colul din dreapta jos, o imagine potrivit cu tema prezentrii, astfel nct aceasta s apar
pe fiecare diapozitiv.
5. Inserai butoane de aciune n prezentare astfel: pe primul diapozitiv un buton de trecere ctre urmtorul, pe
diapozitivele 2-3 dou butoane, unul de trecere ctre urmtorul, cellalt de trecere ctre anteriorul, ultimul diapozitiv are
un singur buton de trecere ctre anteriorul. Salvai i nchidei aplicaia.
Rezolvare
1. Alegei din Home Layout Title Slide. Aplicai cte un efect de animaie titlului i casetei
text, folosind butonul Animations Add animation.
2. Insert Table, inserai un tabel cu 2 coloane i 6 rnduri. Insert Chart Column i ntroducei
n foaia Excel deschis datele din tabelul de mai sus.
3. Home New Slide Two Content
4. Pentru schimbarea ordinii tragei miniatura diapozitivului respectiv pe poziia 2. Pe fila View,
facei click pe Slide Master, apoi click pe Insert Picture, redimensionai miniatura inserat i
o plasai n colul din dreapta jos. Revenii la vizualizarea Normal prin Close Master View.
9. Click pe primul diapozitiv i apsai Insert Shapes Action Buttons i alegei Hyperlink to
slide 2. Pe diapozitivele 2-3 apsai din nou Insert Action i alegei Hyperlink to slide...
pentru definirea structurii arborescente a prezentrii.

Problema 20
Creai, pe Desktop, o prezentare Microsoft PowerPoint excursii.ppt care s conin 4 diapozitive.
1. Primul diapozitiv, de tip Titlu, va conine titlul Excursii i subtitlul Ofert 2015. Aplicai titlului un efect de
animaie de intrare, astfel nct acesta s apar din dreapta.
2. Al doilea diapozitiv, de tip Titlu i coninut, are ca titlu Ofert destinaii turistice (font Comic Sans MS, culoare
verde, dimensiune 40) i textul urmtor scris cu marcatori:
Destinaii turistice n Romnia
DESTINAII PRE Turcia
Destinaii turistice n strintate 300
Adugai, de asemenea, tabelul de mai jos i o not Malta 400
de subsol cu textul Diapozitiv oferte. Turcia 300 Malta
3. n diapozitivul al treilea inserai tabelul alturat. Bucureti 100 400
Adugai o ilustraie SmartArt dup modelul alturat. Bucureti
4. Diapozitivul al patrulea va conine o imagine cu Marea Neagr. Transformai 100
imaginea ntr-o imagine de tip Basic Shapes Sun. Rotii imaginea cu un efect 3D
pe axa y cu 300.
5. n diapozitivul al patrulea inserai un buton de aciune ce va face legtura cu primul diapozitiv i o form predefinit
de tip sgeat ce va face legtura cu al treilea diapozitiv. Adugai ntregii prezentri ca design template un ablon la
alegere i aplicai un efect de tranziie ntregii prezentri. Salvai i nchidei aplicaia.
Rezolvare
1. Click dreapta pe primul diapozitiv Layout Title Slide. Click pe titlu, apoi Animations
Animations Styles Appear, astfel nct acesta s apar din dreapta.
2. Alegei opiunea Insert Header & Footer i scriei nota de subsol.
3. n diapozitivul al treilea Insert SmartArt Cycle Gear i completai dup modelul indicat.
4. Click dreapta n al patrulea diapozitiv Layout Title and content i se va insera o imagine,
conform cerinei, apsnd butonul Insert din Insert Picture. Facei click dreapta pe imagine,
Format Object Shape Options 3D-Rotation i pe linia Y Rotation completai 300.
5. Click pe diapozitivul 4 i apsai Insert Shapes Action Buttons, desenai butonul n pagin i
alegei Hyperlink to: First Slide.Apsai din nou Insert Shapes Action Buttons pentru o form
predefinit de tip sgeat ce face legtura cu al treilea diapozitiv. Click pe Design Thems i alegei
un ablon. Selectai fila Transitions, aplicai efectele de tranziie i marcai Apply To All.

Problema 21
Creai, pe Desktop, o prezentare Microsoft PowerPoint excursii.ppt care s conin 4 diapozitive.
1. Primul diapozitiv va fi de tip Titlu i va conine titlul Sinaia, perla staiunilor. Inserai o imagine potrivit cu titlul.

42
Subiecte Atestat profesional la informatic Idei de rezolvare
Aplicai-i titlului un efect de animaie de tip Intrare Romb, iar imaginii un efect de animaie de tip Intrare Dezvelire.
2. Al doilea diapozitiv va fi de tip Titlu i coninut. Titlul
Obiective turistice va fi scris cu font Garamond, culoare
maro, dimensiune 54. Caseta text va conine Cazino, Palatul Frumusee
Pele, Palatul Pelior, Mnstirea Sinaia, utiliznd
marcatori.
3. n diapozitivul al treilea inserai un tabel ce conine
numrul de vizitatori estimai ntr-un an calendaristic pentru
obiectivele turistice enumerate mai sus. Adugai i o
Istorie Sinaia Cultur
diagram de tip Structura radial. Titlul diagramei va fi
Obiective turistice, al axei X numele obiectivului i al axei
Z numrul de vizitatori.
4. Diapozitivul al patrulea, va conine titlul Oamenii au
nfiarea locurilor n care s-au nscut, scris cu fontul
Castellar, culoarea galben, dimensiune 40, o imagine gif, Civilizaie
animat, i o ilustraie SmartArt Ciclick de forma celei de
mai sus.
5. Inserai, n al doilea diapozitiv, un buton de aciune ctre link-ul http://ro.wikipedia.org/wiki/Sinaia, iar, n al treilea
diapozitiv, un link ctre harta oraului Sinaia (pe o pagin de internet). Adugai fiecrui diapozitiv un fundal diferit i
aplicai o tranziie aleatorie ntregii prezentri. Salvai i nchidei aplicaia.
Rezolvare
1. Aplicai un efect de animaie de tip Intrare Romb titlului i un efect de animaie de tip
Intrare Dezvelire marcatorilor din fila Animations.
2. Home Font
3. Insert Table cu 2 coloane i 5 linii ce conine numrul de vizitatori estimai ntr-un an
calendaristic pentru obiectivele turistice enumerate mai sus. Insert Chart Pie i ntroducei
n foaia Excel deschis datele. Dublu click n zona titlului i scriem Obiective turistice.
4. Insert Picture from... File i inserai o imagine adecvat.
Insert Shapes Action Buttons
5. Insert Shapes Action Buttons, desenai primul buton care face trecerea ctre
http://ro.wikipedia.org/wiki/Sinaia. Hyperlink to: URL... Apsai din nou desenai butonul al
doilea n pagin i alegei Hyperlink to: Last Slide. Click pe Design Thems i Transitions
Transition to This slide.

Problema 22
Creai, pe Desktop, o prezentare Microsoft PowerPoint europa.ppt care s conin 5 diapozitive.
1. Primul diapozitiv va fi de tip Titlu i va conine titlul Anul 2015 Anul european al dezvoltrii i subtitlul numele
i prenumele elevului care realizeaz prezentarea. Aplicai imaginii un efect de de intrare.
2. Diapozitivul al doilea va fi de tip necompletat i va cuprinde: caseta text Prioriti pentru anul 2015 (font Arial,
culoare albastru, dimensiune 54) i trei forme automate sub form de dreptunghiuri de culoare galben, linie de contur
albastr i care vor conine textele urmtoare: Oportuniti pentru ceteni, Participarea la viaa UE, Programe pentru
tineri. Realizai setarea celor trei forme automate, astfel nct acestea s fie butoane de navigare. Primul buton face
trecerea ctre diapozitivul al treilea, al doilea buton ctre diapozitivul al patrulea, iar cel de-al treilea buton ctre
diapozitivul al cincilea.
3. Diapozitivul al treilea va fi de tipul Titlu i coninut, astfel: titlu: Oportuniti pentru ceteni i un tabel ce conine
cteva oportuniti oferite de UE i numrul de oameni care beneficiaz de acestea.
4. Diapozitivul al patrulea va conine o imagine potrivit cu titlul
Participarea la viaa UE. Imaginea va avea dimensiunile: nime 12 cm Tineret n
i lime 23 cm. Aplicai acesteia un efect de animaie de intrare. aciune
5. Al cincilea diapozitiv va fi de tipul Titlul Programe pentru tineri i
nomograma alturat. Salvai i nchidei aplicaia.
Activiti
Rezolvare Informare Participare de
1. Animations Add Animation Entrance
voluntariat
2. Insert Shapes i Insert Shapes Actions Buttons
3. Insert Table
4. Insert Pictures. Format Size
5. Insert SmartArt

43
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 23
Creai pe Desktop o prezentare Microsoft PowerPoint temperaturi.ppt.
1. Completai n primul diapozitiv titlul: Temperaturi medii anuale, iar ca subtitlu Cercetare.
2. Adugai un diapozitiv de tip Titlu i coninut care s conin titlul: Temperatura n Romnia, iar la coninut:
Romnia are o clim temperat continental de tranziie, specific pentru Europa central, cu patru anotimpuri distincte,
primvar, var, toamn i iarn. Diferenele locale climatice se datoreaz mai mult altitudinii i latitudinii, respectiv
mult mai puin influenelor oceanice din vest, ale celor mediteraneene din sud-vest i celor continentale din est.
Formatai textul din diapozitivul al doilea, astfel nct numele fiecrui anotimp s fie evideniat printr-o culoare distinct.
3. Adugai al treilea diapozitiv de tip Titlu i dou coninuturi. Ca titlu
Staia Temperatura medie
adugai Romnia n imagini, iar la coninut dou imagini din anotimpuri
meteorologic anual ( C)
diferite.
4. Adugai al patrulea diapozitiv de tip Coninut, inserai o diagram care Bile
10,4
s conin datele din tabelul alturat. Herculane
5. Adugai un design potrivit prezentrii. Adugai un efect de tranziie Cerna Sat 6,75
tuturor diapozitivelor astfel nct tranziia s se fac automat dup 3 Cuntu 4,1
secunde. Salvai i nchidei aplicaia. Parng 3,3
Rezolvare Pltini 4,5
1. Dai click n casetele marcate n acest sens n diapozitivul Petroani 7,5
titlu.
2. Alegei opiunea Home/ New slide.../ Title and contents. Semenic 3,7
Introducei titlul i coninutul specificate. Alegei arcu -0,64
diapozitivul al doilea. Selectai textul care reprezint numele
unui anotimp, iar din meniul Home, alegei o culoare potrivit
pentru font.
3. Alegei opiunea Home/ New slide.../ Two contents. Introducei titlul. Pentru inserarea
imaginilor, alegei pentru coninut Online picture.
4. Alegei opiunea Home/ New slide.../ Blank. Adugai la coninut o diagram de tip coloan, iar
n foaia de calcul care apare, introducei datele din tabel, modificnd suprafaa pentru care se
reprezint datele n diagram.
5. Alegei opiunea Design/ Themes. Alegei opiunea Transitions/ Transition to This Slide.
Stabilii la seciunea Advance Slide, after 03:00 (secunde), debifai On Mouse Click. Selectai
opiunea Apply To All.

Problema 24
Creai pe Desktop un registru Microsoft Excel
temperaturi.xls. Completai n foaia de calcul Date, datele
din tabelul alturat, adugnd i borduri.
1. Adugai n celula C14 altitudinea medie i copiai
formula pentru a calcula temperatura medie, iar n celulele
D15 i D16 introducei funcii pentru a calcula temperatura
medie minim i maxim.
2. Formatai condiionat celulele D6:D13 astfel nct
temperaturile negative s fie afiate pe un fundal albastru,
iar cele pozitive pe un fundal galben.
3. Ordonai alfabetic datele din tabelul alturat.
4. Inserai ntr-o foaie de calcul Temperaturi, o diagram de
tip coloan care s conin repartiia temperaturilor pe staii
meteorologice.
5. Unii celulele A3:D3 i introducei n celula astfel obinut titlul Temperaturi medii anuale la staiile meteorologice.
Formatai titlul astfel: font Arial, dimensiune 14, ngroat. Salvai i nchidei aplicaia.
Rezolvare
Deschidei aplicaia Microsoft Excel. Din meniul File, alegei opiunea Save. Dai click dreapta
pe numele foii de calcul, alegei opiunea Rename i introducei Date. Selectai tabelul, click
dreapta, alegei Format cells, apoi Border i stabilii bordurile dorite.

44
Subiecte Atestat profesional la informatic Idei de rezolvare
1. C14 =average(C6:C13)
T E M P E R AT U R A M E D I E D15 =min(D6:D13); D16 =max(D6:D13)
2. Selectai celulele D6:D13, alegei opiunea
ANUAL ( C) Home/ Conditional formating.../ New rule.../
Format only cells than contain/ Cell Value/
15 10,4 greater than 0/ Format/ Fill.
10 6,75 7,5
4,1 3,3 4,5 3,7 3. Selectai celulele B5:D13, Home/ Sort&Filter/
5 Custom sort/ Sort by/ Staia meteorologic.
0 4. Opiunea Insert/ Insert Column Chart.
-5 -0,64 5. Selectai celulele A3:D3, alegei opiunile
Home/ Merge & Center; Home/ Wrap text. Alegei
pentru font tipul, dimensiunea i efectul
dorite.

Problema 25
Creai pe Desktop un registru Microsoft Excel paralela45.xls.
Completai n foaia de calcul Oferte datele din tabelul alturat,
adugnd i borduri.
1. Adugai n celula B1 cursul euro din ziua curent, iar n celula E1
data curent n formatul zz.ll.aaaa. n celula E6 adugai o formul
pentru a calcula preul n RON, utiliznd cursul euro din celula B1.
Copiai formula n celulele E7:E15.
2. Adugai datelor din celulele D6:D15 simbolul monetar EUR, iar
datelor din celulele E6:E15 simbolul monetar RON.
3. Ordonai cresctor datele din tabelul alturat dup preul
excursiilor.
4. Inserai ntr-o foaie de calcul Excursii o diagram cu bare care s
conin destinaiile i preurile n RON.
5. Unii celulele A3:E3 i introducei n celula astfel obinut titlul
Ofert paralela 45. Formatai titlul astfel: font Garamond,
dimensiune 13, ngroat. Salvai i nchidei aplicaia.
Rezolvare
1. E6 =D6*$B$1
2. Selectai celulele D6:D15, alegei opiunea Home/
Number.../ Currency/ Symbol: EUR. Asemntor pentru
celulele E6:E15.
3. Selectai celulele B5:E15, Home/ Sort&Filter/ Custom
sort/ Sort by/ Pre(EUR).
4. Opiunea Insert/ Insert Column Chart.
5. Selectai celulele A3:E3, alegei opiunile Home/ Merge
& Center; Home/ Wrap text. Alegei pentru font tipul,
dimensiunea i efectul dorite.

Problema 26
Creai pe Desktop un registru Microsoft Excel detergeni.xls.
Completai n foaia de calcul Date, datele din tabelul alturat, adugnd i borduri.
1. n celula E6 adugai o formul care s calculeze preul cu TVA, tiind c TVA-ul este 24%, iar n celula F6 adugai
o formul care s calculeze preul pe kilogram. Copiai formulele n celulele E7:E13, respectiv F7:F13. Afiai preurile
trunchiate la dou zecimale.
2. Calculai preul mediu pe toate
cele trei categorii: fr TVA, cu
TVA i pe kg.
3. Inserai ntr-o foaie de calcul
Ariel o diagram de tip linie care s
conin preurile pe kilogram pe
sortimente.
4. Filtrai datele sub 9 RON pe
kilogram.
5. Unii celulele A3:F3 i
introducei n celula astfel obinut

45
Subiecte Atestat profesional la informatic Idei de rezolvare
titlul Studiul preurilor. Formatai titlul astfel: font Times New Roman, dimensiune 15, ngroat, rou. Salvai i
nchidei aplicaia.
Rezolvare
1. E6 =trunc(D6*1.24;2) i
F6 =trunc(E6/C6;2), apoi se copiaz n celulele
E7:F13.
2. D14 =average(D6:D13) i se copiaz n
celulele E14:F14.
3. Selectai celulele B5:D13, Home/
Sort&Filter/ Custom sort/ Sort by/ Staia
meteorologic.
4. Opiunea Insert/ Insert Column Chart.
5. Selectai celulele A3:F3, alegei opiunile
Home/ Merge & Center; Home/ Wrap text. Alegei
tipul, dimensiunea i efectul dorite.

Problema 27
Creai pe Desktop un registru Microsoft Excel mobile.xls. Completai n foaia de calcul Date, datele din tabelul
alturat, respectnd formatrile din imaginea alturat (font, format celule, aliniere orizontal/ vertical).
1. Ordonai alfabetic dup reeaua de telefonie mobil i descresctor dup pre.
2. Formatai condiionat celulele D6:D17, astfel nct
abonamentele n care traficul de internet este sub 0,5GB
s apar pe fond verde, cele cu trafic peste 3GB s apar
pe fond galben, iar celelalte pe fond albastru.
3. Realizai un pivot din care s extragei preul lunar
mediu al abonamentelor pe reele de telefonie mobil.
Pentru preul mediu se va stabili ca formatul s fie
numeric cu 2 zecimale.
4. Inserai ntr-o foaie de calcul Pret mediu o diagram
care s prezinte rezultatele obinute n tabela pivot.
5. Unii celulele A3:D3 i introducei n celula astfel
obinut titlul Studiu comparativ abonamente de
telefonie mobil. Formatai titlul astfel: font Verdana,
dimensiune 13, ngroat, albastru nchis. Salvai i
nchidei aplicaia.
Rezolvare
1. Selectai celulele A5:D17, Home/ Sort&Filter/ Custom sort/ Sort by/ Reea, apoi Add level/ Pre
pe lun, iar la seciunea Order/ Largest to Smallest i OK.
2. Selectai celulele D6:D17, alegei opiunea Home/ Conditional formating.../ New rule.../ Format
only cells than contain/ Cell Value/ less than 0,5/ Format/ Fill; Home/ Conditional formating.../
New rule.../ Format only cells than contain/ Cell Value/ greater than 3/ Format/ Fill i Home/
Conditional formating.../ New rule.../ Format only cells than contain/ Cell Value/ between 0,5 i
3/ Format/ Fill, conform cerinei.
3. Se selecteaz celulele A5:D17, apoi Insert/ PivotTable (rmn bifate Select a table or range i
New Worksheet i OK). La seciunea Rows
se alege cmpul Reea, iar la seciunea 16,00
Values Pre/lun. Selectarea datelor 13,98
determin afiarea reelei de telefonie 14,00 12,67
i suma preurilor abonamentelor. Pentru 12,33
a calcula media preurilor, se alege 12,00
sgeata din dreapta cmpului Pre/lun
(din seciunea Values) i opiunea Value 10,00
Field Settings, funcia pentru 8,00
calcularea mediei i formatul
rezultatului (Number Format). 6,00 5,00
4. Se selecteaz datele obinute n urma
inserrii pivotului i opiunea Insert/ 4,00
Insert Column Chart.
5. Selectai celulele A3:D3, alegei 2,00
opiunile Home/ Merge & Center; Home/
0,00
Wrap text. Alegei tipul, dimensiunea i
efectul dorite. DIGI mobil Orange TELEKOM Vodafone

46
Subiecte Atestat profesional la informatic Idei de rezolvare
Problema 28
Creai pe Desktop un registru Microsoft Excel
densitate.xls. Completai n foaia de calcul Date, datele
din tabelul alturat, adugnd borduri i stabilind
formatul corespunztor.
1. n celulele A6:A17 adugai steagul corespunztor rii.
2. n celula E6 adugai o formul cu ajutorul creia s
calculai densitatea populaiei, trunchiat la dou
zecimale. Copiai formula n celulele E7:E17.
3. Filtrai datele, astfel nct s fie afiate doar rile cu o
suprafa cuprins ntre 50000 i 250000.
4. Inserai ntr-o foaie de calcul Suprafa o diagram de
tip Structur radial care s conin o statistic privind
suprafaa fiecrei ri dintre cele menionate n tabel,
exprimat n procente.
5. Unii celulele A3:E3 i introducei n celula astfel obinut titlul Densitatea populaiei. Formatai titlul astfel: font
Castellar, dimensiune 15, subliniat, verde. Salvai i nchidei aplicaia.
Rezolvare
1. Pentru inserarea fiecrei imagini se Suprafa (m2)
utilizeaz Insert/ Online pictures i cutare Croaia Austria
folosind unul din motoarele de cutare, 6% 9%
Office.com Clip Art sau Bing Image Search. Grecia Azerbaidjan
2. E6 =D6/C6 15% 10%
3. Selectai opiunea Home/ Sort&Filter/
Filter, apoi n coloana Suprafa se alege
Sierra Leone
Custom AutoFilter, stabilind ca aceasta s
8%
ndeplineasc condiiile: is less than 250000
And is greater than 50000.
4. Opiunea Insert/ Insert Column Chart.
Pentru adugarea/ tergerea unui element n Ghana
diagram, se alege simbolul + din partea 26%
dreapt sus a diagramei. Pentru adugarea
procentelor, se alege Data labels/More
options/ Percentages. Romnia
5. Selectai celulele A3:D3, alegei opiunile 26%
Home/ Merge & Center; Home/ Wrap text. Alegei
tipul, dimensiunea i efectul dorite.

Problema 29
Creai pe Desktop un registru Microsoft Excel teze.xls. Completai n foaia de calcul Date, datele din coloanele
A, B i D ale tabelului alturat.
1. Datele din celulele C6:C15 se vor alege dintr-
o list care conine disciplinele de profil la care
se poate susine teza: Biologie, Chimie, Fizic.
Alegei disciplina pentru fiecare elev n parte.
2. Adugai bordur exterioar ngroat, de
culoare albastr i bordur interioar, de culoare
verde. Stabilii o culoare de umplere galben
pentru celulele D6:D15.
3. Inserai o diagram-pivot care s conin
mediile la tez, pe discipline.
4. Grupai datele dup disciplina la care se susine
teza, afind i media pe disciplin (ca subtotal),
precum i media general.
5. Unii celulele A3:D3 i introducei n celula
astfel obinut titlul Statistic teze. Formatai titlul astfel: font Lucida Console, dimensiune 13, ngroat, verde. Salvai
i nchidei aplicaia.

47
Subiecte Atestat profesional la informatic Idei de rezolvare
Rezolvare
1. Se selecteaz celulele C6:C15, se alege opiunea
Data/ Data validation, apoi se specific criteriul Total
de validare: list cu opiunile Biologie, Chimie, 9
Fizic i OK. 8
2. Se selecteaz celulele A5:D15, apoi click 8
dreapta Format cells.../ Border. Pentru celulele 6,5 6,75
7
D6:D16 se alege click dreapta Format cells.../
Fill. 6
3. Opiunea Insert/ PivotChart. 5
4. Se selecteaz celulele B5:D15, se ordoneaz
datele dup Tez la alegere. Se selecteaz celulele 4
A5:D15, apoi opiunea Data/ Group/ Group by rows, 3
apoi opiunea Data/ Subtotal i se specific: At
each change in Numele i prenumele, Use function 2
Average, Add subtotal to Not. 1
5. Selectai celulele A3:D3, alegei opiunile 0
Home/ Merge & Center; Home/ Wrap text. Alegei
tipul, dimensiunea i efectul dorite. Biologie Chimie Fizic

Problema 30
Creai pe Desktop un registru Microsoft Excel salariati.xls. Completai n foaia de calcul Date, datele din tabelul
alturat, adugnd i borduri.
1. n celula D6 calculai Costul/salariat plecnd
de la numrul de ore lucrate i costul pe or.
Copiai formula n celulele D7:D15.
n celula E6 adugai o formul care s calculeze
Costul materialelor tiind c pentru activitile de
tip A costul este 500, pentru activiti de tip B
costul este 300, iar pentru activiti de tip C costul
este 700. Copiai formula pentru celulele E7:E15.
2. Calculai Totalul pe salariat ca sum ntre Costul
materialelor i Costul/salariat, iar Totalul pe
proiect ca suma totalurilor pentru fiecare salariat.
3. Adugai o culoare de fond pentru fiecare din
coloanele D6:D15, E6:E15 i F6:F15.
4. Inserai ntr-o foaie de calcul Salariati, o diagram de tip Structur radial, n care s se reprezinte totalul pentru
fiecare salariat.
5. Unii celulele A3:F3 i introducei n celula astfel obinut titlul Distribuia costurilor proiectului. Formatai titlul
astfel: font Comic Sans MS, dimensiune 15, ngroat, subliniat. Salvai i nchidei aplicaia.
Rezolvare
1. D6 =C5*$B$17
B6 =if(d5=A;500;if(d5=B;300;700))
2. G6 =E6+F6 , iar B19 =sum(F6:F15)
3. Se selecteaz celulele, se d click dreapta si se alege opiunea Format Cells.../Fill.
4. Opiunea Insert/ Insert Column Chart.
5. Selectai celulele A3:F3, alegei opiunile Home/ Merge & Center; Home/ Wrap text. Alegei tipul,
dimensiunea i efectul dorite.

48
Subiecte Atestat profesional la informatic Idei de rezolvare
ANEXA 1

Operaii de baz n realizarea proiectului folosind Oracle Application Express


1. Crearea proiectului
Proiectul de gestionare a bazelor de date const n realizarea unei aplicaii care poate fi creat cu ajutorul Oracle
Application Express.
Primul pas este crearea bazei de date, ceea ce presupune crearea tabelelor i realizarea relaiilor ntre acestea. n
aceast etap nu este necesar popularea tabelelor. Acest lucru l vom face ulterior, folosind formulare.
Pentru exemplificare vom considera dou tabele dintr-o
baz de date folosit la gestionarea activitii ntr-o policlinic. MEDICI PROGRAMARI
Tabelele se numesc MEDICI, respectiv PROGRAMARI, i au # cod # cod
urmtoarea structur: * nume * cabinet
Regulile afacerii sunt: * * ziua
- Fiecare medic are programri n una sau mai multe zile ale specializare * codm /* codul medicului*/
sptmnii.
- Fiecare programare corespunde unui singur medic.
Relaia ntre cele dou tabele se realizeaz prin intermediul cmpului codm din tabela PROGRAMARI i
cmpul cod din tabela MEDICI.
Crearea bazei de date s-a realizat folosind opiunile din tabul SQL Workshop, iar pentru crearea aplicaiei ne
vom muta n tabul Application Builder.
O aplicaie este alctuit din pagini. Fiecare pagin poate fi personalizat conform cerinelor problemei i
dorinelor programatorului.
Butonul Create conduce la deschiderea succesiv a mai multor ferestre de dialog n care sunt solicitate
informaii despre noua aplicaie: numele aplicaiei, alegerea formatului pentru pagini, selectarea unor elemente comune

cu alte aplicaii, organizarea meniului, aplicarea unei teme, finalizare, conform schemei de mai jos. Navigarea ntre
opiuni se face acionnd butonul Next al fiecrei ferestre.
O modalitate eficient pentru crearea paginilor asociate fiecrei tabele este formatul Report and Form, care
permite crearea automat a unui raport pentru vizualizarea nregistrrilor din tabel i a unui formular pentru introducerea
unor nregistrri noi.

Confirmarea crerii cu succes a aplicaiei conduce la deschiderea ferestrei de lucru care conine instrumentele
specifice pe care le vom utiliza mai departe. Aplicaia nou creat apare n fereastra Application Builder, alturi de toate
aplicaiile create de utilizator n acest spaiu de lucru.
Butonul Run Application are ca efect rularea aplicaiei, ceea ce va permite testarea elementelor definite de
programator cu scopul mbuntirii i eficientizrii acesteia.

49
Subiecte Atestat profesional la informatic Idei de rezolvare
Alturi de acesta se afl nc patru opiuni pe care le putei folosi pentru a descrie definiiile obiectelor din baza
de date, imagini, date eseniale care vor fi incluse la exportul aplicaiei, elementele comune paginilor din aplicaie i
posibilitatea de a exporta sau importa fiiere SQL.
2. Crearea paginilor

Utilizatorul are posibilitatea de a crea pagini noi n fiecare aplicaie, folosind butonul
din pagina principal a aplicaiei. Se poate selecta tipul paginii noi din lista celor cincisprezece tipuri de pagini propuse.
Astfel putem crea pagin blank, raport, formular, grafic, calendar, de acces la aplicaie, pagin de feedback. Selectarea
oricrui tip de pagin duce la deschiderea ferestrei n care se definesc proprietile paginii.
3. Editarea proprietilor unei pagini
Dac se acioneaz direct pe o pagin din aplicaie se va deschide o fereastr care prezint proprietile paginii
respective, grupate pe trei coloane: Page Rendering, Page Processing i Shared Components. Organizarea celor trei
coloane poate fi aleas de programator: Component View sau Tree View.

a) pagina de tip raport - Report


n zona Page Rendering ferestrei de lucru se pot face prelucrrile de finee pentru estetica i utilitatea paginii
curente.
n zona de definire a regiunilor poate fi definit o nou regiune de tip formular, raport, grafic, calendar, URL i
chiar Help text. Este suficient s selectai tipul regiunii
i se va deschide o cascad de pagini, uor de configurat,
cu datele necesare construirii obiectului dorit.

Aplicaia poate fi animat prin inserarea de


imagini i efecte sonore. Se poate aplica un sunet de
fundal care s dureze pe toat perioada execuiei
aplicaiei.
Pagina de tip raport este cea care poate conine
cele mai multe elemente. Informaiile statistice se pot
introduce sub form de list de opiuni, fiecare opiune
fcnd trimitere ctre o pagin nou din aplicaie. Lista
opiunilor se va crea n seciunea Lists din Shared
Components, iar pentru afiare trebuie creat o regiune
de tip list care s se construiasc pe baza listei definit
anterior.

50
Subiecte Atestat profesional la informatic Idei de rezolvare

Raportul conine dou butoane implicite Create i Actions care se utilizeaz


pentru trimiterea ctre formularul de introducere a unei noi nregistrri, respectiv
pentru aplicarea unor operaii utile n lucrul cu tabele i baze de date. Descrcarea
raportului, de exemplu, permite salvarea acestuia n trei formate: CSV, HTML i
Email.

b) pagina de tip formular - Form nu conine, n varianta iniial, afiarea cmpului corespunztor PK (Primary
Key). n exemplu, cod este
marcat Hidden.
Pentru introducerea
datelor afiarea acestui cmp
este necesar, iar paii pentru
activarea lui sunt urmtorii:
click pe eticheta cod, iar din fereastra care se deschide se selecteaz tipul item-ului: text, list, buton-radio, checkbox,
dat calendaristic.
Se poate aduga n pagina
formularului o regiune de tip raport n care
s se afieze o list de valori existente
pentru PK, util pentru tabelele
relaionate, pentru respectarea condiiilor
relaiei.
c) regiune de tip grafic - chart, care s evidenieze date din tabel, ca n exemplul urmtor.

Modul interactiv n care se obine


graficul face ca acesta s fie uor de
realizat.
Comanda SQL care a realizat
selecia datelor este

SELECT
NULL LINK,
specializare LABEL, COUNT(cod)
VALUE
FROM MEDICI
GROUP BY specializare

d) regiune de tip calendar este util atunci cnd baza de date conine tabele cu cmpuri de tip dat
calendaristic.

51
Subiecte Atestat profesional la informatic Idei de rezolvare
ANEXA 2

Exemplu aplicaie web (PHP i MYSQL)


Introducere
Pentru elevii claselor a XII-a care au studiat modulul Programare web pe suport MySql, partea practic a
examenului de Atestat const n proiectarea i realizarea unei aplicaii Web.
Scopul proiectului propus este acela de realizare a unui site dinamic i interactiv pentru problema propus, care
s permit modificarea coninutului i administrarea de la distan.
Condiiile preliminare necesare pentru crearea proiectului sunt:
- nvarea limbajelor client-side: HTML (folosit pentru adugare coninut) i CSS (folosit pentru a separa coninutul
unui document de forma acestuia);
- nvarea limbajelor server-side: PHP (limbaj de programare, care ruleaz pe serverul web) i MySql (baza de date
relaional care este folosit n majoritatea aplicaiilor web mpreun cu PHP );
- existena unui server web local instalat (XAMPP, WAMP, LAMP, MAMP) sau a unui serviciu de web hosting
accesibil (gratuit / cu plat). n acest ultim caz este nevoie de un client FTP pentru publicarea site-ului sau doar de o
interfa oferit de serviciul de web hosting pentru editarea codului surs n browser.
- folosirea unui editor text: Sublime Text, Komodo Edit, Aptana sau Notepad++;
- folosirea unui client web (Web Browser);
Pentru a veni n ajutorul elevilor, oferim accesul la dou resurse online:
- Resursa 1: https://github.com/informatica-prahova/concurs-canin (codul surs al proiectului);
- Resursa 2: http://concurs-canin.site90.com (produsul final / site dinamic i interactiv);
Prezentare problem
Pentru Campionatul Naional al cinilor de ras se dorete crearea unei aplicaii web pentru promovarea
concursului canin, gestionarea participanilor (cini) mpreun cu stpnii acestora i publicarea de ctre organizatori a
premiilor obinute. Cunoatem c pentru fiecare stpn se nregistreaz cnp-ul, numele i adresa, iar pentru fiecare cine
se nregistreaz numele cine, rasa, categoria de concurs, stpnul i premiul obinut (1,2,3=premiu, 0=fr premiu).
Site-ul creat va dispune de funcionalitile: pagin promovare, pagin nregistrare cine sau stpn, pagin
vizualizare cini nscrii n concurs i a rezultatelor acestora, pagin cutare dup diferite criterii care pot fi sau nu
cumulative. Toate aceste funcionaliti sunt accesibile oricrui utilizator. Accesarea paginii de modificare/adugare
premiu sau a paginii de tergere cinelui, accesarea acestora se poate face doar restricionat, dup autentificarea prin
intermediul unui nume de utilizator (membru juriu/ administrator) i al parolei.
Configurare server, setare folder proiect
Exist dou variante care pot fi alese:
1. Instalare aplicaii independente: Apache Server, MySql Server, server FTP (FileZilla), server mail;
2. Instalarea unui pachet integrat (XAMPP/WAMP) care s conin toate aplicaiile amintite anterior;
Pentru aplicaia web creat vom folosi a doua variant prin instalarea XAMPP n directorul prestabilit
C:\xampp i setarea ca director rdcin a folderului C:\xampp\htdocs\concurs-canin. Proiectul va fi accesibil n
browser la adresa localhost/concurs-canin .
Sus
Descriere arhitectur aplicaie
Pentru fiecare pagin a site-ului s-a aplicat un design unitar, pagina
avnd urmtoarele zone:
- Sus zona din partea superioar a paginii (inc/header.php) conine: Coninut includerea
fiierelor pentru conectarea la BD, deschiderea sesiunii de lucru i a bibliotecii
de funcii; cod HTML pentru DOCTYPE, titlu pagin, seciunea, includere
fiiere cu stiluri; etichetele <div> pentru container, logo, slogan, meniu de navigare.
- Coninut zona din partea central a paginii n care sunt ncrcate coninutul
n stnga i comenzile rapide n dreapta.
- Jos zona din partea inferioar a paginii (inc/footer.php) conine: Jos subsolul cu
informaii referitoare la drepturile de autor i codul HTML pentru nchiderea
tag-urilor sau etichetelor <div> rmase deschise din zona de sus.
Interfaa aplicaiei
Design-ul este o tiin complex, mai ales dac i lipsete talentul artistic. Provocarea de a realiza un site web
atrgtor este o problem care trebuie rezolvat. CSS-ul ne permite s centralizm designul site-ului Web. n loc s
aplicm proiectare prin tag-uri HTML, a fost creat un fiier special care este ncrcat de fiecare pagina pe site. Cu CSS,

52
Subiecte Atestat profesional la informatic Idei de rezolvare
putem schimba dramatic design-ul ntregului site, doar prin schimbarea unui singur fiier de stiluri (css/style.css).
Aspectul paginilor create este unitar fiind stabilit o schem fix (fixed layout) cu limea de 920px. n continuare avem
un extras din fiierul style.css cu codul CSS doar pentru stabilirea ctorva caracteristici pentru poziionare, dimensiuni
(width, height, margin, float, padding, background), iar coninutul complet este disponibil la resursa 1 (amintit anterior).
#container { #navbar { #wrapper { #left {
width:920px; width:570px; width:920px; float:left;
padding:10px; float:right; background:#fff; width:220px;
margin:0 auto; height:40px; } margin:5px 0 10px
} margin-top:15px; #content { 0;
#header { } float:left; padding:8px;
height:70px; #in-header { width:650px; }
} background:#e7d487 margin: 5px; #footer {
#logo { url(../img/header.jpg } padding:5px;
width:350px; ) top right no- .article { border-top:1px;
float:left; repeat; width:305px; background:#111;
margin-top:15px; height:182px; float:left; height:30px;
} } } }
Pentru a identifica mai bine casetele <div>, este bine s vedem n continuare un extras din codul HTML unde
sunt folosite aceste tag-uri. n imaginea urmtoare vedem interfaa complet pentru pagina index.php pe care sunt
evideniate casetele <div> folosite, coninutul creat n HTML i stilizat cu CSS.
<div id=container>
<div id=header>
<div id=logo>
<h1>CAMPIONAT CANIN </h1>
</div> <!-- sfarsit logo -->
<div id=navbar>
.....................
</div> <!sf. navbar -->
</div> <!-- sf. header -->
------------------------------------------------------------------

<div id=in-header>
<h2>........</h2>
</div> <!-- sf. inheader -->
------------------------------------------------------------------

<div id=wrapper>
<div id=content>
......
<div class=article>
.....
</div> <!-- sf. article -->
.....
</div><!-- sf. content -->
<div id=left>
<h3>.....</h3>
.....
</div><!-- sf. left -->
</div> <!sf. wrapper -->
------------------------------------------------------------------

<div id=footer>
......
</div> <!sf. footer -->
</div> <!-- sf.container-->

Sistemul de navigare
n cadrul site-ului exist un meniu principal de navigare, acesta permind deplasarea n seciunile publice: Acas,
nregistrare, Concureni, Rezultate i seciunea privat Administrare.
Acest meniu de navigare este poziionat n zona Sus n cutia <div>
header (inc/header.php).
<ul>
<li <?php if($sectiune=='administrare') echo 'class=active';?> >
<a href=administrare.php>Administrare</a></li>
<li <?php if($sectiune=='rezultate_concurs') echo 'class=active';?>>
<a href=rezultate_concurs.php>Rezultate</a></li>
<li <?php if($sectiune=='caini_inregistrati') echo 'class=active';?>>
<a href=caini_inregistrati.php>Concurenti</a></li>
<li <?php if($sectiune=='inregistrare') echo 'class=active';?>>
<a href=inregistrare.php>Inregistrare</a></li>
<li <?php if($sectiune=='index') echo 'class=active';?>>
<a href=index.php>Acasa</a></li> <!-- Acces la pagina de prezentare -->
</ul>
Observaii: 1. Meniul este creat ca o list neordonat prin folosirea tag-lui ul, iar fiecare element din list (li) reprezint
o opiune din meniu care ne permite deplasarea la o seciune (pagin) public sau nu.

53
Subiecte Atestat profesional la informatic Idei de rezolvare
2. Fiecare opiune de navigare este o legtur (hiperlink) ctre o pagin local site-ului (toate paginile sunt poziionate n
rdcina proiectului). Cu ajutorul clasei active este evideniat pagina activ n orice moment al navigrii (#navbar
li.active { background:#e7d487; color:#fff;} ).
3. Pentru a specifica ce item din list este activ am stabilit la nceputul fiecrei pagini care este seciunea activ pentru
respectiva pagin (ex: $sectiune='index'; $sectiune='caini_inregistrati';
$sectiune='inregistrare'; $sectiune='rezultate_concurs'; $sectiune='admin;) urmnd s testm ce
valoare are variabila $sectiune. Dac este ndeplinit condiia, scriem n tag-ul li c elementul curent din list este activ
(if($sectiune=='index') echo 'class=active';);
n cadrul unei seciuni se poate folosi navigarea prin sistemul de comenzi rapide poziionat n cadrul cutiei left,
care este personalizat pentru fiecare pagin n parte. De exemplu, n pagina inregistrare.php
(nregistrare cine n concurs) avem la dispoziie meniul de comenzi rapide alturat.
Site dinamic/ interactiv versus Site static
nainte de a merge mai departe, trebuie s facem diferena ntre arhitectura site-
urilor din Web 1.0 (read only Web) i arhitectura site-urilor Web 2.0 (read write Web). Site-urile din generaia Web 1.0
sunt site-urile statice de prezentare, la care programarea se fcea doar pe partea de client, care nu se dezvolt dinamic,
neexistnd interaciune cu vizitatorul. Aceste site-uri nu permit folosirea bazelor de date.
n ceea ce privete site-urile din generaia Web 2.0, vorbim de site-uri dinamice, interactive care folosesc baze
de date pentu a stoca informaiile de la utilizatori. Pentru crearea paginilor dinamice se folosete att programarea server-
side, ct i programarea client-side.
Observaie: Obiectivul principal al acestui demers este trecerea de la realizarea de site-uri statice la realizarea de
site-uri dinamice, ca proiect pentru examenul de Atestat.
http://localhost/concurs-canin - Site dinamic
Singura pagin care poate fi considerat pagin static este pagina index.php, deoarece pe aceasta nu exist niciun
formular care s permit adugarea de date ntr-o baza de date i nicio zon n care s fie afiate rezultatele unei interogri
dintr-o baza de date.
Altfel toate paginile sunt dinamice:
- adauga_caine.php - cu acces nesecurizat - afieaz formularul pentru adugarea unui cine de ctre orice persoan care
dorete acest lucru; insereaz n baza de date informaiile din formularul pentru adugare cine;
- adauga_stapan.php - cu acces nesecurizat - afieaz formularul pentru adaugarea unui stpn de ctre orice persoan
care dorete acest lucru; insereaz n baza de date informaiile din formularul pentru adugare cine;
- caini_inregistrati.php / caini_pe_categorii.php - cu acces nesecurizat - afieaz un tabel cu toi cinii ordonai dup
numrul de concurs / pe categorii, dup ce a fost realizat o interogare a bazei de date;
- rezultate_concurs.php - cu acces nesecurizat - afieaz un tabel cu cini pe categorii, ordonai cresctor dup premiu I/II/III;
- cautare_avansata.php - cu acces nesecurizat - cutarea unui cine n baza de date dup unul sau mai multe criterii
cumulative sau nu; (Criteriile sunt cumulative dac sunt ndeplinite toate clauzele n acelai timp. Criteriile nu sunt
cumulative dac este ndeplinit cel putin o clauz dintre cele precizate);
- logare.php - cu acces nesecurizat - permite afiarea unui formular de logare i de verificare a utilizatorului, a parolei;
permite accesarea zonei securizate, dup ce am creat o sesiune de lucru;
- logout.php - permite prsirea zonei securizate prin distugerea sesiunii de lucru;
- administrare.php - cu acces securizat (poate fi accesat doar de utilizatorii autorizai, dup ce s-au logat) - se afieaz o
list cu toi cinii care sunt nscrii n concurs; din aceast pagin prin metoda GET se poate terge un cine sau se poate
aduga/modifica un premiu obinut de un cine;
- modifica_rezultat.php - cu acces securizat - modificarea informaiilor unui cine; (poate fi accesat din fiierul
administrare.php, acesta primind prin metoda GET numarul de concurs pentru cinele dorit);
- stergere_caine.php - cu acces securizat - tergerea informaiilor despre un cine; Poate fi accesat din fiierul
administrare.php, acesta primind prin metoda GET numarul de concurs pentru cinele dorit);
Conectarea la baza de date concurs-canin
Baza de date concurs-canin a fost creat pe server-ul local (http://localhost/) folosind aplicaia PhpMyAdmin.
Aceast baza de date conine 3 tabele: utilizatori (reine utilizatorii i parolele acestora), stapani (reine informaii despre
stpni) i caini (reine informaii despre cinii nscrii n concurs).
Creerea tabelei utilizatori Creerea tabelei utilizatori
CREATE TABLE utilizatori ( INSERT INTO utilizatori VALUES
utilizator varchar(30) PRIMARY KEY, ('admin', '21232f297a57a5a743894a0e4a801fc3'),
parola varchar(150) NOT NULL ('jurat', 'b46e6cc1c9958ce0606d35f969597fee');
);
Pentru a ne conecta la baza de date am creat fiierul conectare_la_bd.php care este inclus n fiierul header.php

54
Subiecte Atestat profesional la informatic Idei de rezolvare
folosind: include(inc/conectare_la_bd.php).
<?php Observaie:
$host = localhost; //IP a host-ului
$user = root; //nume utilizator
- mysqli_connect() - Deschide o nou
$password = xxxx; //parola utilizator conexiune la serverul MySQL
$db= concurs_canin; //baza de date - Dac dorim s trecem un site online pe
un server de web-hosting va trebui s
$link = mysqli_connect($host, $user, $password,$db); modificm host-ul, userul i parola de
if(!$link) {
die(Nu am stabilit conexiunea .mysqli_error());} conectare la baza de date, precum i baza
?> de date.
Conectarea i deconectarea la zona restricionat
Conectarea la zona restricionat se realizez cu ajutorul formularului din fiierul logare.php care trasmite prin
metoda POST datele ctre acelai fiier. Se interogheaz baza de date, verificnd dac numele utilizatorului i parola
sunt identice cu cele stocate n tabela utilizatori.
<form action=logare.php method=post> Formularul conine:
<fieldset>
<legend>Acces zona administrativa:</legend> - zona legend
<table> - etichete cmpuri
<tr><th><label>Utilizator:</label></th>
<td><input type=text value= name=utilizator /></td>
- un cmp de text
</tr> - un cmp pentru parol
<tr><th><label>Parola:</label></th> - buton pentru transmitere formular
<td><input type=password value= name=parola /></td>
</tr> (submit)
<tr> -
<td></td>
<td><input type=submit value=Logare /></td>
</tr>
</table>
</fieldset>
</form>
Interogarea care ne permite verificarea utilizatorului i a parolei este urmtoarea: $query= SELECT *
FROM utilizatori WHERE utilizator='$utiliz' AND parola='$parola'.
O interogare este rulat n PHP cu ajutorul funciei mysqli_query() care are doi parametri: link-ul de
conexiune la baza de date i interogarea SQL, returnnd un rezultat de tip resurs. Resursa va conine un singur rnd
(mysqli_num_rows($result)==1) dac utilizatorul i parola sunt corecte.
<?php $_SERVER[REQUEST_METHOD]- conine
if ($_SERVER[REQUEST_METHOD] == POST) {
$utiliz = $_POST['utilizator']; metoda de trasmitere a formula- rului la
$parola = $_POST['parola']; apsarea butonului Logare din logare.php
$utiliz = mysqli_real_escape_string($link,$utiliz);
$parola = md5(mysqli_real_escape_string($link,$parola)); (method=post).
- dac metoda este POST transformm
$query = SELECT * FROM utilizatori
WHERE utilizator='$utilizator'
variabilele de forma $_POST[var] n
AND parola='$parola'; variabile mai prietenoase de forma $var
$result = mysqli_query($link, $query); crora le aplicm funcii pentru a preveni SQL
if(mysqli_num_rows($result)==1) { Injectionn (mysqli_real_escape_
session_start(); string).
$_SESSION[logat] = da; //stetez ca sunt logat
header(Location: administrare.php); - funcia md5() codific parola primit prin
} paramentrul $parola;
echo '<h3>Utilizator sau parola gresita!</h3> <br>
}
- session_start() - va creez o sesiune;
?> - header - redirecionare ctre fiierul dorit
Pentru a prsi zona restricionat trebuie s folosim legtura Log out ctre fiierul logout.php.
<?php - unset($_SESSION) - terge coninutul variabilei;
session_start(); unset($_SESSION);
session_destroy();
- session_destroy() - va distruge sesiunea;
header('Location: logare.php'); - header - redirecioneaz utilizatorul ctre fiierul
?> logare.php;

55
Subiecte Atestat profesional la informatic Idei de rezolvare
Modelarea bazei de date
Baza de date concurs-canin conine 2 tabele
relaionate: stapani (reine informaii despre stpni) i caini
(reine informaii despre ceii nscrii n concurs).
Regulile afacerii sunt:
- Fiecare cine trebuie s fie nscris de stpn la o singur
categorie de concurs.
- Fiecare stpn poate s nscrie n concurs unul sau mai muli
cini.
- Relaia ntre cele dou tabele se realizeaz prin intermediul cmpului cnp din tabela stapani i cmpul cnp_stapan
din tabela caini.
Cu aplicaia MySql WorkBench am construit modelul alturat, n care sunt specificate numele cmpurilor, tipul
cmpurilor i relaia 1- n ntre stapani i caini.
Comenzile SQL pentru crearea tabelelor se gsesc n fiierul: creeare_baza_date.sql (Resursa 1).
S.C.R.U.D.
n programarea calculatoarelor Search, Create, Read, Update i Delete sunt funciile principale ale bazelor de
date relaionale. Aplicaia noastr web dispune de toate funciile SCRUD, dar pentru a nelege mai bine unde i cum
folosim aceste operaii avem urmtorul tabel:
Operaie Explicaii SQL HTTP Fiiere
- presupune preluarea datelor dintr-un formular prin adauga_caine.php
Create INSERT POST
metoda POST i inserarea acestora folosind INSERT; adauga_stapan.php
- presupune preluarea datelor dintr-un formular prin
caini_inregistrati.php
metoda GET i afiarea datelor folosind SELECT;
Read SELECT GET caini_pe_categorii.php
- prezenta clauzei WHERE permite obinerea unuia sau
rezultate_concurs.php
mai multor rnduri din tabela interogat;
- presupune modificarea datelor ntr-un rnd al tabelei,
folosind UPDATE; trasmiterea datelor se face printr-un
formular prin intermediul metoda POST;
Update UPDATE PUT modifica_rezultat.php
- datele sunt adugate n formular (pentru a fi modificate)
dup ce n prealabil au fost selectate dup criteriile primite
prin GET (SELECT .... WHERE);
- presupune tergerea unui rnd folosind DELETE;
Delete - rndul ters este ales dup criteriul primit prin metoda DELETE DELETE stergere_caine.php
GET folosind clauza WHERE ;
- permite cutarea (selectarea) informaiilor folosind
Search SELECT POST cautare_avansata.php
condiiile primite prin metoda POST dintr-un formular;

adauga_stapan.php
Permite nregistrarea unui stpn la concursul canin.
<form action=adauga_stapan.php method=post> <?php
<table> if (!empty($_POST))
<tr> {
<th><label>Cnp</label></th>
$cnp = $_POST['cnp'];
<td><input type=text name=cnp /></td>
</tr> $nume = $_POST['nume'];
<tr> $adresa= $_POST['adresa'];
<th><label>Nume</label></th>
<td><input type=text name=nume /></td> $sql=INSERT INTO stapani(cnp,
</tr> nume, adresa) VALUES ('$cnp',
<tr> '$nume', '$adresa');
<th><label>Adresa</label></th>
<td><input type=text name=adresa /></td>
mysqli_query($link,$sql);
</tr>
echo'<h3>Stapanul a fost
<tr><td></td><td>
inregistrat cu suucces. </h3>';
<input type=submit value=Adauga stapan /></td>
</tr> }
</table> ?>
</form>

56
Subiecte Atestat profesional la informatic Idei de rezolvare

form method="post"
input type="text" name="cnp"
input type="text" name="nume"
input type="text" name="adresa"
$cnp $nume $adresa
action="adauga_stapan.php"

$sql="INSERT INTO stapani VALUES ('$cnp', '$nume', '$adresa')";


mysqli_query($link,$sql);

Observaie: Pentru prevenirea posibilelor erori la lucrul cu formulare, la folosirea variabilelor POST transmise i la
referirea cmpurilor din tabele, am folosit n toate paginile acelai identificator.
Cmp de text din formular Variabila POST Variabila prietenoas Cmp tabel
<input type=text
$_POST['identificator'] $identificator identificator
name=identificator />

adauga_caine.php
Permite inregistrarea unui cine la concursul canin.
form method="post"
input type="text" name="nume_caine"
input type="text" name="rasa"
select name="categorie"
select name="stapan"
action="adauga_caine.php" $cnp_stapan
$rasa $categorie
$nume_caine
$sql = "INSERT INTO caini
(cnp_stapan, nume_caine, rasa, categorie)
VALUES('$cnp_stapan','$nume_caine',
'$rasa','$categorie')";
mysqli_query($link,$sql); Observaie:
La prima vedere, comanda INSERT anterioar
conine o eroare, deoarece nu se insereaz o valoare pentru cheia primar (nr_concurs). Nu este adevrat deoarece
nr_concurs se autoincrementeaz.
Fa de formularul folosit n fiierul adauga_stapan.php este folosit tag-ul select:
- pentru a alege categoria n care este nregistrat un cine n concurs;
- pentru a afia numele stpnilor posibili i a alege cnp-ul care va fi adugat n tabela caini;
Pentru alegere o categorie: Pentru afisare stapn / alegere cnp stpn:
<select name=categorie> <select name=cnp_stapan>
<option value=1>Grupa I</option> <?php
<option value=2>Grupa II</option> $query1 = SELECT cnp, nume FROM stapani;
<option value=3>Grupa III</option> $result1 = mysqli_query($link ,$query1);
<option value=4>Grupa IV</option> while ($row1 = mysqli_fetch_assoc($result1))
.................. { echo '<option value='.$row1['cnp'].'>'
<option value=10>Grupa X</option> .$row1['nume'].'</option>'; }
</select> ?></select>

caini_inregistrati.php
Permite afiarea tuturor cinilor nregistrai la
<?php
$query = "SELECT * FROM caini ORDER BY nr_concurs"; concursul canin, ordonai dup numrul de concurs.
$result = mysqli_query($link,$query);
......

while ($row = mysqli_fetch_assoc($result)) {

<?php categoria_x($row['categorie']);?>
<?php echo $row1['nume'];?>
<?php echo $row['rasa'];?>
<?php echo $row['nume_caine'];?>
<?php echo $row1['nr_concurs'];?>
.........
<?php } ?>

57
Subiecte Atestat profesional la informatic Idei de rezolvare
<?php - se folosete comanda SELECT pentru a selecta toate
$query = SELECT * FROM caini ORDER BY nr_concurs;
$result = mysqli_query($link ,$query); // nregistrrile din tabela caini;
- se ruleaz interogarea $query;
if (mysqli_num_rows($result) == 0) {
echo 'Nu exista catei inregistrati in - dac numrul de rnduri este 0
concurs.'; (mysqli_num_rows($result)==0), se afieaz un
} else {
?>
mesaj n acest sens;
<table> - dac numrul de rnduri este diferit de 0 se creaz un
<tr> <th>Nr</th><th>Nume_caine</th><th>Rasa</th> tabel, afindu-se header-ul acestuia;
<th>Stapan</th><th>Categorie</th>
</tr> - se ncarc variabila de tip tablou $row cu valorile
<?php returnate de funcia
while ($row = mysqli_fetch_assoc($result)) { mysqli_fetch_assoc($result));
$query1 = SELECT nume FROM stapani
WHERE cnp='.$row['cnp_stapan'].'; - elementele vectorului $row se afieaz n celula dorit
$result1 = mysqli_query($link ,$query1); <td> <?php echo $row['nr_concurs']; ?>
$row1 = mysqli_fetch_assoc($result1);
?>
</td>);
<tr> - pentru a identifica, numele stpnului unui cine, avem
<td><?php echo $row['nr_concurs'];?></td> nevoie de interogarea tabelei stapani: SELECT nume
<td><?php echo $row['nume_caine'];?></td>
<td><?php echo $row['rasa'];?></td> FROM stapani WHERE cnp='.
<td><?php echo $row1['nume'];?></td> $row['cnp_stapan']. ', rezultatul fiind stocat
<td><?php categoria_x($row['categorie']);?></td>
</tr> n variabila $row1['nume'];
<?php } ?>
</table>
<?php } ?>

rezultate_concurs.php
Rezultatele concursului sunt organizate pe categorii, n ordine descresctoare a premiilor.
<?php Diferenele fa de caini_inregistrati.php sunt:
for($i=1;$i<=10;$i++) //10 catedorii de concurs
{ echo '<h3>'; categoria_x($i); echo '</h3>'; - se construiete cte un tabel pentru fiecare categorie;
$query = SELECT * FROM caini - comanda SELECT este rulat de 10 ori pentru fiecare
WHERE categorie=$i
AND premiu IN (1,2,3)
categorie n parte, selectnd acei cini din categoria
ORDER BY premiu ASC; curent n ordine cresctoare a premiului obinut (
$result = mysqli_query($link, $query); SELECT * FROM caini WHERE categorie=$i AND
if (mysqli_num_rows($result) == 0)
{ echo 'Nu exista caini in categorie'; } premiu IN (1,2,3));
else { - parametrul $i identific numrul categoriei n care
?>
<table>
este nscris un cine n concurs;
<tr><th>Nr_concurs</th> - pentru cmpul categorie din tabela caini se reine
<th>Nume_caine</th><th>Rasa </th> numrul categorei, din acest motiv este nevoie de
< th>Premiul</th><th>Stapan</th>
</tr> apelul funciei categoria_x() cu parametrul $i care
<?php afieaz numele categoriei (inc/functii.php);
while ($row = mysqli_fetch_assoc($result))
{
$query1 = SELECT nume FROM stapani
WHERE cnp='.$row['cnp_stapan'].';
$result1 = mysqli_query($link ,$query1);
$row1 = mysqli_fetch_assoc($result1);
?>
<tr>
<td><?php echo $row['nr_concurs'];?></td>
<td><?php echo $row['nume_caine'];?></td>
<td><?php echo $row['rasa'];?></td>
<td><?php echo $row['premiu'];?></td>
<td><?php echo $row1['nume'];?></td>
</tr>
<?php } ?>
</table><br>
<?php }
} ?>

cautare_avansata.php
Putem cuta informaii referitoare la cinii din concurs, criteriile precizate pot fi cumulative sau nu. (Criteriile sunt
cumulative dac sunt ndeplinite toate clauzele n acelai timp. Criteriile nu sunt cumulative dac este ndeplinit cel
putin o clauz dintre cele precizate);

58
Subiecte Atestat profesional la informatic Idei de rezolvare
$query = SELECT * FROM caini ;
.....
if(!empty($_POST)){
$query = $query . WHERE;
if($_POST['op']==1) $operator= AND ; else $operator= OR ; $criterii=0;
if( !empty($_POST['nr_concurs']) ) { $criterii++;
if($criterii==1) $query = $query.nr_concurs=.$_POST['nr_concurs'];}
if( !empty($_POST['nume_caine']) ) { $criterii++;
if($criterii==1) $query = $query. nume_caine LIKE '%.$_POST['nume_caine'].%';
else $query = $query.$operator. nume_caine LIKE '%.$_POST['nume_caine'].%';}
Observaii: 1. Operatorul LIKE permite gsirea informaiilor care conin irul de caractere dorit;
2. Alegerea modului cumulativ sau necumulativ al condiiilor se realizez din formular cu ajutorul butoanelor radio
construite ( ).
<input type=radio name=op value=1 checked> Da <input type=radio name=op value=2> Nu
3. Dac operatorul este cumulativ, atunci operatorul folosit n clauza WHERE este AND altfel este OR;
if($_POST['op']==1) $operator= AND ;
else $operator= OR ;
4. La construirea comenzii SELECT trebuie s concatenm subirurile SELECT * FROM caini, WHERE, OR/AND la
criteriile primite prin POST care ndeplinesc condiia !empty($_POST['nr_concurs'].

administrare.php
Accesul la zona restricionat
se realizeaz prin folosirea sistemului
de conectare din pagina logare.php. Dac operaia de conectare este realizat cu succes, se va realiza o redirecionare
ctre administrare.php. Funciile principale oferite de aceast pagin sunt acelea de a avea acces, prin metoda GET, la
posibilitatea de tergere sau la posibilitatea de modificare a datelor stocate n tabela caini.
La poziionare n bara de stare:
stergere_caine.php?nr_conc
urs_caine=1

modifica_rezultat.php?nr_c
oncurs_caine=1

Sunt rezultatele hiperlink-


urilor subliniate n continuare:
<table>
<tr><th>NR</th>.........<th>Modifica rezultat</th><th>Sterge caine</th></tr>
<?php
while ($row = mysqli_fetch_assoc($result)) {
?><tr>
<td><?php echo $row['nr_concurs'];?></td>
...............
<td><a href=modifica_rezultat.php?nr_concurs_caine=<?php echo $row['nr_concurs'];?>>
<img src=img/edit.png class=img2></a></td>
<td><a href=stergere_caine.php?nr_concurs_caine=<?php echo $row['nr_concurs'];?>>
<img src=img/del.png class=img2></a></td>
</tr>
<?php } ?> </table>

stergere_caine.php
Permite tergerea unei nregistrari din tabela caini (Ex: stergere_caine.php?nr_concurs_caine=1).
<?php - se folosete comanda DELETE pentru a terge
if ($_GET['nr_concurs_caine']) {
include 'inc/conectare_la_bd.php'; nregistrrile pentru care am primit numrul de
$nr_concurs_caine = $_GET['nr_concurs_caine']; concurs n variabila $_GET['nr_concurs_
$sql = DELETE FROM caini caine'] prin metoda GET din fiierul
WHERE nr_concurs='$nr_concurs_caine'; admnistrare.php la apsarea butonului ;
mysqli_query($link,$sql);
header('Location: administrare.php');
- dup rularea comenzii de tergere cu ajutorul
} funciei header suntem redirecionai pe pagina
?> administrare.php;
modifica_rezultat.php
Permite afiarea, modificarea sau adugarea unui premiu. n acest sens accesm legtura din pagina
administrare.php din dreptul cinelui dorit ( modifica_rezultat.php? nr_concurs_caine=x) care transmite prin metoda
GET numrul de concurs (x) al cinelui care va fi modificat.

59
Subiecte Atestat profesional la informatic Idei de rezolvare
<?php
if (!$_GET['nr_concurs_caine']) {
die('Numar concurs caine nu este valid.'); }

$nr_concurs_caine = $_GET['nr_concurs_caine'];
$sql = SELECT * FROM caini WHERE nr_concurs=
'$nr_concurs_caine';
$result = mysqli_query($link,$sql);
$row = mysqli_fetch_assoc($result); ?>
<form action=modifica_rezultat.php method=post>
<table>
<tr><th><label><b>Numar corcurs</b></label></th> $_GET['nr_concurs_caine']
<td> <?php echo $row['nr_concurs'];?> <input type="text" value= "<?php echo
<input type=text value=<?php echo $row['premiu'];?>"name="premiu" />
$row['nr_concurs'];?> name=nr_concurs hidden /></td>
<tr><th><label><b>Premiul</b></label></th> - Pentru a transmite corect numrul de concurs
<td><input type=text value=<?php echo
$row['premiu'];?> name=premiu /></td></tr> al unui cel prin metoda POST a fost folosit
</tr> un cmp ascuns: <input type=text
<tr><th></th> value=<?php echo $row['nr_ concurs'];?>
<td><input type=submit value=Modificare /></td></tr>
</table> name=nr_concurs hidden/> folosit la comanda
</form> UPDATE (WHERE nr_concurs=$nr_concurs).
<?php Se folosete comanda UPDATE pentru a
$sql=UPDATE caini
SET nume_caine ='$nume_caine',rasa ='$rasa', modifica nregistrarea cu numrul de concurs
categorie = $categorie, premiu = $premiu primit n variabila $_GET['nr_
WHERE nr_concurs = $nr_concurs;
mysqli_query($link,$sql); concurs_caine'], urmat de redirecio-
header(Location: administrare.php); narea ctre pagina administrare.php.
?>

Concluzii
Obiectivul principal al acestui demers a fost trecerea de la realizarea de site-uri statice la realizarea de site-uri
dinamice, ca proiect pentru examenul de Atestat. Limbajul PHP i folosirea bazelor de date MySql (programarea server-
side) a permis creearea unei aplicaii web dinamice, interactive. Nu am scpat din vedere i importana programrii client-
side care a permis realizarea unei interfee cu utilizatorul minimal, intuitiv i plcut.
Aplicaia web realizat pentru proiectul de atestat trebuie s conin implementate majoritatea operaiile SCRUD
pe cel puin o tabel, excepie fcnd doar operaia UPDATE care poate creea probleme la transferul datelor n formular
sau la transferul modificrilor n tabel.
n funcie de complexitatea problemei i funcionalitile dorite proiectul de atestat poate fi modularizat, putnd
fi realizat n echipe de elevi, fiecare n parte ocupndu-se de o component a proiectului (autentificare utilizatori,
gestionare roluri utilizatori, cutare a informaiilor, administrare site, gestionare coninut dinamic, sistem de colectare a
feedback-ului, gestionare produse promovate, vnzare produse etc.).

CUPRINS
Cuvnt nainte .................................................................................................................................................... 3
Precizri ............................................................................................................................................................. 3
Capitolul 1.............................................................................................................................................................. 4
PROGRAMARE ................................................................................................................................................ 4
Capitolul 2............................................................................................................................................................ 16
BAZE DE DATE ............................................................................................................................................. 16
Capitolul 3............................................................................................................................................................ 32
SISTEME DE OPERARE, ABILITI DE TEHNOREDACTARE, CALCUL TABELAR I PREZENTRI
POWERPOINT ............................................................................................................................................................ 32
ANEXA 1 Operaii de baz n realizarea proiectului folosind Oracle Application Express ............................... 49
ANEXA 2 Exemplu aplicaie web (PHP i MYSQL) ......................................................................................... 52
CUPRINS......................................................................................................................................................... 60

60

You might also like