Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
Biletul nr. 1
În fişierul fişierul numere.in se află pe prima prima linie linie un num numar ar natural n de cel mult 9 cifre. cifre. Să se descompună descompună numărul natural n citit din fişier în sumă de termeni distincţi (excepţie facând primii doi care au amândoi valoarea 1) ai şirului Fionacci! numărul termenilor din sumă treuie sa fie minim. Se va utili"a o funcţie pentru crearea unui nou termen al descompunerii. #irul lui Fionacci! $le%ea creşterilor or%anice&! se va considera aşa cum a fost definit de către 'eonardo Fionacci1!1!!*!+!,Exemple
pentru n1* se afişea"ă ,/+ 0 pentru n* se afişea"a 1/. Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor 1p definirea corectă a funcţiei p al%oritm de re"olvare corect !p afşare corectă a datelor 1p corectitudinea corectitudinea sintactică a pro%ramului pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2 include3iostream4 include3iostream4 2 include3fstream4 include3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 fin(5numere.in5)0 lon% nrfi(lon% n) 6 if (n3) return n0 return nrfi(n1)/nrfi(n)0 nrfi(n1)/nrf i(n)0 7 int main() 6 lon% n!s!i!m0 fin44n0 cout33n335 50 mn0 8ile (n4:) 6 i:0
Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
s:0 8ile (s3n) 6 i//0 snrfi(i)0 7 if (sn) 6 if (nm) 6 cout33nrfi(i1)335 cout33nrfi(i1)335 / 533nrfi(i)0 533nrfi(i)0 n:0 7 else 6 cout33nrfi(i)0 n:0 7 7 else 6 snrfi(i1)0 cout33s335 / 50 nns0 7 7 return :0
7
Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
s:0 8ile (s3n) 6 i//0 snrfi(i)0 7 if (sn) 6 if (nm) 6 cout33nrfi(i1)335 cout33nrfi(i1)335 / 533nrfi(i)0 533nrfi(i)0 n:0 7 else 6 cout33nrfi(i)0 n:0 7 7 else 6 snrfi(i1)0 cout33s335 / 50 nns0 7 7 return :0
7
Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
Biletul nr.
În fişierul numere.in se află pe prima linie maxim un milion de numere naturale de cel mult cifre fiecare. fiecare. Să se %ăsească un procedeu procedeu eficient eficient de determina determinare re a numărulu număruluii care se repetă repetă cel mai des. ;ficienţa procedeului constă în utili"area unei sin%ure treceri prin numere! după ce acestea au fost citite toate! pentru a se determina acel număr care se repetă de cele mai multe ori. Exemplu : #$TE.T%T
&!1'!1!' 1!
se afişea"ăl *
Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fisier 1p al%oritm de re"olvare corect < p (eficienţa al%oritmului al%oritmului 1p afişare corectă a datelor 1p corectitudinea corectitudinea sintactică a pro%ramului pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 fin(5numere.in5)0 int n!maxim!maxi!i!fr=1::>0 n!maxim!maxi!i!fr=1::>0 int main() 6 8ile(fin44n) 6 fr=n>//0 7 maximfr=:>0 for(i10i3990i//) if(fr=i>4maxim) 6 maximfr=i>0 maxii0 7 cout335?r care se repeta de de cele mai multe multe ori (533maxim335) este 533maxi0 533maxi0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
Examen pentru obţinerea atestatului profesional în informatică Tema: Tema: Programare – intensiv
Biletul nr. !
În fişierul numere.in se află pe prima linie un număr natural n (n39)! iar pe a doua linie se află numere naturale a1! a ! -..! an din multimea cifrelor "ecimale (6:!1!!-..! 97). Se cere să se calcule"e suma S a1a-an / ana1a-an1 / - / aa*-ana1! utili"ând un proces iterativ de calcul al însumării! termenul curent de însum însumat at fiind fiind oţin oţinut ut prin prin rotaţi rotaţiaa la dreapt dreaptaa aplica aplicată tă preced precedent entulu uluii termen termen.. @entr @entruu oţin oţinere ereaa termenului curent al sumei se va aplica un procedeu eficient prin care să se evite crearea puterilor lui 1:. Exemplufie n*0 a 10 a+0 a*<0 S+< / <+ / +< 11 Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fisier 1p determinare corectă a termenilor sumei 1p al%oritm de re"olvare corect * p afişare corectă a datelor 1p corectitudinea corectitudinea sintactică a pro%ramului pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2 include3iostream4 include3iostream4 2 include3fstream4 include3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 fin(5numere.in5)0 int n! a=1::>0 int termen(int n!int a=1::>) 6 int nr:!aux0 for(int i10i3n0i//) nrnrA1:/a=i>0 auxa=n>0 for(int in0i410i) a=i>a=i1>0 a=1>aux0 return nr0 7 int main() 6 int s:0 fin44n0 for(int i10i3n0i//) fin44a=i>0 cout335S50
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
7
for(int i10i3n0i//) 6 ss/termen(n!a)0 cout33termen(n!a)0 if(i3n) cout335/50 7 cout335533s0 return :0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. )
În fişierul cuvinte.in se află câte unul pe linie un şir de cuvinte. Să se scrie un pro%ram care citeşte cuvintele din fişier şi le afişea"ă în fişierul cuvinte.out în ordine alfaetică. @entru ordonarea alfaetică veţi utili"a unul din al%oritmii de sortare studiaţi. Exemplu cuvinte.in
*uvinte.out
Bana Cre Domoane
Cre Domoane Bana
Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fisier 1p (al%oritm de sortare corect p al%oritm de re"olvare corect !p afişare corectă a datelor în fişier 1p corectitudinea sintactica a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 2include 3cstrin%4 usin% namespace std0 ifstream fin(5date.in5)0 car s=1:1>=*1>!x=*1>0 int n!i!E0 int main() 6 8ile(fin44x) 6 n//0 strcp(s=n>!x)0 7 for(i10i3n0i//) for(Ei/10E3n0E//) if(strcmp(s=i>!s=E>)4:) 6 strcp(x!s=i>)0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
strcp(s=i>!s=E>)0 strcp(s=E>!x)0
7 for(i10i3n0i//) cout33s=i>33GHnG0 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. &
Supro%ramul sub primeşte prin intermediul parametrului n (:3n3:) dimensiunea unei matrice pătrate! prin intermediul parametrului a matricea de numere reale (a iE cu 1≤i≤n! 1≤ E≤n) şi prin intermediul parametrului I un număr natural nenul (13I3 ∗n). ;l returnea"ă prin intermediul parametrului s suma tuturor elementelor a iE cu proprietatea că i/EI. Scrieţi pro%ramul care citeşte de la tastatură un talou de numere reale cu n linii şi n coloane şi afişea"ă suma elementelor din talou aflate strict deasupra dia%onalei secundare a taloului! folosind apeluri ale supro%ramului sub! definit conform cerinţei. Exemplu:
Bate de intrare ) 1'!1 '1!1 1!1' !1'1
Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fişier 1p definirea corectă a funcţiei p al%oritm de re"olvare corect !p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 int su(int n! int a=:>=:>! int I) 6 int i!E!s:0 for(i10i3n0i//) for(E10E3n0E//) if(i/EI) ss/a=i>=E>0 return s0 7 int main() 6
se afişea"ă :
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
7
int n!i!E!a=:>=:>!s:0 fin44n0 for(i10i3n0i//) for(E10E3n0E//) fin44a=i>=E>0 for(i0i3n0i//) ss/su(n!a!i)0 cout335Suma este 533s0 fin.close()0 return :0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. '
Se citesc de la tastatură două numere naturale nenule a şi (*3a3) de cel mult 9 cifre fiecare. Să se determine! dacă există! un număr prim x care aparţine intervalului încis =a!> pentru care valoarea expresiei J/a∗xJ este minimă. Sa folosit notaţia JmJ pentru modulul numărului m. Bacă nu există un astfel de număr! se va afişa valoarea :! iar dacă există mai multe! se va afişa unul dintre ele. Exemplu:
pentru aK şi 1,! dintre numerele prime K! 11! 1* şi 1K! se va afişa 1* deoarece J1,/K ∗1*J3J1,/K ∗11J3J1,/K ∗1KJ3J1,/K∗KJ. @entru re"olvarea prolemei se va utili"a o funcţie prim care primeşte prin intermediul parametrului n un număr natural (n41) şi staileşte în mod eficient dacă numărul n este prim sau nu. Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fişier 1p definirea corectă a funcţiei p al%oritm de re"olvare corect !p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3cmat4 usin% namespace std0 lon% a!!minim!i!nr0 int prim(int n) 6 int d0 for(d0d3sLrt(n)0d//) if(nMd:) return :0 return 10 7 int main() 6 cin44a440 minim9999999990 for(ia0i30i//) if(prim(i)1)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(as(/aAi)3minim) 6 minimas(/aAi)0 nri0 7 cout33nr0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. +
Supro%ramul apcar primeşte prin intermediul parametrului s un şir cu cel mult ++ de caractere şi prin parametrul c un caracter. ;l returnea"ă prin intermediul parametrului p un număr natural repre"entând numărul de apariţii ale caracterului c în şirul s. Scrieţi pro%ramul care citeşte de la tastatură un şir de caractere (litere mari şi cifre). Se cere să se determine numărul total de vocale din şirul dat! folosind apeluri ale supro%ramului apcar, definit conform cerinţei. Exemplu :
@entru s 5NO'@;C11NO'@;C5 se va afisa P (deoarece sunt P vocale in şir) Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor 1p definirea corectă a funcţiei p al%oritm de re"olvare corect !p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 2include 3cstrin%4 usin% namespace std0 ifstream fin(5date.in5)0 car s=+P>!c!voc=>5C;QRO50 int n!nr!i0 int apcar(car s=+P>! car c) 6 int p:!i0 for (i:0i3n0i//) if(s=i>c) p//0 return p0 7 int main() 6 fin44s0 nstrlen(s)0 for(i:0i3<0i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
7
nrnr/apcar(s!voc=i>)0 cout33nr0 fin.close()0 return :0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. -
Se citesc n (n număr natural! n1) şi apoi n numere reale x1! x! ...! xn. Să se determine câte dintre cele n numere citite se află în afara intervalului încis determinat de numerele x1 şi xn. Exemplu:
pentru n/' şi numerele ! 0.&! )! (1! (-! (!! se afişea"ă valoarea (deoarece două dintre numerele date! cele suliniate! se află în afara intervalului determinat de numerele şi –!). Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor 1p al%oritm de re"olvare corect < p (tratarea amelor ca"uri ( x13xn i x1xn) 1p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 int n!I!i0 float aux!x=1::>0 int main() 6 fin44n0 I:0 for(i10i3n0i//) fin44x=i>0 if(x=1>4x=n>) 6 auxx=1>0 x=1>x=n>0 x=n>aux0 7 for(i0i3n0i//) if(x=i>3x=1> JJ x=i>4x=n>) I//0 cout33I0 return :07
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 2
Bin fişierul #$TE.T%T se citesc n şi m (n, m numere naturale! 03m3n3&000 ) de pe prima linie!apoi n numere naturale a1, a, 4, an de pe linia a doua şi apoi m numere naturale b1, b, 4, bm de pe linia a treia a fişierului. Să se verifice dacă şirul b citit de pe a treia linie a fişierului se poate oţine din şirul a (aflat pe a doua linie a fişierului) prin eliminarea unora dintre componentele şirului a. Să se scrie pro%ramul ce reali"ea"ă prelucrarea descrisă folosind un al%oritm eficient si afişea"ă pe ecran un mesaE corespun"ător. Exemplu: #$TE.T%T
&! 1'!1! '1!
Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fişier 1p al%oritm de re"olvare corect < p (eficienţa al%oritmului 1p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 2include 3iostream4 usin% namespace std0 ifstream fin(5numere.in5)0 int a=+::1>! =+::1>! i! x! verif! n! m0 int main() 6 fin44n44m0 for(i10 i3n0 i//) 6 fin44x0 a=x>//0 7 for(i10 i3m0 i//) fin44=i>0 for(i10 i3m TT verif:0 i//)
se afişea"ă mesaEul $b se poate obtine din a5
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(a==i>>4:) a==i>>0 else verif10 if (verif1) cout335 nu se poate otine din a50 else cout335 se poate otine din a50 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 10
Scrieţi un pro%ram care citeşte din fişierul text #$TE.T%T un şir 5 de maxim 1::.::: de numere naturale formate din exact două cifre fiecare şi afişea"ă distanţa maximă care există între două elemente e%ale ale şirului. Befinim distanţa dintre două elemente 5i si 5 6 prin modulul diferenţei indicilor celor două elemente! 76(i7. Bacă şirul conţine doar elemente distincte! distanţa cerută este :. Exemplu: #$TE.T%T
1< 1 1: 1: 1< 1+ 1: 1 9:
se afişea"ă P
Barem de corectare • • • • • •
declaraţii corecte 1p citirea corectă a datelor din fişier 1p (determinare corectă a distanţei dintre elemente 1p al%oritm de re"olvare corect )p afişare corectă a datelor 1p corectitudinea sintactică a pro%ramului 1p
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.txt5)0 int n!i!E!maxim!a=1::::1>0 int main() 6 maxim:0 i10 8ile(fin44a=i>) i//0 ni10 for(i10i3n0i//) for(Ei/10E3n0E//) if(a=i>a=E>) if(Ei4maxim) maximEi0 cout33maxim0 fin.close()0 return :0 7
;xplicaţii
(s/s-/1! -(/')
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 11 a. Scrieţi o definiţie completă pentru un supro%ram suma cu trei parametri U x! matrice pătratică cu elemente între%i0 U n! număr natural ce repre"intă numărul efectiv de linii şi coloane ale matricei x! VnV1:0 U p! număr natural! 1VpVn. Supro%ramul va returna suma elementelor aflate pe linia p a matricei. . Scrieţi un pro%ram care citeşte din fişierul matrice.in un număr natural n şi o matrice cu n linii şi n coloane şi afişea"ă în fişierul matrice.out indicii liniilor din matrice pentru care suma elementelor este număr par. Se va folosi supro%ramul definit la punctul a. Ex:
matrice.in
matrice.out
4 1 1 2 3
1 4 2 3 4 1 1 2 2 41 8 3 10 2
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct supro%ramul suma U ! puncte cele n apeluri ale supro%ramului U 1 punct verificarea parităţii re"ultatului returnat de supro%ram – 1 punct scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5matrice.in5)0 ofstream fout(5matrice.out5)0 int n!i!E!x=11>=11>0 int suma(int x=11>=11>! int n! int p) 6 int i!s:0 for(i10i3n0i//) ss/x=p>=i>0 return s0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
7 int main() 6 fin44n0 for(i10i3n0i//) for(E10E3n0E//) fin44x=i>=E>0 for(i10i3n0i//) if(suma(x!n!i)M:) fout33i335 50 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1 @e prima linie a fişierului date.in se %ăseşte un număr natural n! nV1::! iar a doua linie conţine un şir cu n numere naturale! separate prin cate un spaţiu. Sa se scrie în fişierul date.out toate numerele prime din sir! separate prin cate un spaţiu. Se va folosi o funcţie prim care verifica daca un număr natural! dat ca parametru de intrare! este număr prim. Ex:
date.in
date.out
5 12 2 123 41 77
2 41
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct funcţia prim U ! puncte cele n apeluri ale funcţiei U 1 punct verificarea re"ultatului returnat de funcţie – 1 punct scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 ofstream fout(5date.out5)0 int n!i!x0 int prim(int n) 6 if(n3) return :0 for(int d0d3nW0d//) if(nMd:) return :0 return 10 7 int main() 6 fin44n0 for(i10i3n0i//) 6 fin44x0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(prim(x)1) fout33x335 50
7 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1! Se citeşte de la tastatura un număr natural n! VnV1:. Să se construiască o matrice cu n linii şi n coloane care sa conţină pe fiecare linie cate o permutare a mulţimii 61!!-!n7! astfel încât pe linii diferite sa avem permutări diferite. Xatricea se va afişa pe ecran ca matrice.
Ex:
tastatură
ecran
4
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct %enerarea unei permutări pe fiecare linie U 1 punct %enerarea de permutări diferite pe linii diferite – punct al%oritm de re"olvare corect U puncte scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 usin% namespace std0 int n!i!E!I!a=11>=11>!nr!m0 int main() 6 cin44n0 for(i10i3n0i//) for(E10E3n0E//) a=i>=E>E0 m10 for(i0i3n0i//) 6 for(I10I3m0I//) 6 nra=i>=1>0 for(E10E3n0E//) a=i>=E>a=i>=E/1>0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
a=i>=n>nr0 7 m//0
7 for(i10i3n0i//) 6 for(E10E3n0E//) cout33a=i>=E>335 50 cout33GHnG0 7 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1) @e prima linie a fişierului date.in se %ăseşte un număr natural n! nV1::! iar a doua linie conţine un şir cu n numere naturale! separate prin cate un spaţiu. Sa se scrie în fişierul date.out toate numerele din şir care sunt termini din #irul lui Fionacci. Se va folosi o funcţie test8fibo care verifică daca un număr natural! dat ca parametru de intrare! este termen în şirul lui Fionacci (f 11! f 1! f nf n1/f n! pentru n4). Ex:
date.in 7 4 7 1 10 21 13 5
date.out 1 21 5
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct funcţia test_fibo U ! puncte cele n apeluri ale funcţiei U 1 punct verificarea re"ultatului returnat de funcţie – 1 punct scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 int n!x0 int fio(int n) 6 lon% a1!1!c0 if(n3*) return 10 8ile(a/3n) 6 ca/0 a0 c0 7 return(cn)0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
int main() 6 fin44n0 8ile(n4:) 6 fin44x0 if(fio(x))0 cout33x335 50 n0 7 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1& Se citesc din fişierul numere.in doua numere naturale a şi cu cel mult 9 cifre fiecare. Se cere sa se scrie în fişierul numere.out cel mai mare numărul natural care se poate forma cu toate cifrele celor doua numere. Ex:
numere.in
*P*1 <1K*
numere.out
KP<***11
Barem de corectare • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea corectă a cifrelor numerelor – puncte determinarea numărului maxim cu toate cifrele celor doua numere U ! puncte scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 ofstream fout(5numere.out5)0 int a!!i!I!fr=1:>0 int main() 6 fin44a440 8ile(a4:) 6 fr=aM1:>//0 aaW1:0 7 8ile(4:) 6 fr=M1:>//0 W1:0 7 for(i90i4:0i)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(fr=i>4:) for(I10I3fr=i>0I//) fout33i0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1' Bin fişierul numere.in se citesc! de pe prima linie! a"ele 1! ! şi * pentru trei sisteme de numeraţie! V1! ! *V9. Be pe a doua linie se citesc doua numere naturale x în a"a 1 şi în a"a . Sa se scrie în fişierul numere.out suma numerelor x şi în a"a * numere.in 2 5 3 110 213
numere.out 2101
Explicatii 1102= 6 2135=58 6+58=64 64=21013
Barem de corectare • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct trecerea numerelor x şi din a"ele 1! respectiv ! în a"a 1: U ! puncte calcularea sumei x/ şi trecerea ei în a"a * – puncte scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 ofstream fout(5numere.out5)0 int 1!!*0 lon% x!0 lon% convYY1:(lon% n! int ) 6 lon% nr:!p10 do 6 nrnr/nM1:Ap0 pA0 nW1:0 7 8ile(n)0 return nr0 7 lon% convY1:Y(lon% n! int ) 6 lon% nr:!p10 do
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
6
nrnr/nMAp0 pA1:0 nW0 7 8ile(n)0 return nr0
7 int main() 6 fin4414444*0 fin44x440 xconvYY1:(x!1)0 convYY1:(!)0 fout33convY1:Y(x/!*)0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1+
@e prima linie a fişierului date.in se %ăseşte un număr natural n! nV1::! iar a doua linie conţine un şir cu n numere naturale! separate prin cate un spaţiu. Sa se scrie în fişierul date.out toate numerele din şir pentru care suma cifrelor este divi"iila cu *. Se va folosi o funcţie recursive suma8cifre care calculea"ă şi returnea"ă suma cifrelor parametrului de intrare x.
Ex:
date.in 7 124 51 231 7 24 31 5
date.out 51 231 24
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct funcţia suma_cifre U ! puncte cele n apeluri ale funcţiei U 1 punct verificarea re"ultatului returnat de funcţie – 1 punct scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 ofstream fout(5date.out5)0 int n!i!x0 int sumaYcifre(int n) 6 if(n:) return :0 else return nM1:/sumaYcifre(nW1:)0 7 int main() 6 fin44n0 for(i10i3n0i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
6
fin44x0 if(sumaYcifre(x)M*:) fout33x335 50
7 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1-
Qn fişierul multimi.in se dau! pe prima linie! două numere naturale n şi m separate printrun spaţiu! Vn!mV1::! iar pe următoarele două linii! separate prin cate un spaţiu! în ordinea strict crescătoare! elementele a doua mulţimi de numere naturale! Se cere să scrie în fişierul multimi.out! în ordine strict crescătoare! elementele reuniunii celor doua mulţimi. Ex:
multimi.in 6 4 1 3 4 7 10 43 3 5 10 37
multimi.out 1 3 4 5 7 10 37 43
Barem de corectare • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct construirea corecta a reuniunii celor doua mulţimi U ) puncte scrierea re"ultatelor cerute U puncte corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ifstream fin(5multimi.in5)0 ofstream fout(5multimi.out5)0 int n!m!i!E!a=1:1>!=1:1>0 int main() 6 fin44n44m0 for(i10i3n0i//) fin44a=i>0 for(E10E3m0E//) fin44=E>0 i10E10 fin44a=i>0 fin44=E>0 8ile(i3n TT E3m) 6 if(a=i>3=E>)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
6
7
fout33a=i>335 50 i//0 7 else if(a=i>4=E>) 6 fout33=E>335 50 E//0 7 else 6 fout33a=i>335 50 i//0 E//0 7 7 8ile(i3n) 6 fout33a=i>335 50 i//0 7 8ile(E3m) 6 fout33=E>335 50 E//0 7 fin.close()0 fout.close()0 return :0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 12 Scrieţi un pro%ram care citeşte de pe prima linie a fişierului date.in un număr natural n iar de pe următoarele linii o matrice cu n linii şi n coloane conţinând numere naturale şi modifica matricea în felul următor toate elementele liniilor care conţin valoarea maximă vor fi mărite cu valoarea minimă din matrice. Scrieţi în fişierul date.out matricea astfel oţinută. Ex:
date.in 4 2 2 3 5
5 2 2 3
3 4 2 5
2 4 2 2
date.out 4 2 3 7
7 2 2 5
5 4 2 7
4 4 2 4
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea corectă a valorii maxime U puncte determinarea corectă a valorii minime – 1 punct identificarea liniilor ce treuiesc modificate şi modificarea lor U puncte scrierea re"ultatelor cerute U 1 puncte corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5date.in5)0 ofstream fout(5date.out5)0 int n!i!E!minim!maxim!oI!a=1::>=1::>0 int main() 6 fin44n0 for(i10i3n0i//) for(E10E3n0E//) fin44a=i>=E>0 minima=1>=1>0 maxima=1>=1>0 for(i10i3n0i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
7
for(E10E3n0E//) 6 if(a=i>=E>3minim) minima=i>=E>0 if(a=i>=E>4maxim) maxima=i>=E>0 7 for(i10i3n0i//) 6 oI:0 for(E10E3n0E//) if(a=i>=E>maxim) oI10 for(E10E3n TT oI10E//) a=i>=E>a=i>=E>/minim0 7 for(i10i3n0i//) 6 for(E10E3n0E//) fout33a=i>=E>335 50 fout33GHnG0 7 fin.close()0 fout.close()0 return :0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 0 Se citesc din fişierul numere.in două numere naturale a şi cu cel mult 9 cifre fiecare. Se cere să se scrie în fişierul numere.out cel mai mic numărul natural care se poate forma cu toate cifrele celor două numere. Ex:
numere.in
*P*1 <1K*
numere.out
11***
Barem de corectare • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea corectă a cifrelor numerelor – puncte determinarea numărului minim cu toate cifrele celor doua numere U ! puncte scrierea re"ultatelor cerute U 1 punct corectitudinea sintactică a pro%ramului U 1 punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 ofstream fout(5numere.out5)0 int a!!i!I!fr=1:>0 int main() 6 fin44a440 8ile(a4:) 6 fr=aM1:>//0 aaW1:0 7 8ile(4:) 6 fr=M1:>//0 W1:0 7 for(i:0i390i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(fr=i>4:) for(I10I3fr=i>0I//) fout33i0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 1 Bin fişierul text doc.txt se citeşte un text care conţine informaţii despre mai multe persoane! su o formă nestructurată. Qnformaţiile sunt dispuse pe linii de maxim :: de caracte şi pot conţine Z?@ uri valide. #tiid că Z?@ul unei persoane este un şir de 1* cifre consecutive! să se scrie în fişierul text cnp.txt! pe linii distincte! toate Z?@urile extrase din text. Bacă nu există nici un astfel de şir! se va scrie în fişier valoarea :. Ex:
doc.txt
cnp.txt
Popesu Grigore, 14 ani, 1991212122334; Gigel Banu – 1031102453435, Bujorului 7; ana !arin" 2690405358687, #ara $i%a, 2450609987654 & 'ane oe
1991212122334 1031102453435 2690405358687 2450609987654
doc.txt
cnp.txt 0
Popesu Grigore, 14 ani, 1991212134; Gigel Banu – 103110245Bujorului 7; ana !arin" 269&04&05&358687, #ara $i%a, 2+450609+987654 & 'ane oe
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct identificarea corectă a unui Z?@ în şir U puncte determinarea corectă a situaţiei în care nu există Z?@ valid – 1 punct al%oritm de re"olvare corect U puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 2include 3cstrin%4 usin% namespace std0 ifstream fin(5doc.txt5)0 ofstream fout(5cnp.txt5)0 car s=:1>!Ap0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
int n0 int main() 6 8ile(fin44s) 6 nstrlen(s)0 pstrtoI(s!5 !.05)0 8ile (p[:) 6 if(strlen(p)1* TT p=:>4G:G TT p=:>3G9G) cout33p33GHnG0 pstrtoI(:!5 !.05)0 7 7 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. Se citesc din fişierul text numere.in, din prima linie n! numărul de numere apoi din următoarea linie n numere naturale din intervalul =1:! 1: 9>! separate prin câte un spaţiu. Să se afişe"e pe ecran! dacă există! numerele rotunde! câte două pe o linie! separate prin spaţii. Bacă nu există astfel de numere se va afişa :. Spunem că un număr x este rotund dacă există un număr natural nenul 9 ! mai mic strict decât numărul de cifre al lui x! astfel încât prin permutarea circulară a cifrelor numărului cu 9 po"iţii la dreapta! să se oţină numărul iniţial. Ex:
numere.in
Ecran
5 12 3232 123 144144 77
2323 144144 77
numere.in
Ecran
3 11211 45678 232
0
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct construirea corectă a unui nou număr prin permutarea circulară a cifrelor U puncte verificarea situaţiei când 9 4numărul de cifre ale lui n – 1 punct al%oritm de re"olvare corect U puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 2include 3cmat4 usin% namespace std0 ifstream fin(5numere.in5)0 int n!i!E0 lon% x0 int rotund(lon% x) 6 int c0 lon% ax! p0 c(int)(lo%1:(x))/10 ppo8(1:!c1)0 for(int i10 i3c0 i//) 6 aaM1:Ap/aW1:0
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(ax) return 10 7 return :0
7 int main() 6 fin44n0 E:0 for (i10 i3n0 i//) 6 fin44x0 if (rotund(x)[:) 6 cout33x33G G0 E//0 if(EM:) cout33GHnG0 7 7 if(E:) cout33G:G0 fin.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. ! @entru numerotarea pa%inilor unei serii eciclopedice! formate din unul sau mai multe volume! se presupune ca se folosesc n cifre. Fiecare volum are *:: de pa%ini! cu excepţia eventual a celui din urmă care ar putea avea mai puţine. ?umerotarea pa%inilor incepe cu 1 în fiecare volum. Se citeşte de la tastatură n! numărul de cifre (13n31::::::::). Bacă este posiil! să se determine şi să scrie în fişierul text pag.txt, pe linii distincte! numărul de volume din serie şi numărul de pa%ini ale ultimului volum. Bacă nu este posiil se va scrie mesaEul ;P<5B=. Ex:
tastatură
pag.txt
999
2 105
tastatură
pag.txt
900
(!P)*(B(
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea numărului de cifre folosite în numerotarea unui volum U 1 punct determinarea corectă a tututror situaţiilor în care este imposiilă numerotarea – punct al%oritm de re"olvare corect U puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3iostream4 2include 3fstream4 usin% namespace std0 ofstream fout(5pa%.txt5)0 int n!nrv!nrp!oI0 int main() 6 cin44n0 nrv:0 8ile(n4K9) 6 nrv//0 nnK90 7 nrv//0 oI10
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(n39) nrpn0 else if(n31,9) 6 if((n9)M:) nrp9/(n9)W0 else oI:0 7 else if(n3K9) 6 if((n1,9)M*:) nrp99/(n1,9)W*0 else oI:0 7 if(oI1) fout33nrv33GHnG33nrp0 else fout335Qmposiil50 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. ) @entru cadourile pe care Xoş Zrăciun urmea"ă să le cumpere copiilor cuminţi! Zonsiliul @olului ?ord a alocat suma de 5 eureni (13S3::::::::). #tiind că în comerţul polar se utili"ea"ă n tipuri de ancnote (13n31:) de valori 1! e 1! e ! e *!...! en (evaloarea de a"ă a euren! număr natural de cel mult * cifre! dat) şi faptul că Xoşul treuie să primească un număr minim de ancnote pentru suma aproată! să se determine numărul de ancnote din fiecare tip utili"at în plata sumei şi numărul total de ancnote care i sau alocat. Bin fişierul text eur.in! de pe prima linie! separate prin câte un spaţiu! se citesc! 5, n, e. În fişierul text eur.out se vor scrie! pe linii diferite! numărul de ancnote (nenul) care vor fi utili"ate din fiecare tip (ca în exemplu)! iar pe ultima linie! numărul total de ancnote cu care se va plăti suma. Ex:
eur.in 107 4 5
eur.out 4 an-no.e -u $aloarea 25 1 an-no.e -u $aloarea 5 2 an-no.e -u $aloarea 1 7
Barem de corectare • • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct calcularea corectă a valorii maxime e/ V S ! 1VIVn U 1 punct calcularea corectă a numărului de ancnote din fiecare tip ce intră în plata sumei – 1 punct calcularea corectă a numărului de total de ancnote ce intră în plata sumei – punct al%oritm de re"olvare corect U 1 puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5eur.in5)0 ofstream fout(5eur.out5)0 int n!e!nr!i0 lon% s!p0 int main() 6 fin44s44n44e0 nr:0p10 for(i10i3n0i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
ppAe0 8ile(s4:) 6 if(sWp[:) 6 fout33sWp335 ancnote de valoare 533p33GHnG0 nrnr/sWp0 7 ssMp0 ppWe0 7 fout33nr0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. & În fişierul text numere.in sunt cel mult 999, de numere naturale nenule! distincte. Scrieţi un pro%ram ZWZ// eficient din punct de vedere al timpului de execuţie! care să scrie în fişierul numere.out! pe o linie! în ordine descrescătoare! separate prin câte un spaţiu! numerele naturale nunule! de cel mult < cifre! care nu apar în fişierul numere.in. Ex:
numere.in 107 4 5 8 1 6 9
numere.out 9999 9998 108 106 105 10 7 6 3 2
Barem de corectare • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea corectă a numerelor care nu apar în fişier – 1 punct al%oritm de re"olvare corect şi eficient U ! puncte afişare corectă! în ordine descrescătoare! a datelor U punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5numere.in5)0 ofstream fout(5numere.out5)0 int n!i!fr=9999>0 int main() 6 8ile(fin44n) fr=n>//0 for(i99990i410i) if(fr=i>:) fout33i335 50 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. ' Scrieţi un pro%ram ZWZ// eficient din punct de vedere al timpului de execuţie! care %enerea"ă şi scrie în fişierul text munte.txt! pe prima linie! separate prin câte un spaţiu! toate palindroamele( munte de nouă cifre (un palindrom de are aspect de munte daca cifrele sale sunt strict crescătoare până la Eumătatea numărului. ;\. 1*<+<*1). @e a doua linie în fişier se va scrie numărul de palindroamemunte %enerate. Barem de corectare • • • • • •
declarări corecte de date U 1 punct %enerarea unui palindrommunte corect U puncte calculatrea corectă a numărului total de palindroamemunte – 1 punct al%oritm de re"olvare corect şi eficient U ! puncte afişare corectă a datelor U 1 puncte corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
WWal%oritm acItracIin% de cominari 2include 3iostream4 2include 3fstream4 usin% namespace std0 ofstream fout(5munte.txt5)0 int n!p!v=1::>!nr:0 int solutie(int I) 6 if(I+) return 10 return :0 7 void afisare(int I) 6 int i0 for(i10i3I0i//) fout33v=i>0 for(iI10i410i) fout33v=i>0 fout33G G0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
void D](int I! int Tnr) 6 int i0 for(iv=I1>/10i390i//) WWla pasul I selectăm din mulţime un element mai mare decât elementul 6 v=I>i0 WWde pe po"iţia I1 if(solutie(I)) WWnu este necesar să verificam condiţiile de continuare! ele sunt respectate 6 afisare(I)0 WWdatorită modului în care am selectat elementele. nr//0 7 else D](I/1! nr)0 7 7 int main() 6 D](1!nr)0 fout33GHnG33nr0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. + Bin fişierul text mat.in se citesc doua numere naturale n, m (13n3*:! 13m3*: ) apoi elementele între%i ale unei matrici de dimensiune nAm. Scrieţi un pro%ram ZWZ// care modifică matricea astfel toate elementele e%ale cu valoarea maximă din matrice se înlocuiesc cu valoarea minimă de pe coloana lor. Bacă sa făcut măcar o înlocuire! matricea re"ultată se va scrie în fişierul text mat.out, altfel matricea nu se va scrie în fişierul de ieşire. @e ultima linie în fişierul de ieşire se va scrie numărul de sustituţii efectuate. Ex:
mat.in 3 5 2 6 7 3 7 1 7 1 5 3 1 2
mat.out 2 6 1 3 2 1 1 1 5 3 1 2 3
Barem de corectare • • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct identificarea corectă a valorii maxime din matrice U 1 punct identificarea corectă a valorii minime de pe o coloană dată din matrice U 1 punct determinarea corectă a situaţiei în care nu se reali"ea"ă înlocuiri – 1 punct al%oritm de re"olvare corect U puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 usin% namespace std0 ifstream fin(5mat.in5)0 ofstream fout(5mat.out5)0 int n!m!i!E!minim!maxim!nr!a=1::>=1::>0 int main() 6 fin44n44m0 for(i10i3n0i//) for(E10E3m0E//) fin44a=i>=E>0 maxima=1>=1>0 for(i10i3n0i//) for(E10E3m0E//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
if(a=i>=E>4maxim) maxima=i>=E>0 nr:0 for(E10E3m0E//) 6 minima=1>=E>0 for(i0i3n0i//) if(a=i>=E>3minim) minima=i>=E>0 for(i10i3n0i//) if(a=i>=E>maxim) 6 a=i>=E>minim0 nr//0 7 7 for(i10i3n0i//) 6 for(E10E3m0E//) fout33a=i>=E>335 50 fout33GHnG0 7 fout33nr0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. Se citesc din fişierul text numere.in! din prima linie n! un număr natural nenul! pătrat perfect! n31::::! apoi! din linia următoare! separate prin câte un spaţiu! n numere între%i de cel mul < cifre. Să se construiască în memorie o matrice pătratică cu toate elementele din fişierul de intrare! în spirală! în sens invers acelor de ceas astfel pe prima coloană! începând cu linia 1! se vor trece primele elemente din şir (de sus în Eos)! apoi pe ultima linie! începând de la prima coloană până la ultima (de la stân%a la dreapta)! apoi pe ultima coloană! de la ultima linie la prima (de Eos în sus)! apoi pe prima linie! de la ultima coloană la prima (de la dreapta la stân%a) şamd. Xatricea construită astfel se va scrie în fişierul numere.out. Ex:
numere.in 9 2 6 7 3 7 1 7 1 5
numere.out 2 1 7 6 5 1 7 3 7
Barem de corectare • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct determinarea corectă a dimensiunii matricii! dacă e posiil U 1 punct construirea corectă a unei $spire& U puncte al%oritm de re"olvare corect U puncte
2include3fstream4 2include3cmat4 usin% namespace std0 ifstream fin (5numere.in5)0 ofstream fout(5numere.out5)0 int a=1::>=1::>!x!l!c!n!m!i!E0 int main() 6 fin44n0 msLrt(n)0 for (i10 i3mW0 i//) 6 for (Ei0 E3mi/10 E//) fin44a=E>=i>0 for (Ei0 E3mi/10 E//) fin44a=mi/1>=E>0 for (Emi/10 E4i0 E) fin44a=E>=mi/1>0 for (Emi/10 E4i0 E) fin44a=i>=E>0 7 if(mM) fin44a=mW/1>=mW/1>0 for (i10 i3m0 i//)
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
6
for (E10 E3m0 E//) fout33a=i>=E>33G G0 fout33GHnG0
7 fin.close()0 fout.close()0 return :0 7 • afişare corectă a datelor U 1punct • corectitudinea sintactică a pro%ramului U 1punct "otă Se acordă 1 punct din oficiu.
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. 2 Bin fişierul text date.in se citeşte un text format din cuvinte separate prin spaţii sau caractere de forma .,>:(?@. 'un%imea unei linii din fişier nu depăşeşte ++ caractere. Să se scrie în fişierul text date.out! pe linii diferite! cuvintele distincte din text care conţin suşirul ^ ateA! fără a face distincţie între litere mari şi mici. Ex:
date.in a-a sa.eli.ii nu sun. a-.i$i, GP*&ul nu #un-.ionea%a
& i $a%u. -a.e -u$in.e ar-a.e sun. Poa.e es.i si .u a.en. a.e sun.
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct identificarea corectă a unui cuvânt din şir U 1 puncte determinarea corectă a unui cuvânt care conţine suşirul ^ate_ – 1 punct al%oritm de re"olvare corect U puncte afişare corectă! doar a cuvintelor distincte U puncte corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include3fstream4 2include3cstrin%4 usin% namespace std0 ifstream fin (5date.in5)0 ofstream fout(5date.out5)0 car s=+P>!Ap!sep=>5 .!0[`5!c=+P>!a=1::>=:>0 int n!i0 int cauta(car a=1::>=:>!int n!car Ac) 6 for(int i:0i3n0i//) if(stricmp(a=i>!c):) return 10 return :0 7
date.out sateli.ii -ate ar-ate Poate aten.
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
int main() 6 8ile([fin.eof()) 6 fin.%etline(s!++)0 pstrtoI(s!sep)0 8ile(p) 6 if(strstr(p!5ate5)) if(cauta(a!n!p):) strcp(a=n//>!p)0 pstrtoI(?O''!sep)0 7 7 for(i:0i3n0i//) fout33a=i>33GHnG0 fin.close()0 fout.close()0 return :0 7
Examen pentru obţinerea atestatului profesional în informatică Tema: Programare – intensiv
Biletul nr. !0 Scrieţi un pro%ram @ascalWZWZ// care re"olvă în mulţimea Z*Z ecuaţia x2=n+ y2, unde n este un număr natural nenul! dat de la tastatură (1
Tastatura 15
date.out 8 8 &8 &8 4 4 &4 &4
7 &7 7 &7 1 &1 1 &1
Barem de corectare • • • • • • •
declarări corecte de date U 1 punct citirea corectă a datelor U 1 punct identificarea divi"orilor lui n! mai mici decât n U 1 punct determinarea corectă valorilor naturale x şi în funcţie de divi"ori – punct al%oritm de re"olvare corect U puncte afişare corectă a datelor U 1punct corectitudinea sintactică a pro%ramului U 1punct
"otă Se acordă 1 punct din oficiu.
2include 3fstream4 2include 3iostream4 2include 3cmat4 usin% namespace std0 ofstream fout(5date.out5)0 int r!x!!n!d!I0 int main() 6 cin44n0 rsLrt(n)0 for(d10d3r0d//) if(nMd:) 6 InWd0 if(nMdnMI) 6 x(d/I)W0 (dI)W0