Sunteți pe pagina 1din 33

Judetul DAMBOVITA BILETELE

Atestat profesional la Informatica

pentru susinerea probei practice n vederea obinerii atestatului profesional la informatic - sesiunea mai 2008 conform metodologiei aprobat cu OM 5149/2002 -

B!" !ubiectul nr#$ se re%olva in unul din mediile impuse de cerinte&'ord( E)cel( *o+er*oint( 'indo+sE)plorer etc#, !ubiectul nr#2 se poate re%olva in oricare din urmatoarele" -o)*ro( .isual-o)( /ccess( !ubiectul nr#0 se poate re%olva in oricare din urmatoarele limba1e" *ascal( 2( 233 racle

Judetul DAMBOVITA Biletul nr# $

Atestat profesional la Informatica

3. De la tastatur se citete un numr natural n, n<30000. Scriei un program care determin divizorii lui n, precum i numrul divizorilor primi care apar n descompunerea lui n. Datele de ieire se scriu n fiierul te t out.t t astfel ! pe prima linie, toi divizorii lui n, separai printr-un caracter spaiu" pe a doua linie, numrul divizorilor primi ai lui n. # emplu ! pentru n$%0, fiierul out.t t este % & ' %0 3 #include <fstream.h> #include <math.h> //1 nu este nici nr prim, nici nr compus!!! int prim (int x) {if (x<=1) return 0 else {for (int cont=! cont"cont<=x cont##) if (x$cont==0) return 0 return 1 % % &oid main () {lon' n int nr=0 ofstream fout((out.txt() fout<<1<<( ( do {cout<<(n=( cin>>n % )hile (n>=*00000) for (int i=! i<=n/! i##) if (n$i==0) {fout<<i<<( ( if (prim (i)==1) nr## % fout<<n<<endl<<nr<<endl fout.close() %

Judetul DAMBOVITA Biletul nr#2

Atestat profesional la Informatica

3. (n numr este superprim dac numrul i toate prefi ele sale sunt numere prime. S se genereze primele n numere superprime. # emplu ! &33) este superprim pentru ca &33), &33, &3 i & sunt numere prime. #include <iostream.h> //nr superprime lon' n int prim (lon' n) {if (n<!) return 0 else {for (int i=! i"i<=n i##) if (n$i==0) return 0 return 1 % % int superprim (lon' n) {if (prim (n)==0) return 0 else {if (n>1 ++ n<10) return 1 else return prim (n/10) % % &oid main () {cout<<(n=( cin>>n lon' cont=!, n1=0 )hile (n1<n) {if (superprim (cont)==1) {cout<<cont<<( ( n1## % cont## % cout<<endl %

Judetul DAMBOVITA Biletul nr#0

Atestat profesional la Informatica

3. Scriei un program care calculeaz media aritmetic a tuturor numerelor palindrom din intervalul *a,+,, unde a i + sunt numere naturale citite de la tastatur, a<+. -rogramul va utiliza un su+program care verific dac un numr este palindrom. (n numr este palindrom dac citit de la st.nga la dreapta este acelai cu numrul citit de la dreapta la st.nga.

#include <iostream.h> lon' a, ,, n int pal (lon' n) {if (n>=0 ++ n<=-) return 1 else {lon' n1=n, m=0 )hile (n1!=0) {m=m"10#n1$10 n1/=10 % if (m==n) return 1 else return 0 % % &oid main () {cout<<(a=( cin>>a float s=0 int nr=0 do {cout<<(,=( cin>>, % )hile (,<=a) for (lon' i=a#1 i<=,.1 i##) if (pal(i)) {s#=i nr## % if (nr==0) cout<<(/u exista palindroame(<<endl else cout<<(float)(s/nr)<<endl %

Judetul DAMBOVITA Biletul nr#4

Atestat profesional la Informatica

3. Se citete de la tastatur un ir de n numere naturale de ma im ) cifre *n<$%00,. S se afieze pe ecran numerele care au cifra de control * se citete de la tastatur, 0<$ <$),. Se va utiliza un su+program care determin suma cifrelor unui numr natural. /ifra de control a unui numr se o+ine fc.nd suma cifrelor numrului, apoi se realizeaz suma cifrelor sumei numrului, .a.m.d. p.n c.nd se o+ine ca sum un numr de o cifr. # emplu ! cifra de control a lui %'0 se o+ine astfel ! calculm suma cifrelor lui %'0, %1'10$%&, apoi suma cifrelor lui %&, %1&$3" deci %'0 are cifra de control 3.

#include <iostream.h> //cifra de control int scif (lon' copie) {int s=0, n1=copie )hile (n1!=0) {s#=n1$10 n1/=10 % return s % &oid main () {int n, x, sc, nr=0 lon' &01001 cout<<(n=( cin>>n do {cout<<(x=( cin>>x % )hile (x>-) for (int i=1 i<=n i##) cin>>&0i1 for (i=1 i<=n i##) {lon' copie=&0i1 )hile (copie>10) copie=scif (copie) if (copie==x) {cout<<&0i1<<( ( nr## % % if (nr==0) cout<<(/u exista nr care sa indepineasca conditia(<<endl %

Judetul DAMBOVITA Biletul nr#5

Atestat profesional la Informatica

3. S se verifice dac elementele unui ta+lou unidimensional cu n elemente numere naturale de ma im & cifre, reprezint o mulime *n sensul cunoscut de la matematic, adic numerele din ta+lou sunt distincte dou c.te dou,. Dac nu, s se transforme acest ta+lou n mod corespunztor. # emplu ! pentru n$%& i v$*%,&,)0,2,&,%0,',%,&0,%3,&,3, nu este mulime. -rin transformare acestuia n mulime *se elimin elementele care apar de mai multe ori i se ordoneaz irul, se o+ine ! v$*%,&,3,2,',%3,%0,&0,)0,.

#include <iostream.h> &oid main () {int n cout<<(n=( cin>>n int &01001, i for (i=1 i<=n i##) cin>>&0i1 i=1 int n1=n, o2 )hile (i<n1) {o2=1 for (int 3=i#1 3<=n1 ++ o2==1 3##) if (&0i1==&031) o2=0 if (o2==0) {for (3=i 3<n1 3##) &031=&03#11 n1.. % else i## % if (n1==n) cout<<(4ste o multime(<<endl else cout<<(/u este o multime(<<endl //sortare do {o2=1 for (i=1 i<n1 i##) if (&0i1>&0i#11) {o2=0 int aux=&0i1 &0i1=&0i#11 &0i#11=aux % % )hile (o2==0) for (i=1 i<=n1 i##) cout<<&0i1<<( ( cout<<endl %

Judetul DAMBOVITA Biletul nr#6

Atestat profesional la Informatica

3. Se consider un ta+lou +idimensional cu n linii i m coloane *n, m <$%0,, completat cu numere ntregi. S se determine cel mai mare element numr ntreg, n valoare a+solut, precum i indicele3indicii liniei3coloanei *liniilor3coloanelor, din matrice ce conine *conin, elementul ma im. Datele de intrare se citesc din fiierul te t in.t t organizat astfel ! pe prima linie - dou numere, n i m, separate printr-un caracter spaiu" pe urmtoarele n linii, c.te m numere ntregi separate printr-un caracter spaiu pe fiecare linie. Datele de ieire se scriu n fiierul out.t t organizat astfel ! pe prima linie valoarea a+solut a elementului ma im, iar pe urmtoarele linii, pe fiecare linie, c.te dou numere naturale, separate printr-un caracter spaiu, care reprezint indicii liniei i coloanei pe care se afl ma imul. # emplu ! pentru fiierul in.t t fisierul out.t t va fi ! 32 4 4 ' & 2 %% % 3 -4 0 &3 3 4 0 & 3&

#include <fstream.h> &oid main () {int m, n, a01110111, max, i, 3 ifstream fin ((in.txt() ofstream fout ((out.txt() fin>>n>>m for (i=1 i<=n i##) for (3=1 3<=m 3##) fin>>a0i1031 max=a011011 fin.close() for (i=1 i<=n i##) for (3=1 3<=m 3##) if (a0i1031>max) max=a0i1031 for (i=1 i<=n i##) for (3=1 3<=m 3##) if (a0i1031==max) fout<<i<<( (<<3<<endl fout.close() %

Judetul DAMBOVITA Biletul nr#7

Atestat profesional la Informatica

3. De la tastatur se citete un cuv.nt de ma im %' caractere. S se construiasc toate prefi ele i sufi ele cuv.ntului dat. Datele de ieire se scriu n fiierul out.t t astfel ! - pe prima linie cuv.ntul citit de la tastatur" - pe a doua linie toate prefi ele cuv.ntului, unul dup altul, n ordinea generrii, separate de un caracter spaiu" - pe a treia linie toate sufi ele cuv.ntului, unul dup altul, n ordinea generrii, separate de un caracter spaiu. # emplu ! pentru cuv.ntul -5S/56, fiierul out.t t conine ! -5S/56 - -5 -5S -5S/ -5S/5 -5S/56 6 56 /56 S/56 5S/56 -5S/56

#include <fstream.h> #include <strin'.h> //prefixe si sufixe ale unui cu&ant &oid main () {char c0151 cin.'et (c, 15) ofstream fout((out.txt() fout<<c<<endl int l=strlen(c), i, 3 for (i=0 i<l i##) {for (3=0 3<=i 3##) fout<<c031 fout<<( ( % fout<<endl for (i=l.1 i>=0 i..) fout<<c#i<<( ( fout<<endl fout.close() %

Judetul DAMBOVITA Biletul nr#8

Atestat profesional la Informatica

3. Se consider un ta+lou +idimensional cu n linii i m coloane *n, m <$%0,, completat cu numere ntregi. S se determine suma elementelor de pe fiecare linie, respectiv de pe fiecare coloan a ta+loului. Datele de intrare se citesc din fiierul te t in.t t organizat astfel ! pe prima linie - dou numere, n i m, separate printrun caracter spaiu" pe urmtoarele n linii, c.te m numere ntregi separate printr-un caracter spaiu pe fiecare linie. Datele de ieire se scriu n fiierul out.t t organizat astfel ! pe prima linie - n numere ntregi, separate printr-un caracter spaiu, care reprezint suma elementelor de pe cele n linii ale ta+loului" pe a doua linie - m numere ntregi, separate printr-un caracter spaiu, care reprezint suma elementelor de pe cele m coloane ale ta+loului. # emplu ! pentru fiierul in.t t fisierul out.t t va fi ! 32 %7 3 &0 4 ' & 2 %% %' 3 %& % 3 -4 0 3 4 7 &

#include <fstream.h> &oid main () {ifstream fin ((in.txt() ofstream fout((out.txt() int m, n, i, 3, a01110111 fin>>n>>m for (i=1 i<=n i##) for (3=1 3<=m 3##) fin>>a0i1031 fin.close() //suma pe linii int sl for (i=1 i<=n i##) {sl=0 for (3=1 3<=m 3##) sl#=a0i1031 fout<<sl<<( ( % fout<<endl //suma pe coloane int sc for (3=1 3<=m 3##) {sc=0 for (i=1 i<=n i##) sc#=a0i1031 fout<<sc<<( ( % fout<<endl fout.close() %

Judetul DAMBOVITA Biletul nr#8

Atestat profesional la Informatica

3. /erine! a, Scriei un su+program care primete la intrare un numr natural dat, n, de ma im ) cifre, i ntoarce suma cifrelor acestui numr. +, S se utilizeze acest su+program pentru a calcula suma cifrelor numrului o+inut n urma efecturii sumei 6 = 1 + ! + * + ...x , unde este un numr natural citit de la tastatur.

#include <iostream.h> //a lon' n int s7cif (lon' n) {int s=0 )hile (n!=0) {s#=n$10 n/=10 % return s % //, &oid main () {lon' x cout<<(x=( cin>>x cout<<s7cif ((x"(x#1))/!)<<endl %

10

Judetul DAMBOVITA Biletul nr#$0

Atestat profesional la Informatica

3. 8 matrice cu p linii i 9 coloane se completeaz cu numere ntregi citite de la tastatur. S se intersc:im+e elementele coloanelor i ; * i ; sunt numere naturale citite de la tastatur,. Dac matricea este ptrat s se verifice dac elementele de pe diagonala principal sunt ordonate cresctor.

#include <iostream.h> int p, 8, a0100101001, x, 9, i, 3 &oid schim,a (int x, int 9) {int aux for (i=1 i<=p i##) {aux=a0i10x1 a0i10x1=a0i1091 a0i1091=aux % % int &erifica (int p) {int o2=1 for (i=1 i<p i##) if (a0i10i1>a0i#110i#11) o2=0 return o2 % &oid main () {cout<<(p=( cin>>p cout<<(8=( cin>>8 for (i=1 i<=p i##) for (3=1 3<=8 3##) cin>>a0i1031 cout<<(x=( cin>>x cout<<(9=( cin>>9 if (p==8) {if (&erifica (p)==0) cout<<(4lementele nu sunt in ordine crescatoare(<<endl else cout<<(4lementele sunt in ordine crescatoare(<<endl % schim,a (x, 9) for (i=1 i<=p i##) {for (3=1 3<=8 3##) cout<<a0i1031<<( ( cout<<endl % %

11

Judetul DAMBOVITA Biletul nr#$$

Atestat profesional la Informatica

3. /erinte! a, S se scrie un su+program recursiv care primete la intrare dou numere naturale a i + i ntoarce valoarea a , . +, S se utilizeze su+programul pentru calculul valorii e presiei ! 4 (p, 8, 2 ) = unde p, 9 i < sunt numere naturale citite de la tastatur.
p1 + p ! + p * + ... + p 2 81 8 ! 8 * ... 8 2

#include <iostream.h> int a, , lon' put (int a, int ,) {if (,==0) return 1 else return a " put(a, ,.1) % &oid main () {int p, 8, 2 cout<<(p=( cin>>p cout<<(8=( cin>>8 cout<<(2=( cin>>2 lon' s1=0, p1=1 for (int i=1 i<=2 i##) {s1#=put (p, i) p1"=put (8, i) % cout<<(float)s1/p1<<endl %

12

Judetul DAMBOVITA Biletul nr#$2

Atestat profesional la Informatica

3. /erinte! a, S se scrie un su+program care calculeaz termenul de ordinul < al irului =i+onacci. +, S se utilizeze acest su+program pentru a calcula suma 6 = fi,(1) + fi,(*) + fi,(:) + ... + fi,( n ) , unde n se citete de la tastatur i este impar.
1 1 >ermenul de ordinul < al irului se definete astfel ! f (2 ) = f (2 1) +f ( 2 !) pentru 2 =1 pentru 2 = ! pentru 2 > !

#include <iostream.h> lon' fi, (int 2) {if ( (2==1) ;; (2==!)) return 1 else return (fi, (2.1)#fi, (2.!)) % &oid main () {int n, i do {cout<<(n=( cin>>n % )hile (n$!==0) lon' s=0 for (i=1 i<=n i##) s#=fi, (i) cout<<s<<endl %

13

Judetul DAMBOVITA Biletul nr#$0

Atestat profesional la Informatica

3. =iierul te t in.t t conine mai multe linii, pe fiecare linie fiind memorat un numr natural de o cifr. /onsider.nd c aceste numere sunt cifrele unui numr natural, s se determine acest numr. S se adauge acest numr la sf.ritul fiierului in.t t.

#include <fstream.h> ifstream fin ((in.txt() fstream f ((in.txt(, ios<<app) &oid main () {int n=0, c )hile (fin>>c) n=n"10#c fin.close() f<<endl<<n<<endl %

14

Judetul DAMBOVITA Biletul nr# $4

Atestat profesional la Informatica

3. =iierul te t in.t t conine mai multe linii, pe fiecare linie fiind memorat un numr natural de ma im 2 cifre. S se calculeze suma numerelor care sunt neprime. S se adauge la sf.ritul fiierului in.t t nc o linie care conine aceast sum.

#include <fstream.h> ifstream fin ((in.txt() fstream f ((in.txt(, ios<<app) int prim (int n) {if (n<=1) return 0 else {int o2=1 for (int 3=! 3"3<=n 3##) if (n$3==0) o2=0 return o2 % % &oid main () {lon' s=0 int a, nr=0 )hile (fin>>a) if (prim(a)==0) {s#=a nr## % fin.close() if (nr==0) f<<(/u exista numere neprime(<<endl else f<<endl<<s<<endl f.close() %

15

Judetul DAMBOVITA Biletul nr# $5

Atestat profesional la Informatica

3. Se consider o matrice a cu m linii i n coloane *m, n <$%0,, cu elemente numere reale. S se calculeze urmtoarele trei sume ! - suma elementelor din matrice care au 3 vecini" - suma elementelor din matrice care au ' vecini" - suma elementelor din matrice care au 7 vecini. Datele de intrare se citesc din fiierul te t in.t t organizat astfel ! pe prima linie - dou numere, n i m, separate printr-un caracter spaiu" pe urmtoarele n linii, c.te m numere ntregi separate printr-un caracter spaiu pe fiecare linie. Datele de ieire se scriu n fiierul out.t t care conine trei linii, pe fiecare linie fiind memorat c.te una dintre sumele calculate, n ordinea cerut.

#include <fstream.h> &oid main () {ifstream fin ((in.txt() ofstream fout ((out.txt() int m, n, i, 3, a01010101, s*=0, s:=0, s==0 fin>>m>>n //m linii, n coloane for (i=1 i<=m i##) for (3=1 3<=n 3##) fin>>a0i1031 fin.close() s*=a011011#a0110n1#a0m1011#a0m10n1 for (i=! i<n i##) s:#=a0110i1#a0m10i1 for (i=! i<m i##) s:#=a0i1011#a0i10n1 for (i=! i<=m.1 i##) for (3=! 3<=n.1 3##) s=#=a0i1031 fout<<s*<<endl<<s:<<endl<<s=<<endl fout.close() %

16

Judetul DAMBOVITA Biletul nr# $6

Atestat profesional la Informatica

3. Se consider o ta+l de a: de 7 7 ptrele. >a+la se completeaz cu numerele de la % la 02 pe linii, ncep.nd cu prima linie. S se afieze ta+la de a:. S se calculeze suma numerelor din ptrelele negre, respectiv suma numerelor din ptrelele al+e. -trelul din colul st.nga sus are culoarea al+.

#include <iostream.h> &oid main () {int i, 3, s=1, a01010101 for (i=1 i<== i##) {for (3=1 3<== 3##) {cout<<s<<( ( a0i1031=s s## % cout<<endl % lon' sn=0, sa=0 for (i=1 i<== i##) for (3=1 3<== 3##) if ((i#3)$!==0) sa#=a0i1031 else sn#=a0i1031 cout<<(suma ne're=(<<sn<<endl<<(suma al,e=(<<sa<<endl %

17

Judetul DAMBOVITA Biletul nr# $7

Atestat profesional la Informatica

3. Determinai toate irurile de numere de lungime n, n<$), cu elemente formate numai din numerele %, &, ...n. ?ntr-un ir un numr poate apare n orice poziie, iar dou elemente vecine nu pot fi am+ele pare sau am+ele impare. # emplu ! pentru n$2, irurile generate sunt ! %&32, %23&, &%23, &32%, 3&2%, 32%&, 2%&3, 23&%.

#include <iostream.h> int n, &0:1, i, u>0101 &oid ,ac2 (int 2) {if (2>n) {for (i=1 i<=n i##) cout<<&0i1 cout<<endl % else for (i=1 i<=n i##) if (2==1) {&021=i u>0i1=1 ,ac2 (2#1) u>0i1=0 % else if ((u>0i1==0) ++ (&02.11$! != i$!)) {&021=i u>0i1=1 ,ac2 (2#1) u>0i1=0 % % &oid main () {do {cout<<(n=( cin>>n % )hile (n>-) ,ac2 (1) %

18

Judetul DAMBOVITA Biletul nr# $8

Atestat profesional la Informatica

3. De la tastatur se citete un numr natural n, n<$30000. S se determine un numr mai mic dec.t n care are un numr ma im de divizori proprii primi. -ot e ista mai multe astfel de numere, caz n care se va afisa unul dintre ele. n$%% se va afia 0 sau %0.

#include <iostream.h> int prim (int x) {if (x<=1) return 0 else {for (int i=! i"i<=x i##) if (x$i==0) return 0 return 1 % % &oid main () {lon' n, nr int max=0 cout<<(n=( cin>>n for (lon' i=? i<n i##) {int nr7di&=0 for (lon' 3=! 3<=i/! 3##) if ((i$3==0) ++ (prim (3))) nr7di&## if (nr7di&>max) {max=nr7di& nr=i % % cout<<nr<<endl %

19

Judetul DAMBOVITA Biletul nr# $8

Atestat profesional la Informatica

3. De la tastatur se citesc elementele a dou mulimi 5 i @, cu p, respectiv 9 elemente, elementele fiecrei mulimi fiind distincte dou c.te dou *p, 9 <$%00,. S se determine elementele i cardinalul mulimilor A @, A @ .

#include <iostream.h> &oid main () {int p, 8, a01001, ,01001, i, 3, o2, nr cout<<(p=( cin>>p for (i=1 i<=p i##) cin>>a0i1 cout<<(8=( cin>>8 for (i=1 i<=8 i##) cin>>,0i1 cout<<(A reunit cu @(<<endl for (i=1 i<=p i##) cout<<a0i1<<( ( for (i=1 i<=8 i##) {o2=1 for (3=1 3<=p ++ o2==1 3##) if (a031==,0i1) o2=0 if (o2==1) cout<<,0i1<<( ( % cout<<endl<<(A minus @(<<endl for (i=1 i<=p i##) {o2=1 int nr=0 for (int 3=1 3<=8 ++ o2==1 3##) if (a0i1==,031) o2=0 if (o2==1) {cout<<a0i1<<( ( nr## % % if (nr==0) cout<<(Bultimea &ida(<<endl %

20

Judetul DAMBOVITA Biletul nr# 20

Atestat profesional la Informatica

3. De la tastatur se citesc pe n caractere din mulimea {a, b, c, d , e, f , A, B, C , D, E , F ,0,1,!,..,-% . /aracterele citite reprezint un numr natural reprezentat n +aza %0. S se determine valoarea acestui numr n +aza %0.

#include <iostream.h> &oid main () {int n, i, &al, nr=0 char c cout<<(n=( cin>>n for (i=1 i<=n i##) {cin>>c if (c>=CaC ++ c<=C>C) &al=c.CaC else {if (c>=CAC ++ c<=CDC) &al=c.CAC else &al=c.C0C % nr=nr"15#&al % cout<<nr<<endl %

21

Judetul DAMBOVITA Biletul nr# 2$

Atestat profesional la Informatica

3. =iierul te t date.t t memoreaz un graf neorientat *cu n noduri i m muc:ii, i are urmtoarea structur ! - pe prima linie & numere naturale *n i m, separate prin cel puin un caracter spaiu" - pe urmtoarele m linii c.te & numere naturale din mulimea {1,!,..., n% " fiecare perec:e de & numere naturale reprezint nodurile adiacente ale fiecreia dintre cele m muc:ii. S se construiasc matricea de adiacene a grafului i apoi, folosind-o, s se afieze lista de adiacen asociat grafului.

#include <fstream.h> &oid main () {ifstream fin ((date.txt() int m, n, i, 3, a10100101001, a, , fin>>n>>m for (i=1 i<=n i##) for (3=1 3<=n 3##) a10i1031=0 for (i=1 i<=m i##) {fin>>a>>, a10a10,1=1 a10,10a1=1 % for (i=1 i<=n i##) {cout<<i<<( ( for (3=1 3<=n 3##) if (a10i1031==1) cout<<3<<( ( cout<<endl % %

22

Judetul DAMBOVITA Biletul nr# 22

Atestat profesional la Informatica

3. Se consider un vector de dimensiune p !0 , completat cu numere ntregi. #lementele vectorului se citesc de la tastatur astfel nc.t vectorul s fie ordonat descresctor. =olosind algoritmul de cutare +inar s se verifice dac un numr ntreg dat , citit de la tastatur, se afl printre elementele vectorului.

#include <iostream.h> //cautare ,inara &ector ordonat crescator &oid main () {int p0!11, a, 2=1, x cin>>a p011=a cin>>a )hile (p021>=a) {p02#11=a 2## cin>>a % cout<<(x=( cin>>x int inf=1, sup=2, 'asit=0 )hile ((inf<=sup) ++ ('asit==0)) {if (p0(inf#sup)/!1==x) 'asit=1 else {if (x>p0(inf#sup#1)/!1) sup=(inf#sup#1)/! else inf=(inf#sup#1)/! % % if ('asit==1) cout<<(Ea(<<endl else cout<<(/u(<<endl %

23

Judetul DAMBOVITA Biletul nr# 20

Atestat profesional la Informatica

3. =iierul te t date.t t memoreaz un graf neorientat *cu n noduri i m muc:ii, i are urmtoarea structur ! - pe prima linie & numere naturale *n i m, separate prin cel puin un caracter spaiu" - pe urmtoarele m linii c.te & numere naturale din mulimea {1,!,..., n% " fiecare perec:e de & numere naturale reprezint nodurile adiacente ale fiecreia dintre cele m muc:ii. Se cere s se afieze matricea de adiacen a su+grafului o+inut prin eliminarea nodurilor i ; * i ; se citesc de la tastatur i sunt mai mici sau egale cu n,.

#include <fstream.h> &oid main () {int m, n, a1, ,1, i, 3, a0100101001, x, 9 ifstream fin ((date.txt() fin>>n>>m for (i=1 i<=m i##) for (3=1 3<=n 3##) a0i1031=0 for (i=1 i<=m i##) {fin>>a1>>,1 a0a110,11=1 a0,110a11=1 % fin.close() cout<<(x=( cin>>x cout<<(9=( cin>>9 for (i=1 i<=n i##) {a0i10x1=0 a0x10i1=0 a0i1091=0 a0910i1=0 % int inf=1 if (x==n ;; 9==n) n.. if (x==1 ;; 9==1) inf=! for (i=inf i<=n i##) {for (3=inf 3<=n 3##) cout<<a0i1031<<( ( cout<<endl % %

24

Judetul DAMBOVITA Biletul nr# 24

Atestat profesional la Informatica

3. =ie cele 4 note muzicale! D8, A#, BC, =5, S86, 65, SC. /itim de la tastatura o valoare naturala n, n cuprins ntre % i 4. Determinai i afiai toate melodiile de n note care se pot forma cu aceste note muzicale, av.nd n vedere ca perec:ile de note *D8,SC, i *BC,=5, s nu fie alturate.

#include <iostream.h> int n, &0=1, u>0=1 &oid ,ac2 (int 2) {if (2>n) {for (int 3=1 3<2 3##) s)itch (&031) {case 1< cout<<(EF ( ,rea2 case !< cout<<(G4 ( ,rea2 case *< cout<<(BH ( ,rea2 case ?< cout<<(IA ( ,rea2 case :< cout<<(6FJ ( ,rea2 case 5< cout<<(JA ( ,rea2 case K< cout<<(6H ( ,rea2 % cout<<endl % else for (int i=1 i<=K i##) {if (2==1) {&021=i u>0i1=1 ,ac2 (2#1) u>0i1=0 % else {if (!u>0i1) {int o2=1 if ((&02.11==1 ++ i==K) ;; (&02.11==K ++ i==1) ;; (&02.11==* ++ i==?) ;; (&02.11==? ++ i==*)) o2=0 if (o2==1) {&021=i u>0i1=1 ,ac2 (2#1) u>0i1=0 % % % % %
25

Judetul DAMBOVITA

Atestat profesional la Informatica

&oid main () {do {cout<<(n=( cin>>n % )hile (n>K) ,ac2 (1) %

26

Judetul DAMBOVITA Biletul nr# 25

Atestat profesional la Informatica

3. -entru un elev se rein urmtoarele date ! numele, v.rsta, media general. S se construiasc o list liniar care reine informaii despre n elevi. S se afieze numele elevilor care au v.rsta mai mare de %4 ani i sunt corigeni. (n elev este corigent dac are media general mai mic dec.t '. -entru implementarea listei se poate folosi alocarea static sau alocarea dinamic, la alegere.

#include <iostream.h> struct ele& {char nume0:01 int &arsta float media % ele& &01001 int n &oid main () {cout<<(n=( cin>>n for (int i=1 i<=n i##) {cout<<(/umele (<<endl cin.'et() cin.'et (&0i1.nume, ?0) cout<<(Larsta < ( cin>>&0i1.&arsta cout<<(Bedia < ( cin>>&0i1.media % //>1K ani si cori'enti for (i=1 i<=n i##) if ((&0i1.&arsta>1K) ++ (&0i1.media<:)) cout<<&0i1.nume<<endl %

27

Judetul DAMBOVITA Biletul nr# 26

Atestat profesional la Informatica

3. -entru un elev se rein urmtoarele date ! numele, v.rsta, media general. S se construiasc o list liniar care reine informaii despre n elevi. S se tearg din list elementele care conin informaii despre elevii corigeni. S se afieze noua list i s se determine c.te elemente are. (n elev este corigent dac are media general mai mic dec.t '. -entru implementarea listei se poate folosi alocarea static sau alocarea dinamic, la alegere.

#include <iostream.h> struct ele& {char nume0:01 int &arsta float media % ele& &01001 int n &oid main () {cout<<(n=( cin>>n for (int i=1 i<=n i##) {cout<<(/umele (<<endl cin.'et() cin.'et (&0i1.nume, ?0) cout<<(Larsta < ( cin>>&0i1.&arsta cout<<(Bedia < ( cin>>&0i1.media % i=1 )hile (i<=n) {if (&0i1.media<:) {for (int 3=i 3<n 3##) &031=&03#11 n.. % else i## % cout<<(/oua lista are (<<n<<( elemente(<<endl for (i=1 i<=n i##) cout<<&0i1.nume<<( (<<&0i1.&arsta<<( (<<&0i1.media<<( (<<endl %

28

Judetul DAMBOVITA Biletul nr# 27

Atestat profesional la Informatica

3. =iierul in.t t conine pe o singur linie mai multe numere ntregi *ma im %00 de numere, separate printr-un caracter spaiu. Se presupune c numerele sunt distincte, un numr neapr.nd de dou ori, iar n fiier sunt cel puin dou numere. S se calculeze suma numerelor cuprinse ntre ma imul i minimul acestora, inclusiv. # emplu ! Dac fiierul in.t t conine numerele ! 3, 4, 22, 2, %%, 7, $, ), suma calculat este ! S$20 *$&&121%%171%,. Dac fiierul in.t t conine numerele ! &, ', 90, %0, $4, 4, 0, suma calculat este ! S$&% *$-31%01%2,.

#include <fstream.h> &oid main () {ifstream fin((in.txt() int i, &01001, max, min, pmax, pmin, s=0, 2=1, a fin>>&011 max=&011 min=&011 pmax=1 pmin=1 )hile (fin>>a) {2## &021=a if (a>max) {max=a pmax=2 % if (a<min) {min=a pmin=2 % % if (pmin>pmax) {int aux=pmin pmin=pmax pmax=aux % for (i=pmin i<=pmax i##) s#=&0i1 cout<<s<<endl %

29

Judetul DAMBOVITA Biletul nr# 28

Atestat profesional la Informatica

3. (n numr comple z$a1i+ este reinut prin utilizarea structurii *nregistrrii,! struct comple) :float a( b;<; t=pe comple) > record a( b"real; end; S se calculeze si afieze suma numerelor comple e, citite din fiierul complex.txt. -e fiecare linie din fiier sunt cate doua numere reale*partea reala si imaginara a unui numr comple , separate de cate un spaiu.

#include <fstream.h> struct complex {float a, , % &01001 float x=0, 9=0 &oid main () {ifstream fin ((complex.txt() float a1, ,1 int n=1 )hile (fin>>&0n1.a>>&0n1.,) {x#=&0n1.a 9#=&0n1., n## % fin.close() cout<<x<<(#(<<9<<(i(<<endl %

30

Judetul DAMBOVITA Biletul nr# 28

Atestat profesional la Informatica

3. (n vector de dimensiune p !0 este completat cu numere ntregi citite de la tastatur. S se calculeze media aritmetic a elementelor vectorului care sunt numere cuprinse ntre a i +, inclusiv, i sunt multiple de <. Dumerele ntregi a, + i < se citesc de la tastatur.

#include <iostream.h> &oid main () {int a, 2, ,, p, i, &0!11, s=0, nr=0 do {cout<<(p=( cin>>p % )hile (p>!0) for (i=1 i<=p i##) cin>>&0i1 cout<<(a=( cin>>a cout<<(,=( cin>>, if (a>,) {int aux=a a=, ,=aux % cout<<(2=( cin>>2 for (i=1 i<=p i##) if ((a<=&0i1) ++ (&0i1<=,) ++ (&0i1$2==0)) {s#=&0i1 nr## % if (nr==0) cout<<(/u exista numere care sa indeplineasca conditiile(<<endl else cout<<(float)s/nr<<endl %

31

Judetul DAMBOVITA Biletul nr# 00

Atestat profesional la Informatica

3. De la tastatur se citesc elementele a dou mulimi 5 i @, , cu p, respectiv 9 elemente, elementele fiecrei mulimi fiind distincte dou c.te dou *p, 9 <$%00,. S se determine elementele i cardinalul mulimilor A @, @ A .

#include <iostream.h> //A intersectat cu @, @ minus A float a01011, ,01011 int p, 8 &oid dif (float a01011, int p, float ,01011, int 8) {int card=0 cout<<(@.A ( for (int i=1 i<=8 i##) {int o2=1 for (int 3=1 3<=p ++ o2==1 3##) if (,0i1==a031) o2=0 if (o2==1) {cout<<,0i1<<( ( card## % % cout<<endl if (card==0) cout<<(@.A < multimea &ida(<<endl else cout<<(;@.A;=(<<card<<endl % &oid intersectie (float a01011, int p, float ,01011, int 8) {int card=0 cout<<(A int @ ( for (int i=1 i<=p i##) {int o2=0 for (int 3=1 3<=8 ++ o2==0 3##) if (a0i1==,031) o2=1 if (o2==1) {cout<<a0i1<<( ( card## % % cout<<endl if (card==0) cout<<(A int @ < multimea &ida(<<endl else cout<<(;A int @;=(<<card<<endl % &oid main () {cout<<(p=( cin>>p for (int i1=1 i1<=p i1##) cin>>a0i11 cout<<(8=( cin>>8 for (i1=1 i1<=8 i1##) cin>>,0i11 dif (a, p, ,, 8) intersectie (a, p, ,, 8) %
32

Judetul DAMBOVITA

Atestat profesional la Informatica

33

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