Sunteți pe pagina 1din 3

SUBIECTUL NR.

1 – Atestat și competențe
1. Deschideţi un registru nou în aplicaţia Microsoft Excel.
2. Realizaţi situaţia din imaginea de mai jos.

Stabiliți pentru foaia1 margini: sus-jos 1 cm iar pentru stânga-dreapta 1,5 cm; în antet
dreapta treceți numele școlii, iar în subsol stânga numele clasei
Realizaţi tabelul în foaia de lucru Foaie1, respectând următoarele cerinţe:
în linia 1: fontul Arial, cu dimensiunea 12, bold roșu pe fundal galben;
în liniile 2-7: fontul Arial, cu dimensiunea 11.
liniile de contur: dublă albastră; liniile interioare: punctate, verde
4. Copiaţi tabelul în foaia de lucru Foaie2 (începând din celula A1), apoi efectuaţi următoarele
modificări:
a) lăţimea coloanelor: potrivire automată;
b) adăugaţi tabelului o coloană cu numele Stoc care să conţină, pentru fiecare produs:
textul "stoc zero", dacă valoarea cererii este egală cu valoarea ofertei; valoarea
diferenţei dintre ofertă şi cerere, dacă valoarea cererii este mai mică decât valoarea
ofertei; textul "produs cerut de clienţi", dacă valoarea cererii este mai mare decât
valoarea ofertei.
c) Pe coloana preț formatați numerele astfel încât să aibă exact două zecimale și simbolul
monetar lei
d) Ordonați tabelul alfabetic după produs;
e) În celula A10 se va determina utilizând funcția corespunzătoare valoarea maximă pe
coloana cerere
f) Să se realizeze un grafic de comparație cu primele trei fructe din tabelul inițial și
cererea din foaia1. Graficul să aibă titlul “Comparatie pe cerere”, iar legenda să se
poziționeze sub diagram. Să se regăsească valorile pe graphic. Numerele din valori să
fie scrise cu roșu.
5. Redenumiţi Foaie2 în Tabel.
6. Salvaţi documentul cu numele excel.xlsx/ excel.xls în directorul cu numele vostru, creat în
directorul TESTAT de pe desktop.
Subiect nr. 2
1. Un număr se numește super multiplu de k dacă atât numărul, cât si toate prefixele sale sunt
multipli de k.
Exemplu: n=846 este supermultiplu de k=2, deoarece 846, 84, 8 sunt multipli ai numărului 2.
a) Scrieți deniția completă a subprogramului bac cu doi parametri: n si k numere natural
nenule, care primește prin intermediul acestora două numere naturale de maxim 9 cifre
fiecare. Subprogramul returnează valoarea 1 dacă numărul n este supermultiplu de k si 0 în
caz contrar. (6p)
b) Scrieți un program C/C++ care citește de la tastatură 3 numere naturale nenule a, b și c, de
maxim 9 cifre fiecare, apoi folosind apeluri utile ale subprogramului de la punctul a)
determină și afișează pe ecran toate numerele din intervalul închis determinat de a și b care
sunt supermultipli de c. În cazul în care nu există în interval numere supermultipli de c, se va
afișa un mesaj corespunzător. (4p.)
Exemplu: pentru a=50, b=1000 și c=7, se vor asa numerele 70, 77, 700, 707, 770, 777.
2. Un șir cu maximum 255 de caractere conține cuvinte formate numai din litere mici ale
alfabetului englez. Cuvintele sunt despărțiite prin unul sau mai multe spații, virgulă sau punct.
Scrieți un program C/C++ care citește un astfel de șir și afișează pe ecran, separate printr-un
singur spatiu, cuvintele din sir care au aceleași consoane ca și primul cuvânțîn aceeași ordine
dar nu neapărat pe aceleași poziții. (10p.)
Exemplu: pentru șirul
mara are un borcan cu miere, rame si cirese amare
se va afișa
mara miere amare
3. Numim secvența munte a unui șir de numere naturale un subșir al acestuia, format din
termeni aflați pe poziții consecutive în șirul dat cu proprietatea că formează un șir nevid
strict crescător până la un moment dat apoi formează un șir nevid strict descrescător.
Lungimea secvenței este egală cu numărul de termeni ai acesteia. O secvență munte are
cel puțin 3 elemente.
Fișierul bac.txt conține un șir de cel mult 109 numere naturale din intervalul [0,109 ].
Numerele sunt separate prin câte un spațiu. Se cere să se așeze pe ecran lungimea maximă a
unei secvențe munte și numărul de secvențe munte din șir. Cele două valori se vor așa pe o
singură linie, separate printr-un spațiu. Proiectați un algoritm efcient din punct de vedere al
memoriei și al timpului de executare.
Exemplu: dacă fșierul bac.txt conține numerele
1,2,3,4,3,2,2,4,3,1,1,4,6,1
atunci pe ecran se va afișa 6 3.
a) Scrieți programul C/C++ corespunzător. (8p.)
b) Descrieți în limbaj natural algoritmul proiectat justificând eficiența acestuia. (2p.)
4. Fișierul numere.in conține pe primul rând două numere natural nenule, n și k, n≤10000, k≤n,
iar pe al doilea rând n numere reale.
Să se realizeze un program în C++ în care să se determine numărul de secvențe de lungime k
care încep și se termină cu număr par. Să se utilizeze un algoritm eficient al timpului de
execuție. Dacă nu este nicio secvență să se afișeze un mesaj corespunzător.
14 3
2 3 4 6 8 2 7 9 8 5 6 2 5 2 se va afișa 5 (2 3 4; 4 6 8; 6 8 2; 8 5 6; 2 5 2 )
5. Câte valori afișează funcția f, pentru apelul void f( int x, int y)
f(4,3)? { if(x*y)
a) 0 b) 9 c) 8 d) 1 { if(x %3)
cout <<x <<" ";
f(x -1,y -1);
cout <<y <<" ";
}
cout <<(x+y)/2 <<" ";}
Subiectul 3
case – permite construirea de expresii condiţionale pt. a crea expresii care convertesc valori.
Sintaxa
CASE e
WHEN e1 THEN Evaluează fiecare condiţie WHEN şi, dacă este
r1 satisfăcută, asignează valoarea din expresia THEN
WHEN e2 THEN corespunzătoare.
r2 Dacă nu este satisfăcută niciuna dintre condiţiile
WHEN en THEN WHEN, asignează valoarea prestabilită specificată
rn în expresia ELSE. Dacă nu este specificată nicio
[ ELSE r_else ] expresie ELSE, sistemul va adăuga automat un
END ELSE NULL.
În instrucţiunile CASE, AND are prioritate asupra OR
Şirurile trebuie să fie încadrare în ghilimele simple

Fie tabela
create table locuitori(cnp varchar2(13),nume varchar2(50), prenume varchar2(50), localitate varchar2(50),
urban_rural varchar2(10),venit number(5))
a) Având tabela locuitori să se afișeze pentru fiecare locuitor în funcție de venit dacă acesta este
Mare-5000, mic - 1000 sau mediu
SELECT nume, prenume,
CASE venit
WHEN 1000 THEN 'Mic'
WHEN 5000 THEN 'Mare'
ELSE 'Mediu'
END
FROM locuitori

b) Având cnp-ul persoanei se cere să se afișeze sexul fiecăruiaM sau F și data nașterii.
select cnp , case
when Substr(cnp,1,1) in (1,5) then 'M'
else 'F'
end as sexul
,
SUBSTR(cnp,6,2)||'.'||SUBSTR(cnp,4,2)||'.'||
case
when substr(cnp,1,1) in (1,2) then '19'
else '20'
end
||SUBSTr(cnp,2,2) as "data nasterii"

from locuitori;

c) Să se afișeze pentru fiecare locuitor, dacă în coloana urban_rural avem urban să scrie oras, dacă
avem rural să scrie sat, altfel să fie trecut nu s-a introdus nimic.

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