Sunteți pe pagina 1din 42

Probleme propuse:

Pl. Sa se verifice daca doua variabile intregi x ~i y sunt egale.

P2. Sa se verifice relatia intre doua variabile intregi, folosind


mesaje ajutatoare pana la obtinerea egalitatii.

P3. Verificati, folosind formula lui Heron, daca trei numere a,b,c
pot fi laturile unui triunghi ~i, in caz afirmativ, specificati ce fel
de triunghi este.

P4. Se da un numar natural cu doua cifre. Sa se afi~eze numarul


cu cifrele schimbate lntre ele.

P5. Sa se afi~eze cifrele unui numar natural In ordinea inversa


citirii lor.

P6. Sa se formeze ~i sa se afi~eze numarul ob!inut din cifrele


scrise In ordine inversa ale unui numar natural dat.

P7. Sa se elimine cifrele impare dintr-un numar.

P8. Sa se verifice daca cifrele unui numar natural X>= I 0 sunt


distincte.

P9. Sa se calculeze cifra de control pentru un numar natural a.


Prin cifra de control lntelegem numarul cu o singura cifra obtinut
prin insumarea repetata a cifrelor unui numar.

PIO. Se dau doua numere naturale a ~i b. Sa se verifice care dintre


ele are cifra de control mai mare.
(Ex: n= 1253 cifra de control cc= l+2+5+3= 11; cc= l +1 =2)

7
PI I. Se dau doua numere naturale a $i b cu cifra de control ni, P22. Sa se calculeze suma 1ntre prima $i ultima cifra a unm
respectiv n2. Sa se verifice daca suma lor, c=a+b, are cifra de numar !ntreg de eel putin doua cifre.
control n=n I +n2.
P23. Sa se calculeze suma $i produsul intre prima $i ultima cifra a
PI2. Fie un numar X $i numarul Y, care are suma cifrelor S. unui numar 1ntreg de eel putin doua cifre.
Daca X=Y+S, atunci numarul X se nume$te numar deosebit.
Scrieti un program care verifica daca un numar dat este deosebit. P24. Sa se calculeze media aritmetica $i media geometrica 1ntre
(Ex: x=50, y=43 , s=4+3=7 50=43+7.) prima $i ultima cifra a unui numar intreg de eel putin doua cifre.

PI3. Fie un numar 1ntreg X. Scrieti un program care verifica daca P25. Sa se calculeze suma 1ntre prima cifra $i o cifra a carei
X este un numar deosebit $i afi$eaza numarul y cu proprietatea pozitie este data, a unui numar intreg de eel putin doua cifre.
x=y+s, unde s este suma cifrelor lui y.
P26. Sa se calculeze valoarea expresiei E=5 *x- 1 pentru un numar
PI4. Scrieti un program care afi$eaza toate numerele naturale mai intreg X dat.
mici decat un numar n dat, care nu sunt deosebite.
P27. Sa se calculeze valoarea functiei:
PIS. Se da un numar natural X. Sa se gaseasca toate numerele 2*x*x- I, pentru x<O;
prime mai mici decat acesta. f(x) = {
x+ I, altfel.
PI6. Sa se afi$eze numarul de perechi de numere prime gemene
(numere prime impare, consecutive) mai mici decat un numar N P28. Calculati cmmdc al doua numere naturale x $i y, afi$and
dat. fiecare pas din Algoritmul lui Euclid.
Pl7. Sa se verifice daca doua numere naturale date sunt gemene.
P29. Sa se calculeze cmmdc al doua numere naturale a $i b,
PIS. Sa se afi$eze numerele gemene dintre primele N numere folosind Algoritmullui Euclid.
intregi, strict pozitive.
P30. Se citesc de la tastatura trei numere naturale x,y,z. Sa se
calculeze, folosind algoritmullui Euclid, cmmdc allor.
P I9. Scrieti un program care rezolva ecuatia de gradul al doilea
P31. Se dau trei numere naturale a,b,c. Sa se verifice daca
P20. Dat un numar natural N, sa se afi$eze numarul obtinut prin
numerele sunt prime intre ele folosind relatia :
citirea cifrelor acestuia 1n ordine inversa.
a*b*c=a*b*c/[a,b,c ].
P2 I. Sa se schimbe intre ele cifrele marginale ale unui numar P32. Sa se calculeze cmmdc 1ntre doua numere naturale a $i b
natural cu eel putin doua cifre. prin metoda scaderilor succesive.

8
9~
P33. Se dau doua numere naturale a ~i b. Sa se gaseasca, folosind
algoritmul scaderilor succesive, cmmdc lntre suma a+b ~i P43. Se citesc doua numere lntregi. Sa se afi~eze ~irul de n
produsul a*b. elemente obtinute, incepand cu al treilea, ca produs al celor doua
anterioare.
P34. Sa se calculeze cmmmc pentru doua numere 1ntregi date. (Ex: n=S Sirul: 2 3 6 18 108)

P35. Sa se calculeze expresia E=alb+b/a+b, cu a ~i b numere P44. Un numar este perfect daca este egal cu suma divizorilor sai,
lntregi, date. mai putin elinsu~i. Scrieti un program care creeaza un vector ale
carui elemente sunt astfel de numere.
P36. Se Impart carti de joe pana la introducerea valorii 0. Se cauta
ca S, suma valorilor lor, sa fie eel mult egala cu 21. Sa se afi~eze P45. Sa se afi~eze numarul de numere prime dintr-un vector de
sumaS. numere 'intregi.
P37. Se Impart carti de joe la doi jucatori. La introducerea valorii P46. Se da un numar natural X. Sa se formeze un vector care are
0 se opre~te impartirea lor. Se cauta ca S 1 ~i S2, sumele obtinute ca elemente toate numerele prime mai mici decat acesta.
de fiecare jucator, sa fie eel mult egale cu 21. Ca~tiga eel care a
obtinut 21 sau valoarea cea mai apropiata, mai mici:i decat P47. Se cite~te un vector cu n elemente intregi. Sa se formeze un
aceasta. Sa se afi~eze jucatorul ca~tigator. alt vector cu elementele pare ale acestuia ~i sa se afi~eze cei doi
vectori.
P38. Un grup de tineri joaca "21 Se impart carti de joe fiecarui
II.

jucator la cererea acestuia. Se incearca obtinerea unei sume a P48. Se da un vector cu n elemente 'intregi. Sa se afi~eze vectorul,
cartilor primite eel mult egala cu 21. Ca~tiga eel care a obtinut 21 elementele de pe pozitiile impare ~i media aritmetica a acestora.
sau valoarea cea mai apropiata, mai mica decat aceasta. Sa se
afi~eze jucatorul ca~tigator. P49. Se cite~te un vector cu n elemente intregi. Sa se formeze un
alt vector cu elementele divizibile cu 5 acestuia ~i sa se afi~eze
P39. Un numar este perfect daca este egal cu suma divizorilor sai, mai
cei doi vectori.
putin ell:nsu!;)i. Scrieti un program care creeaza astfel de numere.
PSO. Sa se ordoneze crescator, prin metoda bulelor, elementele
P40. Scrieti un program C++ care verifica daca un numar intreg
X este perfect. unui vector de numere intregi.

P41. Un numar este palindrom daca el este egal cu numarul PSI. Sa se ordoneze crescator , folosind sortarea naiva,
format din cifrele sale scrise In ordine inversa. Verificati daca un elementele unui vector de n elemente intregi.
numar natural dat este palindrom.
P52. Sa se ordoneze crescator, folosind metoda insertiei,
elementele unui vector de n elemente 'intregi.
P42. Se da un numar natural x. Sa se gaseasca toate numerele
prime mai mici decat acesta.
10 11
P53. Sa se ordoneze crescator, folosind metoda sortarii prin P64. Sa se copieze dintr-un vector de numere intregi toate
numarare, elementele unui vector cu n elemente intregi. elementele negative intr-un nou vector.

P54. Sa se interclaseze elementele a doi vectori X ~i Y, ordonati P65. Se cite~te un vector cu n elemente intregi. Sa se formeze un
crescator , cu m, respectiv n, elemente intregi. alt vector cu elementele numere palindrom ale acestuia ~i sa se
afi~eze cei doi vectori.
P55. Se da un vector neordonat, cu n elemente intregi ~i
m=(p+q)/2, unde p= 1 si q=n. ~tiind ca elementele sunt ordonate P66. Se da un vector X de numere intregi ~i un interval [a,b]. Sa
crescator de la p la m ~i de la m+ 1 la q, sa se ordoneze vectorul. se formeze un vector Y cu elementele din X cuprinse in intervalul
[a,b] care sunt numere palindrom.
P56. Sa se ordoneze descrescator, prin metoda bu lelor,
elementele unui vector de numere reale. P67. Scrie!i un program care creeaza un vector ale carui elemente
sunt numere palindrom mai mari decat 1000.
P57. Se da un vector X de numere intregi. Sa se formeze un nou
vector Y din elementele ordonate descrescator ale primului vector P68. Sa se verifice daca un numar intreg introdus de la tastatura
~ i sa se faca suma, intr-un vector Z, a elementelor din X ~i Y. se regase~te printre elementele unui vector de n numere intregi.

P58. Se da o multime de numere intregi ~i un interval [a,b]. Sa se P69. Se da un vector cu n elemente intregi, distincte. Sa se
elimine toate elementele care fac parte din interval. verifice daca o anumita valoare data se regase~te in vector ~ i , in
caz afirmativ, sa se elimine.
P59. Se da un vector X de numere intregi ~i un interval [a,b]. Sa
se formeze un vector Y cu elementele din X cuprinse in intervalul P70. Se da un vector cu n elemente intregi. Sa se verifice daca o
[a,b].
anumita valoare data se regase~te in vector ~i, in caz afirmativ, sa
se elimine toate elementele mai mici decat aceasta.
P60. Sa se introduca, intr-un ~ir de numere intregi, pe o anumita
pozitie, o valoare data. Sa se afi~eze ~irul nou fonnat. P71. Sa se gaseasca, folosind algoritmullui Euclid, eel mai mare
divizor comun al elementelor unui vector de numere intregi.
P61. Sa se afi~eze elementul minim al unui vector de numere
intregi.
P72. Sa se gaseasca, folosind algoritmul lui Euclid, eel mai mare
divizor comun al elementelor unui vector de numere intregi
62. Sa se introduca, intr-un ~ir de numere intregi, pe pozitia celui situate intr-un interval [a, b] dat.
mai mic element, o valoare data. Sa se afi~eze ~irul nou format.

P63. Sa se gaseasca eel mai mic element negativ dintr-un vector P73. Sa se gaseasca, folosind algoritmul scaderilor succesive,
de numere lntregi. cmmdc a! elementelor unui vector den numere intregi, pozitive.

12 13
P74. Sa se gaseasca cmmmc al elementelor unui vector de n P84. Se da o matrice mxn de numere lntregi. Sa se afi~eze
numere intregi, pozitive. elementele marginale ale matricii (prima ~i ultima linie ~i
coloana) ~i '*'in rest.
P75. Sa se afi~eze lista elevilor unei clase, folosind doi vectori
care au ca elemente initialele numelor, respectiv prenumelor P85. Sa se gaseasca elementul minim dintr-o anumita coloana a
acestora. unei matrice ale carei elemente sunt numere intregi.

P76. Scrieti un program care elimina dintr-un vector de numere P86. Sa se determine elementul minim din fiecare linie a unei
intregi acele elemente care nu pot fi notele obtinute de elevi. matrice patratice de numere intregi, sa se formeze ~i sa se afi~eze
un vector cu valorile respective.
P77. Datorita rezultatelor slabe obtinute in urma unei lucrari de
control, elevilor unei clase li s-au marit notele cu doua puncte P87. Sa se gaseasca elementul maxim dintr-o matrice de numere
daca erau sub 5 ~i cu un punct daca erau peste 5, in acest fel lntregi ~i sa se afi~eze pozifia(pozitiile) acestuia.
marindu-se ~i media pe clasa. Scrieti un program care realizeaza
acest lucru ~i afi~eaza cu cat s-a marit media clasei. P88. Se da o matrice patratica de n elemente intregi. Sa se
gaseasca elementul minim din matrice ~i sa se afi~eze pozitiile pe
P78. Scrieti un program care elimina dintr-un vector X de numere care se afla.
intregi elementele prime ~i formeaza un alt vector Y care are ca
elemente tocmai elementele eliminate din X. P89. Intr-o matrice patratica de numere intregi, se mare~te
fiecare element cu o valoare data. Afi~ati matricea obtinuta.
P79. Intr-o matrice patratica, sa se schimbe intre ele doua linii
date. P90. Se da o matrice patratica NxN ale carei elemente sunt
numere naturale din 1..9. Sa se afi~eze matricea obtinuta prin
P80. Sa se gaseasca acele linii dintr-o matrice de numere intregi inlocuirea fiecarui element cu numarul obtinut prin adaugarea la
care au toate elementele negative. elementul anterior, ca ultima cifra, a elementului corespunzator
din matricea initiala.
P81. Sa se gaseasca elementul maxim dintr-o matrice de numere
intregi.
Ex: n=2 Matricea initiala: [ 2 6
Matricea obtinuta: ( 2 26 J 18
J
l261 2618
P82. Se da o matrice patratica de n numere intregi. Sa se afi~eze
matricea, sa se gaseasca numarul de elemente intregi strict P91. Sa se ordoneze crescator elementele de pe diagonala
pozitive ~i sa se calculeze media aritmetica a acestora. principala a unei matrice patratice de numere intregi.

P83. Sa se afi~eze elementul maxim dintr-o matrice mxn de P92. Sa se ordoneze crescator, prin metoda bulelor, elementele de
elemente intregi ~i sa se afi~eze matricea inlocuind elementele pe fiecare linie a unei matrice A[m,n] numere intregi.
diferite de maxim cu '*'.

14 15
._,
P93. Sa se sorteze crescator, prin metoda bulelor, elementele unei REZOLVARI
matrice A[m,n] de numere intregi.

P94. Sa se ordoneze descrescator elementele de pe ultima coloana Pl.Sa se verifice daca doua variabile intregi x ~i y sunt egale.
a unei matrice patratice de numere 'intregi.
#include<iostream>
using namespace std;
P95. Sa se ordoneze crescator elementele de pe o coloana data a
int x,y;
unei matrice patratice de numere intregi. int main ()
{
P96. Se cite~te din fi~ierul 'nr.txt' un numar intreg N. Sa se x=S;
verifice daca el este prim. cout<<"Ghiceste numar u l! "; cin>>y;
if (y== x) cout<<"Bravo!";
else cout<<"Mai incearca!";
P97. Se cite~te din fi~ierul 'nr. txt' un numar intreg N. Sa se afi~eze }
numarul gasit ~i numarul cifrelor sale. P2. Sa se verifice relatia intre doua variabile 'intregi, folosind
mesaje ajutatoare pana la obtinerea egalitatii.
P98. Se cite~te din fi~ierul 'nrl.txt' un numar 'intreg Nl. Sa se
scrie In fi~ierul'nr2.txt' numarul N2, obtinut din Nl prin citirea in #include<iostream>
ordine inversa a cifrelor sale. using namespace std;
int x,y;
int main ()
P99. Sa se afi~eze elementul maxim dintr-un vector de numere {
'intregi aflat in fi~ierul 'sir.in'. x=S;
do {
cout<<"Ghiceste numarul! ";
Pl 00. Se citesc din fi~ierul 'date .in' numarul de elemente (prima
cin>>y;
linie) ~i elementele (linia a doua) pentru un vector de numere if (y==x ) cout<<"Bravo!";
lntregi. Sa se afi~eze continutul fi~ierului ~i toate perechile else if (y<x ) cou t <<"Nr .mai mic! "<<"\n";
formate din fiecare element cu cele care-i urmeaza. else cout<<"N r .mai mare!"<<"\n";}
while (y! =x);
P 101. Se citesc din fi~ierul mat_ fis.in datele des pre o matrice }
patratica de numere reale. Sa se afi~eze matricea initiala, apoi P3. Verificati, folosind formula lui Heron, daca trei numere a,b,c
matricea obtinuta prin inlocuirea elementelor de pe diagonala pot fi laturile unui triunghi ~i, in caz afirmativ, specificati ce fel
principala cu 0. de triunghi este.
# i nclude<iostream>
#include<math.h>
using namespace std;
int a,b,c;
float p,s;
16 17
int main () cout<<"Nr. schimbat: X= " ;
{ while (x!=O )
cout<<"Dati numerele!"<<"\n"; { cout<<x %10;
cout<<"a= ";cin>>a; x=x/10;}
cout<<"b= ";cin>>b;
cout<<"c= ";cin>>c;
p=float (a+b+c ) /2; P6. Sa se formeze ~i sa se afi~eze numarul obtinut din cifrele
s=sqrt (p* (p - a)*(p - b ) * (p - c) );
scrise 'in ordine inversa ale unui numar natural dat.
if ( s<=O ) cout<<"Nu e triunghi";
else
if (a==b && b==c ) cout<<"Triunghi echilateral"; #include<iostream>
else using namespace std;
if (a ==b I I a == c I I b==c ) cout<<"Triunghi isoscel"; unsigned long x,y,p;
int main ()
else
{
if (a*a==b*b+c*c ll b*b ==a*a+c*c ll c*c==a*a+b*b)
cout<<"Dati numarul! X=";cin>>x;
cout<<"Triunghi dreptunghic";
else cout<<"Triunghi oarecare"; p =1; y = O;
while (x! = O)
{ y=x%10 + y*10;
x=x/10;}
P4. Se da un numar natural cu doua cifre. Sa se afi~eze numarul cout<<"Numaru1 obtinut: "<<y;
cu cifrele schimbate 1ntre ele.

#include<iostream>
using namespace std;
(?7. Sa se elimine cifrele impare dintr-un numar.
int a,b,c,x;
int main () #include<iostream>
{
using namespace std;
co u t<<"Dati numarul! X= ";c in>> x ; unsigned long x,y,p;
a =x/1 0 ; int main ()
b=x %10; {
cout<<"Nr. schimbat: X= "<<b<<a; cout<<"Dati numarul! X= ";cin>>x;
p = l; y = O;
while (x!=O ) {
if (x%10 %2== 0 )
P5. Sa se afi~eze cifrele unui numar natural 'in ordinea in versa { y=y+x %10*p;
citirii lor. p =p*10; }
x =x/10;}
# incl u de<iostream> cout<<"Numarul fara cifre impare: "<< y;
u sin g namespace std;
unsign ed long x;
int main () P8. Sa se verifice daca cifrele unui numar natural X>= IO sunt
{
c ou t<<"Dati numarul! X= ";cin>>x; distincte.

18 19
#include <i o s t ream> /plO. Se dau doua numere naturale a ~i b. Sa se verifice care dintre
u sin g namespace std; 'e'le are cifra de control mai mare.
unsigned long x,y,p ;
int a,ok;
(Ex: n= l 25 cifra de control n= l +2+5= 8)
int main ()
{ #include<iostream>
cout<<"Dati numarul! X= ";cin>>x; u sing namespace std;
y=x; a=x%10; x=x/10; ok=1; unsigned long a,b, x ,y;
int nl,n2,ok;
wh i l e (x! =O) int ma in (vo id )
{ if (a==x %10 ) ok=O; {
a =x% 1 0; cout<<"a="; c in> >a;
x =x / 10; } cout<<"b="; cin>>b ;
cout<<"Numarul "<<y; x=a; y =b;
if (ok= =1 ) cou t<< " are cifrele distincte."; do {
else c ou t<<" n u are cifrele dist i ncte."; n1=0;
while (a !=O)
{ n1 =n1+a%10;
a=a / 1 0 ; }
P9. Sa se calculeze cifra de control pentru un numar natural a. if (n1/ 1 0== 0) ok=1;
Prin cifra de control intelegem numarul cu o singura cifra obtinut else a=n 1 ;
prin insumarea repetata a cifrelor unui numar. } while ( ok== O) ;
c out <<x <<" are cifra de c o ntrol "<<n1< <"\n ";
#include<i o stream> ok= O;
using namespace std; do {
un si gned long a,x; n2 = 0;
int n,ok; wh ile (b! =0)
int main (vo id ) { n2=n2+b %10;
{ b=b/10;}
cout<<"a= " ; cin>>a; if (n2/ 1 0== 0) ok=1 ;
x=a; else b =n2;}
do wh ile (ok== O) ;
{n= O; cout<<y<<" are cifra de control "< <n2< <"\n";
while (a!=O ) if (n 1== n2 ) cout<<" Cifre de control egale.";
{n=n+ a %10; a =a/10;} else
if (n/10 ==0 ) ok=1; if (n1 >n2 )
else a =n ; cout<<"a are cifra de control mai mare.";
}whi le (ok== O}; else cout<<"b are cifra de control mai mare.";
cout<<x<<" are cifra de control " <<n<< " \n" ;

20 21
Pll. Se dau doua numere naturale a ~i b cu cifra de control nl, Pl2. Fie un numar X ~i numarul Y, care are suma cifrelor S.
respectiv n2. Sa se verifice daca suma lor, c=a+b, are cifra de Dadi X=Y+S, atunci numarul X se nume~te numar deosebit.
control n=n 1+n2 . Scrieti un program care verifica daca un numar dat este deosebit.
(Ex: x=50, y=43, s=4+3 =7 50=43+7.)
# include<iostream>
us ing namespace std; #inc1ude<io stream>
unsigned long a,b,c,x,y,z; using namespace std;
int n1,n 2,n, ok ; int x,y,z, s;
int main(vo i d) int ma in (vo id )
{ {
cout<<"a = "; ci n>>a ; cout<<"X= "; cin>>x;
cout<<"b= "; cin>>b ; cout<<"Y="; cin>> y;
x =a; y =b; c=a+b; z=c; z=y; s =O;
cout<<"c= "<<a<<"+"<<b<<" = "<<c<<" \n "; wh ile ( z! = 0)
do { { s=s+z %10;
n1 = 0; z=z/10;}
whil e (a ! = O) cout<<"Suma cifrelor lui "<<y<<" este "<<s<<"\n";
{ n1 =n1+a %10; if (x ==y+s )
a =a/10;} { cout<<x<<" este nr. deosebit."<<"\n";
if (n1/10 == 0) ok=1; cout<<x<<" = "<<y<<"+"<<s;}
else a =n1; else
} while (ok== O) ; { cout<<x<<" nu este nr. deosebit."<<"\n";
cout<<x<<" are cifra de control "<<nl<<" \n" ; cout<<x<<"!="<<y<<"+"<<s; }
ok= O;
do {
n2 =0;
wh ile (b! = O) P13. Fie un numar 1ntreg X. Scrieti un program care verifica daca
{n2 =n2+b%10; b =b/10;} X este un numar deosebit ~i afi~eaza numarul Y cu proprietatea
if (n 2 / 1 0== 0) ok= 1; X=Y+S, uncleS este suma cifrelor lui Y.
else b =n2;}
while (ok== O) ; #i nclude<io stream>
cout<<y<<" are cifra de control "<<n2<<" \ n"; using namespace std;
do { int x,y,z,s,ok;
n = O; i nt main(void)
whil e (c!= O) {
{n=n+c%10; c=c / 10;} cout<<"X= "; cin>>x;
if (n / 10== 0) ok=1; for (y=1;y<=x- 1;y++ )
else c =n;} { z=y; s = O; ok=O;
wh ile (ok== O) ; wh ile ( z!=O )
cou t<<z<< " are cifra de control "<<n<<" \n "; { s=s+z %10;
if (n ==n1+n2) cout<<"Da!"; z = z/10; }
else cout<<"Nu!"; if (x == y+s)
}
{ cout<<"y="<<y<<"\n";

I
22 23
cout<<"s = "<< s <<"\n"; cout<<" Nr. prime mai mi ci decat " ·
c o ut<< x <<" = "<<y <<"+"<<s<<" \ n"; c o u t <<x<<" sun t : "<<" \ n";
ok=l; } for (i =2;i<=x - l;i++ )
c ou t<<x; { o k= l;
if (ok== l ) co u t<<" este deosebit."; for ( j =2;j<=i/2;j++ )
e l se c o ut<<" nu este deosebit."; if ( i %j == 0) o k= O;
} if ( ok==l ) cout<<i<<" ";}
}
P 14. Scrieti un program care afi~eaza toate numerele naturale mai
mici dedlt un numar n dat, care nu sunt deosebite. Pl6. Sa se afi~eze numarul de perechi de numere prime gemene
(numere prime impare, consecutive) mai mici decat un numar N
#in c lude <i o st r eam>
us i ng n a mespace std;
dat.
int n ,x, y ,z,s,o k ;
#incl u de<iostream>
int ma in (v o id )
#include<math.h>
{
using namespace std;
cout <<" n ="; ci n >>n;
unsign e d long n,i,j,nr;
x= l ;
int ok,este;
do
int main (void )
{ ok = O;
{
fo r (y= l; y <=x - l; y ++ )
co u t<<" N= "; cin>>n;
{ z=y; s = O; cout<<"Nr.gemene mai mici decat ";
wh ile ( z ! = O)
cout<<n<<" \ n";
{ s=s+z %10;
nr=O;i = S;
z= z / 10 ; }
while ( i< =n )
if (x==y+s ) ok=l;}
{ ok= O;
if (o k == O) cout<<x<<" nu este d eosebit."<<" \ n";
for ( j =3;j< = ( int ) s q rt ( i ) ; j ++ )
x=x+l;
if (i %j == O) ok= l;
wh ile (x ! =n ) ;
if ( ok== O && este== O)
{ nr++;
cout<<i - 2<<" " <<i<<" \n ";
P 15. Se da un numar natural X. Sa se gaseasca to ate numerele
prime mai mici decat acesta. este =ok ;
i = i+2; }
#in c lude< io s t ream>
# i n c lude<math.h>
u si ng namespace std; Pl7. Sa se verifice daca doua numere naturale date sunt gemene.
# in clude<math. h >
i nt x ,i,j, o k; # include <iostream>
int main(voi d) # include<math.h>
{
using namespace std ;
cout <<" X="; ci n >>x; u n signe d long x, y ;

24 25
int i,ok; P19. Scrieti un program care rezolva ecuatia de gradul al doilea.
int main(void)
#include<iostream>
cout<<"X="; cin>>x; #include<math.h>
cout<<"Y="; cin>>y; using namespace std;
ok= l; int main(void)
for (i =2;i< =x/2;i++) {
if (x%i ==O ) ok=O; float a,b,c,d,xl,x2;
for ( i = 2;i< =y/2;i++) cout<<"Dat i coeficientii! "<<"\n";
if (y% i= = 0) ok= O; cout<<"a = "; cin>>a;cout<<"b= "; cin>>b;
if (ok==l && x - y == 2 ) cout<<"c = "; cin>>c; d=b*b - 4*a*c;
cout<<"Numere gemene ". cout<<"Solutiil e ecuatiei ";
'
else cou t <<"("<<a<<")*X*X+ ( "<<b<<")*X+ (" <<c<<" ) = O sunt:";
cout<<"Numerele nu sunt gemene ".' cout<<"\n";
cout<<"\n";
if (d<O) cout<<"Ecuatia nu are solutii reale. ";
P18. Sa se afi~eze numerele gemene dintre primele N numere i f (d== O)
lntregi, strict pozitive. {xl =- b/2*a;
cout<<"Ecuatia are doua solutii egale Xl=X2="<<xl;}
#include<iostream> if (d>O)
#include<math.h> { xl = ( - b+sqrt(d) )/2*a; x2 = ( - b - sqrt (d))/ 2*a;
using namespace std; cout<<"Ecuatia are doua solutii reale, distincte:";
unsigned long n,x,y,aux; cout<<" \n";
int i,ok; cout<<"Xl = "<<xl<<" si X2 = "<<x2<<"\n";}
int main(void)
{
cout<<"n= "; cin>>n; P20. Dat un numar natural N, sa se afi~eze numarul obtinut prin
x=3; citirea cifrelor numarului In ordine inversa.
do {
ok=l; aux =x; #i nclude< i o s tream>
for ( i=3;i< =aux/2;i++) #include<math.h>
if ( aux%i= = O) ok= O; us i ng namespace std;
y =x+2;aux =y;
unsigned long n,s;
for (i =3;i< =aux/2;i++)
i nt main(void)
if ( aux%i == 0) ok= O; {
if (ok == l && abs (x - y) == 2)
cout<<"N = ";cin>>n;
cout<<x<<" "<<y<<"\n";
s = O;
x++;
while (n I = 0)
} whil e (x! =n - 2 ) ;
{s = s*lO+n%10;
n =n/10;}
cout<<"Numarul inversat: "<<s;

26 27
(P~ Sa se sehimbe 'intre ele eifrele marginale ale unui numar · P23. Sa se ealeuleze suma ~i produsul'intre prima ~i ultima eifra a
'rr~al eu eel putin doua eifre. unui numar 'intreg de eel putin doua eifre.
#include< iostream>
using namespace std; #include<iostream>
int y[50],x,i,temp,nr; using namespace std;
int main(void) int pr,ul,s,p;
{ unsigned long n,nr,k;
cout<<"X="; cin>>x; int main ()
nr=O; { do {
while (x! = O) cout<<"N = ";cin>>n;}
{ nr++; while ( n/1 0<=0) ;
y[nr]=x%10; nr =n; k=1;
x=x/10;} while (nri =O )
cout<<"Se schimba "<<y[1]<<" cu "<<y[nr]<<"\n"; { nr=nr/10;
temp=y[1]; y[1]=y[nr]; y[nr]=temp; k= k*10; }
for (i =nr;i>=1 ; i -- ) cout<<y[i]; k=(int) (k/10);
ul=n%10;pr=n/k;
-~ ·-- ........
s=pr+ul;p=pr*ul;
P22. Sa se ealeuleze suma 'intre prima ~i ultima eifra a unm cout<<"Suma intre prima ("< <pr<<" ) si ";
cout<<"ultima cifra ("< <ul<<" ) este "<<s<<"\n";
numar intreg de eel putin doua eifre. cout<<"Produsul intre prima ("<<pr<<") si ";
cout<< "u ltima cifra (" <<ul<<" ) este "<<p;
#include<iostream>
using namespace std;
int n,nr,k,pr,ul,s; '-~ .,- -
int main () P24. Sa se ealeuleze media aritmetiea ~i media geometriea 'intre
{ do { prima ~i ultima eifra a unui numar intreg de eel putin doua eifre.
cout<<"N=";cin>>n;}
while (n/10 <=0 ); #include<iostream>
nr=n; k=1; #include<math.h>
while (n r i =O ) using namespace std;
{ nr=nr/10; int pr,ul,s,p;
k=k*10; } float ma,mg;
k= ( int) (k/10); unsigned long n,nr,k;
ul=n%10;pr=n/k; int main ()
s=pr+ul; { do {
cout<<"Suma intre prima (" <<pr<<" ) si "; cout<<"N= ";cin>>n;}
cout<<"ultima cifra (" <<ul<<" ) este "<<s; while (n/10<=0);
nr=n; k=1;
while (n ri=O )
{ nr=nr/10;
k= k*10; }
k=(int) (k/10);

28 29
ul=n%10;pr =n /k; P26. Sa se calculeze valoarea expresiei E=S*x-1 pentru un numar
ma=float(pr+ul)/2; mg=sqrt(pr*ul);
cout<<"Prima cifra este "<<pr<<"\n";
intreg X dat.
cout<<"Ultima cifra este "<<ul<<"\n";
#include<iostream>
cout<<"Media lor aritmetica: "<<ma<<"\n";
using namespace std;
cout<<"Media lor geometrica: "<<mg<<"\n";}
int E,x;
r;----~
int main ()
' ( P25) Sa se calculeze suma J:ntre prima cifra ~i o cifra a carei {
) rozitie este data, a unui numar intreg cu eel putin doua cifre. cout<<"x=";cin>>x;
E=5*x - l;
#include<iostream> cout<<"Expresia: E=S*"<<x<<" - 1"<<"\n";
using namespace std; cout<<"Valoarea expresiei este: "<<E;
int pr,cif,s,nc,i,poz;
unsigned long n,nr;
int main () P27. Sa se calculeze valoarea functiei:
{ do {
cout<<"N=";cin>>n;}
while (n/10< = 0);
nr=n; nc =O; #include<iostream>
f(x) { 2*x*x-1, pentru x<O;
x+ 1, altfel.

while (nr I = 0) using namespace std;


{ nr =nr/10; int f,x;
nc++; } int main ()
cout<<"Dati pozitia cifrei alese! poz="; {
cin>>poz; cout<<"x=";cin>>x;
if (poz>nc ) cout<<"Pozitie gresita!"; if(x<O)
else {f=2*x*x - 1;
{ nr=n; cout<<"Functia: F(x) =2*("<<x<<")* ( "<<x<< ") - l" ;
for (i=1;i<=nc - poz;i++) nr =nr/10; cout<<"\n";
cif=nr%10;
for (i=1;i<=nc - 1;i++) n =n/10; else
pr =n; { f=x+1;
s=pr+cif; cout<<"Functia: F(x)="<<x<<"+1";
cout<<"Prima cifra este "<<pr< <" \n"; cout<<"\n";}
cout<<"Pe pozitia "<<poz<<" se afla val. cout<<"Valoarea functiei este: "<<f;
" <<cif<<"\n";
cout<<"Suma lor este "<<s;}
P28. Calculati cmmdc al doua numere naturale x ~i y, afi~and
fiecare pas din Algoritmullui Euclid.

#include<iostream>
using namespace std;
int x,y,c,r;

30 31
int main () cout<<"x="; cin>>x;
{ cout<<"y=";cin>>y;
cout<<"Dati numerele!"<<"\n"; cout<<"z=";cin>>z;
cout<<"x=";cin>>x; r=x %y;
cout<<"y=";cin>>y; wh ile ( r!=O) { x=y; y=r; r= x%y;}
if (y! =O ) r=y %z ;
do while (r! = O) { y =z; z=r; r =y%z ; }
{ cout<<"Se imparte "<<x<<" la "<<y; cout<<"Cmmdc este "<<z;
r =x%y; c =x/y;
cout<<" si se obtine catul "<<c<<" si restul
"<<r<<" \n "; P31. Se dau trei numere naturale a,b,c. Sa se verifice dadi
x=y; y =r; } numerele sunt prime 'intre ele folosind relatia:
wh ile (r i =O);
c out< <"Cmmdc este ultimul rest difer it d e 0 ";
a*b*c=a*b*c/[a,b,c ].
co ut <<" si anume "<<x;
#include<iostream>
using namespace std;
int x,y,z,r,p,ok;
P29. Sa se calculeze cmmdc al doua numere naturale a ~i b, int main ()
folosind Algoritmullui Euclid. {
cout<<"Dati numerele!"<<" \ n";
#include<iostream> cout<<"x=";cin>>x;
u sing namespace std; cout<<"y=";cin>>y;
int x,y,r; cout<<"z=";cin>>z;
int main () ok=l; p=x*y*z; r=x%y;
{ while ( r!=O) { x=y; y=r; r =x %y; }
cout<<"Dati numerele!"<<"\n"; if (y!=l) ok=O;
co ut< <" x =";cin>>x; r=y %z ;
cout<<" y =";ci n>>y; while (r! = O) {y=z; z=r; r=y% z;}
r=x %y ; if ( z ! =l ) ok= O;
wh ile ( r!= O) if (ok==l && p ==p / z ) c out< <"Nr.prime intre ele. "
{ x =y ; y=r; r=x%y; } else cout<<"Nr. nu s un t prime intre ele ";
cout<<"Cmmdc este "<<y;

P32. Sa se calculeze cmmdc 'intre doua numere naturale a ~i b


P30. Se citesc de Ia tastatura trei numere naturale x,y,z. Sa se prin metoda scaderilor succesive.
calculeze, folosind algoritmul lui Euclid, cmmdc al lor.
#include< i ostream>
#incl ude<iostream> using namespace std;
u si ng namespace std; int x,y;
int x,y,z,r; int main ()
int main () {
{ cout<<"Dati numerele!"<<"\n"; cout<<"Dati numerele!"<<" \n ";

32 33
cout<<"x= ";cin>>x; cout<<"Produsul="<<p<<"\n";
cout<<"y=";cin>>y; while (x! =y)
while ( x!=y ) if (x>y) x =x- y;
if ( x>y) x =x - y; else y =y - x;
else y=y - x; cout<<"Cmmdc este "<<x<<"\n";
if (x == l ) cout<<"Nr.prime intre ele."; cout<<''Cmmmc este "<<p/x;
else cout<<"Divizorul este "<<x;

P35. Sa se ealeuleze expresia E=a/b+b/a+b, eu a ~i b numere


P33. Se dau doua numere naturale a ~i b. Sa se gaseasea, folosind !ntregi, date.
algoritmul seaderilor sueeesive, emmde !ntre suma a+b ~i
produsul a*b. #include<iostream>
using namespace std;
#include<iostream> int a,b,c,p,mc,tl,t2;
using namespace std; float e;
int x,y,s,p; int main ()
{
int main ( )
{ cout<<"Dati numerele!"<<"\n";
cout<<"Dati numerele!"<<"\n"; cout<<"a=";cin>>a;
cout<<"x=";cin>>x; cout<<"b=";cin>>b;
cout<<"y= ";cin>>y; c =a+b;tl=b;t2=c;
s =x+y; p =x *y; p=b*c;
cout<<"Suma = "<<s<<" Produsul = "<<p<<"\n"; while (tl! =t2)
cout<<"Cmmdc intre "<<s<<" si "<<p<<" este "; if (tl>t2) tl =tl - t2;
while (s!=p ) else t2=t2 - tl;
if ( s>p) mc = (float)p/tl;
s=s - p; e=(a*mc/(float)b+b*mc/(float)c ) /mc;
else p =p - s; cout<<"Valoarea expresiei este "<<e;
cout<<s;

P36. Se 1m part eaqi de joe pana Ia introdueerea valorii 0. Se eauta


P34. Sa se ealculeze emmme pentru doua numere !ntregi date. ea S, suma valorilor lor, sa fie eel mult egala eu 21. Sa se afi~eze
sumaS.
#incl u de<iostream>
using namespace std; #include<iostream>
int x,y,p; using namespace std;
int main ( ) int s,x;
{ int main(void)
cout<<"Dati numerele!"<<"\n"; {
cout<<"x= ";cin>>x; cout<<"Dati o carte! "<<"\n";cin>>x;
cout<<"y= ";cin>>y; s=x;
p =x*y; while (x! = O)
34 35
cout<<"S="<<s<<"\n"; P380 Un grup de tineri joaca "21 Se impart carti de joe fiecarui
II 0

cout<<"Dati o carte! "; cin>>x;


s=s+x;}
jucator Ia cererea acestuiao Se incearca obtinerea unei sume a
cout<<"Ati obtinut "<<s; cartilor primite eel mult egala cu 210 Ca$tiga eel care a obtinut 21
sau valoarea cea mai apropiata, mai mica decat aceastao Sa se
afi$eze jucatorul ca$tigator.
P370 Se impart carti de joe la doi jucatorio La introducerea valorii
#include<iostream>
0 se opre$te impartirea lor. Se cauta ca S 1 $i S2, sumele obtinute #include<stringoh>
de fiecare jucator, sa fie eel mult egale cu 210 Ca$tiga eel care a using namespace std;
obtinut 2 1 sau valoarea cea mai apropiata, mai mica decat int main ()
aceastao Sa se afi$eze jucatorul ca$tigator.
in t s[10],n,nr,i,j,x,ok,max;
#include<iostream> char ch,num[10] [10];
using namespace std ; cout<<"Dati numarul de jucatori!";
cin>>n;cinoget () ;
int main () cout<<"Dati numele jucatorilor!"<< " \n";
{ for ( i=1;i <=n;i++) {
int x,s1,s2; cout<<"Jucatorul "<<i<<" :";
cout<<"Jucatorul 1 "<<"\n"; cinoget(num[i],10 ); cinoget () ;
cout<<"Dati o carte! ";cin>>x;
s1=x; cout<<"Jucatorii sunt: "<<"\n";
while (xi = O) for ( i=1;i< =n;i++) {
{ cout<<"s1 ="< <s1<<"\n"; cout<<num[i]<<" "<<endl;}cout<<"\n";
cout<<"Dat i o carte! ";cin>>x; for(i = 1;i<=n;i++)
s1=s1+x; } {cout<<"Joaca "<<num[i]<<"\n";
cout<<"Jucatorul 2 "<<"\n"; cout<<"Dati o carte! "<<"\n" ;cin>>x;
cout<<"Dati o carte! ";cin>>x; s[i]=x;cout<<"S= "<<s [ i]<<"\n";
s2=x; cout<<"Continuat i ? [y/n] "<<"\n" ;cin>>ch;
while (xi = O) while (ch == 'y') {
{ cout<<"s2 = "<<s2<<"\n"; cout<<"Cart ea: ";cin>>x;
cout<<"Dati o carte! ";cin>>x; s[i] = s[i]+x;cout<<"S= "<<s[i]<<"\n";
s2=s2+x;} cout<<"Continuati? [y/n] "<<"\n" ;cin>>ch;}}
cout<<"Jucatorul 1 "<<s1<<"\n"; max=21;
cout<<"Jucatorul 2 "<<s2<<"\n"; for(i=1;i<=n;i++ )
if ( s1<=21 && s2<=21) if (s[ i]>max ) n r ++;
if ( s1==s2) cout<<"Egalitate"; if (nr ==n ) { cout<<"Nu sunt castigatori 0

else if ( s1<s2) cout<<"Castiga jucatorul 20"; "<<"\n";}


else cout<<"Castiga jucatorul 1o"; else { cout<<"Castiga: "
else if (s1<=21) cout<<"Castiga jucatorul 1 "0 0 ,
ok=O;
else if ( s2<=21 ) cout<<"Castiga jucatorul 2 o
Ho
I
while (ok ==O)
else cout<<"Nu sunt castigatori!"; { for ( i=1;i<=n;i++)
if ( s[i ] ==max) {

36 37
cout<<num[i]<<" "; if ( s==x ) cout<<x<<" este perfect. ";
ok =1; } else cout<<x< <" nu este perfect. ";
max =max-1; }}

P41. Un numar este palindrom daca el este egal cu numarul


P39. Un numar este perfect daca este ega! cu suma divizorilor sai, mai format din cifrele sale scrise in ordine inversa. Verificati daca un
putin el!nsu~i. Scrieti un program care creeaza astfel de numere.
numar natural dat este palindrom.
#include<iostream>
u sing namespace std; #include<iostream>
int n,k, a,j,s; using namespace std;
int main(vo i d) i n t n,inv,aux;
{
int ma in (vo id )
{
cout< <"Cate numere perfecte doriti? [1 . . 4] ";
cin>>n; cout<<"Dati un numar! N= ";
a = O;k= O; cin>>n;
while ( k<n) { aux=n;
s= O; a++ ; while (n I = 0)
f o r (j =1;j<= ( int )a/ 2;j++ ) if (a %j==O) s=s+j; inv= (inv*1 0) + (n%10);
if ( s==a ) n = (int)n/ 1 0;}
{ k++ ; n=aux;
cout<<"Numarul "<<a<<" este perfect."<<"\n"; if ( inv==aux ) cout<<"Numarul "<<n<<" este
cout<<"Di v iz o rii lui sunt: " palindrom. ";
f or (j =1;j<= ( int ) a / 2;j++ ) else cout<<" Numarul "<<n<<" nu este palindrom . ";
if (a %j == 0) cout<<" "<<j;
cout<<" \n "; }}
P42. Se da un numar natural X. Sa se gaseasca toate numerele
prime mai mici dec§.t acesta.
P40. Un numar este perfect daca el este egal cu suma divizorilor
sai, mai putin el 1nsu~i. Scrieti un program care verifica daca un #include<iostream>
#include<math.h>
numar 1ntreg X este perfect.
using namespace std;
#include <iostream> int x,nr,n,i,ok;
using n a mespa ce s td ; int main(void)
int x,s,i; { do {
int main(vo i d) cout<<"Dati un numar! X= ";
{ cin>>x;}
cout<<"Dati un numar! Ex: 6,28,496."<<"\n"; wh ile (x<=O ) ;
cout<<"X= ";cin>>x; cout<<"Numerele prime mai mici decat "<<x<<"
s=O ; sunt: "<<" \n ";
for ( i=1;i <= ( int ) x/2;i++) for (n r=2;nr<=x- 1 ; nr++)
if (x %i == 0) s =s+i; { ok=1;

38 39
n = (int)sqrt(x); k++; }
for (i=2;i<=n;i++) }
if (nr % i ==O) ok= O; cout<<"Vectorul nr. perfecte:"<<"\n";
if (ok ==l) cout<<nr<<" ";} for(i = l;i< =n;i++ )
cout<<x[i]<<" ";

P43. Se citesc doua numere intregi. Sa se afi~eze ~irul de n


elemente obtinute, incepand cu al treilea, ca produs al celor doua P45. Sa se afi~eze numarul de numere prime dintr-un vector de
anterioare. numere !ntregi.
(Ex: n= 5 Sirul: 2 3 6 18 108)
#include<iostream>
#include<iostream> using namespace std;
using namespace std; int x[50],i,j,n,k,ok;
unsigned long v[50]; int ma i n (void)
int n,i; {
int main(void) cout< < "n= "; cin>>n;
{ cout<<"Nr.de t e rmeni: "; cin>>n; for(i = l;i<=n;i++)
cout<<"Primul terme n: ";cin>>v[l]; { cout<<"x["<<i<< " ] = ";
cout<<"Al doilea termen: ";cin>>v[2]; cin>>x[i];
for(i = 3;i<=n;i++) v[i] =v[i - l]*v[i - 2];
cout<<"Sirul obtinut: "<<"\n"; cout<<"Vectorul: " <<"\n";
for ( i=l;i<=n;i++) cout<<v[i]<<" "; for( i= l;i<=n;i++)
} cout<<x[i]<<" ";
cout< < "\n";
k= O;
P44. Un numar este perfect daca este egal cu suma divizorilor sai, for(i = l;i<=n;i ++)
mai putin el insu~i. Scrieti un program care creeaza un vector ale { ok= l;
carui elemente sunt astfel de numere. for (j =2;j<=(int)x [ i]/2;j++)
i f (x[i]%j == O) ok=O;
#include<iostream> if (ok== l ) k= k+l;
using namespace s td; }
int x[5],a,s,i,j,n,k; cout<<"In vectorul X sunt "<<k<<" nr.prime ." ;
int main(void)
{ cout<<"Cate numere perfecte doriti? [1 .. 4] n = ";
cin>>n;
P46. Se da un numar natural X. Sa se formeze un vector care are
a=O;k=l;
whi le ( k<=n) { ca elemente toate numerele prime mai mici dedit acesta.
s=O; a=a++;
for ( j = l;j<=(int ) a/2;j++) #include<iostream>
if (a %j == 0) s =s+j; using namespace std;
if ( s ==a ) { int v[50],x,i,j,nr,ok;
x[k] =a; int main(void)
{ do
40
41
r"'\.
{ cout<<"X="; cin>>x;}
while (x<2);
(P~. Se da un vector .c~ n ~lement~ 1ntre.gi. s.a se ~f~~eze vectorul,
elementele de pe pozttule nnpare ~~ media antmetJCa a acestora.
cout<<"Vectorul: "<<"\n";
for(i =2;i<=x - l;i++)
#include<iostream>
{ ok=l;
using namespace std;
for ( j=2;j<=i / 2;j++ )
in t a [50] , n, i, k, s;
if (i% j== 0) ok= O;
int main(void)
if (ok== l)
{
{ nr++;
cout<<"n= " ; cin>>n;
v[nr] =i; }}
for ( i = l;l< =n;i++)
for(i=l;i<=nr;i++)
{ cout<<"a("<<i<<" ] =";
cout<<v[i]<<" ";
cin>>a [i];}
cout<<"Vectorul initial: "<<"\n";
for ( i = l;i<=n;i++ ) cout<<a[i]<<" ";
P4 7. Se citqte un vector cu n elemente intregi. Sa se formeze un cout<<"\n";
alt vector cu elementele pare ale acestuia ~i sa se afi~eze cei doi cout<<"Elem . pe pozitii i mpare:"<< "\n";
vectori. k= O; s=O;
for (i = l;i<=n;i++ )
i f ( i%2==1 )
# i nclude<iostream>
us ing n a me space std; { cout<<a[i]<<" ";s=s+a[i]; k++; }
int a[50],b[50],n,i,k; cout<<"\n";
int main(vo id ) cout<<"Media cautata este "<< ( float ) s /k;
{
cout<<"n="; cin>>n;
for ( i=l;i<=n;i++) P49.' Se cite~te un vector cu n elemente intregi. Sa se formeze un
{ cout<<"a["<<i<<"] = "; 'll!. vector cu elementele divizibile cu 5 ale acestuia ~i sa se
cin>>a [i];}
afi~eze cei doi vectori.
co ut << "Vectorul initial: "<<"\n";
for ( i = l;i<=n;i++)
#include<iostream>
cout<<a[i]<<" ";
using namespace std;
cout<<"\n";
in t a [ 50 ] , b [ 50 ] , n , i , k;
cout<<"Vectorul obtinut:"<<"\n";
int main (vo id )
k= O;
{ cout<<"n="; cin>>n ;
for ( i=l;i<=n;i++ )
for(i = l;i<=n;i++ )
if (a[i]%2==0) { cout<<"a["<<i<<"] = ";
{ k= k+l; cin>>a[i];
b [ k] =a [ i];
cout<<b[k]<<" "; cout<<"Vectorul initial: "<<"\n";
}}
for(i = l;i< =n;i++ )
cout<<a[i]<<" ";
cout<<"\n";
cout<<"Vectorul obtinut:"<< "\n";

42 43
k= O; .P5 i~ Sa se ordoneze crescator, folosind sortarea naiva, elementele
for (i=l;i< =n;i++ ) '' 1'l.Utvector de n clemente intregi .
if (a [ i] % 5 == 0 )
k=k+l; #include<iostream>
b [ k] =a [ i J ; u s ing namespace std ;
cout<<b[k]<<" ";} int v[SO] ,n,i,j,poz,m;
int main(void)
,.~· ..... '·
,1.·· {
\P50. Sa se ordoneze crescator, prin metoda bulelor, elementele cout<<"n="; cin>> n ;
for ( i = l;i<=n;i++ )
tlndi vector de numere intregi. {cout<<"v["<<i<<"]=";cin>>v[i];}
cout<<"Vectorul i niti a l : "<<"\n";
#include< iostream>
f or( i =l;i<=n;i++)
u sing namespace std;
cout<<v[i]<<" ";
int v[SO],n,i,j,aux,ok;
cout<<" \ n";
int ma in (void)
for (i=n;i>= l;i -- )
{
{ poz = l;m=v[l];
cout<<" n ="; cin>>n;
for (j = l;j<=i;j++)
for (i = l ;i<=n;i++)
{ if (v [ j ]>m)
{c out<< " v[ "<<i<<" l =";cin>>v[i]; }
{ poz = j; m=v[j];}
cout<<"Vectorul initial: "<<" \n ";
v [ po z ] =v [ i] ;
for(i=l;i< =n;i++)
v [ i ] =m;}
cout<<v[i]<<" ";
cout<<"Vectorul sortat: "<<"\n";
cout< <"\n";
for(i = l;i<=n;i++)
ok = l;
cout<<v[i]<<" ";
wh ile ( ok ==l )
{ ok = O;
f o r (i=l;i<=n - l;i++)
if(v[i]>v[i+l])
rn:·-
~~?2 . Sa se ordoneze crescator, folosind metoda insertiei,
{aux =v[i+l]; 'elmnentele unui vector de n clemente intregi.
v [ i + 1] =v [ i] ;
v[ i ] =aux; #include<iostream>
ok= l;} using namespace std;
int v[SO] ,n,i,j,k,val,ok;
cout<<"Vectorul sortat: "<<"\n"; int main(void)
for (i = l;i<=n;i++) { cout<<"n= "; cin>>n;
cout<<v[i]<<" "; for ( i=l;i<=n;i++ )
cout<<"\n"; {cout<<"v["<<i<<"] = ";cin>>v [ i]; }
cout<<"Vectorul initial: "<<"\n";
for(i=l;i< =n;i++)
cout<<v [ i]<<" ";
cout<<" \n" ;
for (i =2;i<=n;i++)
45
44
val=v [ i]; int x[50],y[50],z[50],m,n,p , i,j,k;
k= O;j = i - 1; int main (void)
ok= O; {
while ( j>O && ok == O) cout<<"m= "; cin>>m;
if (val< v[j]) for(i = l;i<=m;i++)
{ v [ j + 1 ] =v [ j ] ; {cout<<"x["<<i<<"] = ";cin>>x[i ] ;}
j=j - 1; } cout<<"n= "; cin>>n;
else { k=j; for(j = l;j<=n;j++ )
ok=l;} {cout<<"y [ "<<j <<"] = "; cin>>y [ j ] ; }
cout<<"Vectorii initiali: "<< " \n";
v[k+l ] =val; }
cout<<" Vectorul sortat: "<<"\n"; i for(i = l;i<=m;i++)
for ( i=l;i<=n;i++) cout<<v[i]<<" "; cout<<x[i]<<" ";
} cout<<"\n";
f or(j = l;j<=n;j++)
cout<<y[j]<<" ";
P53. Sa se ordoneze crescator, folosind metoda sortarii prin
cout<<"\n";
numarare, elementele unui vector cu n elemente lntregi. k= O; i = l; j = l;
while (i< =m &&j< =n )
#include<iostream> { k= k+l;
using namespace std; i f (X [ i ] <y [ j] )
int x[50] ,y [ 50] ,nr[50] ,n,i,j; { z [ k] =x [ i] ; i ++; }
int main (void ) else { z[k] =y[j];
{
j++;}
cout<< " n= " ; cin>>n; i f ( i< =m)
for ( i=l;i<=n;i++ ) for(p = i;p< =m;p++ )
{cout<<"x["<<i<<"] = ";cin>>x[i] ;} { k++; z [ k] =x [p] ; }
cout<<" Vectorul initial: "<<"\n"; else for(p = j;p< =n;p++ )
for ( i = l;i<=n;i++ ) { k++; z[k] =y[p]; }
cout<<x [ i]<<" "; cout<<"Vectorul obtinut: "<<"\n";
cout<<" \ n"; for (i = l;i<=m+n;i++) cout<<z[i]<<" " ;
for ( i = l;i< =n - l;i++ )
for ( j =i+l;j<=n;j++)
if ( x [ i] <x [ j ] ) nr [ j] =nr [ j] + 1;
else nr [ i]++;
P55. Se da un vector neordonat, cu n elernente intregi ~i
for ( i=l;i<=n;i++ ) y[nr[i]+l] =x[i]; m=(p+q)/2, unde p= l si q=n. Stiind ca elernentele sunt ordonate
cout<< "Vectorul sortat: "<<"\n"; crescator de la p la m ~i de la m+ 1 la q, sa se ordoneze vectorul.
for ( i=l;i<=n;i++ ) cout<<y[i]<<" ";
} #include<io s tr e am>
us i ng namespace std;
P54. Sa se interclaseze elementele a doi vectori X ~i Y, ordonati int x[50],temp[50],m,n,p,q,i,j,k;
i nt main (void)
crescator, cu m, respectiv n, elemente lntregi.
{
# include<iostream>
cout<<"n= "; cin>>n;
using namespace std;
for(i = l;i<=n;i++ )
46 47
{cout<<"x("<<i<<"]=";cin>>x[i];} for(i=l;i< =n - l;i++ )
cout<<"Vectorul initial: "<<"\n"; if ( x [i] <x [i+l])
for(i=l;i<=n;i++ ) cout<<x[i]<<" "; { temp=x[i];
cout<<"\n"; x [i] =x [i+l];
p=l; q=n; m=(p+q ) /2; x[i+l]=temp;
k=O; i=p; j=m+l; ok=O; }}
while ( i<=m && j <=q ) cout<<"Vectorul ordonat descrescator: "<<"\n";
{ k++; for(i=l;i< =n;i++ ) cout<<x[i]<<" ";
if (x[i]<x[j] ) cout<<"\n";
{ temp[k]=x[i];i++;}
else
{ temp[k]=x [ j]; j++;} P57. Se da un vector X de numere 1ntregi. Sa se formeze un nou
vector Y din elementele ordonate descrescator ale primului vector
if ( i<=m)
for ( j=i;j<=m;j++) ~i sa se faca suma, 1ntr-un vector Z, a elementelor din X ~i Y.
{k++; temp[k] =x [j];}
else for ( i=j;i<=q;i++ ) #include<iostream>
{ k++; temp[k]=x[i];} using namespace std;
for(i=l;i< =n;i++) x[i]=temp[i]; int x [50], y [50], z [ 5 0] , n, i, j, ok, temp;
cout<<"Vectorul obtinut: "<<"\n"; int main(void)
for ( i=l;i<=n;i++) cout<<x[i]<<" ";
} cout<<"N= "; cin>>n;
cout<<"Elemente l e lui X: "<<"\n";
for (i = l;i<=n ; i+ + )
P56 . Sa se ordoneze descrescator, pnn metoda bulelor, { cout<<"X["<<i<<"l = ";
elementele unui vector de numere reale. cin>>x(i]; }
cout<<"Vectorul initial: "<<" \n";
# i nclude <iostream> for (i = l;i<=n;i++ ) co u t<<x[i]<<" ";
using namespace std; cout<<"\n";
int n,i,j,ok; for ( i = l;i<=n;i++ ) y [ i ] =x[i];
float x[50],temp; ok= O;
int main(vo id ) while ( ok= = O)
{ {ok= l;
cout<<"N="; cin>>n; for(i = l;i<=n - l;i++ )
cout<< " Elementele lui X: "<<"\n"; if ( y[i]<y[i+l] )
for ( i=l;i< =n;i++) { temp =y [i];
{ cout<<"X["<<i<<"] = " ; y [ i l =y [ i + 1] ;
cin>>x [i] ; } y[i+l] =temp;
cout<<"Vectorul initial: "<<"\n"; ok= O;}}
for (i =l;i<=n;i+ +) cout<<x [ i]<< " "; cout<<"Vectorul ordo::J.at descrescator: " << "\n";
cout<<"\n"; for ( i = l;i<=n;i++ ) co ut <<y(i]<< " ";
ok = O; cout<<"\n";
while ( ok==O) cout<<"Vectorul suma :" << "\ n";
{ 0 k= 1; for(i = l;i< =n;i++ )
48 49
z [ i] =x [ i] +y [ i] ; P59. Se da un vector X de numere intregi ~i un interval [a,b]. Sa
cout<<z[i]<<" ";} se formeze un vector Y cu elementele din X cuprinse in intervalul
[a,b].
P58. Se da o multime de numere intregi ~i un interval [a,b]. Sa se #inc lude<iostream>
elimine toate elementele care fac parte din interval. #include<math.h>
u s ing namespace std;
# include<iostream> in t x [50 1 , y [50] , n, i, j , k, a , b;
#in clude<math.h> i nt main(void)

u sing namespace std; cout<<"N="; cin>>n;


in t x [ 50 ] , n, i, j , a, b, o k; cout<<"Elementele lui X: "<<"\n";
int main (void ) for ( i = l;i<=n;i++)
{ { cout<<"X["<<i<< "] = ";
cout<<"N= "; cin>>n; cin>>x [i];}
cout<<"Elementele: "<<"\n"; cout<<"Intervalul [a,b] :"<<"\n";
for(i = l;i< =n; i ++ ) cout<<"a= ";cin>>a;
{ cout<<"X["<<i<<"J = "; cout<<"b = ";cin>>b;
cin>>x[i];} cout<<"Vectorul initial : "<<"\n";
cout<<"Intervalul [a,b] : "<<"\n"; for ( i=l;i<=n;i++) cout<<x(i]<< " ";
cout<<"a= ";cin>>a; cout<<"\n";
cout<<"b = ";cin>>b; k= O;
cout<<"Vectorul initial: "<<"\n"; for (i = l;i<=n - l;i++ )
for(i = l;i<=n;i++) cout<<x[i]<<" "; if (x[i]> =a && x[i]< =b)
cout<<"\n"; { k++; y[k]=x[i];}
ok= O; if ( k== O)
do cout<<"Nu exista elemente in interval !"<<"\n";
{ ok= l; e lse{
for ( i = l;i< =n - l;i++ ) cout<<"Elementele din ["<<a<<","<<b<<"] se af l a in ";
if ( x[ i ]> =a && x[i]< =b ) cout<<"\n"; cout<<"vectorul Y: ";
{ for ( j =i ;j< =n - l;j++) x[j] =x [j+l]; for ( i = l;i<= k;i++) cout<<y [ i]<< " ";}
n =n - 1;
ok= O;}
}while ( ok== O);
cout<<"Vectorul dupa eliminare:"<<"\n"; P60. Sa se introduca, intr-un ~ir de numere intregi, pe o anumita
for ( i = l ;i<=n;i++ ) cout<<x[ i ]<<" ";
pozitie, o valoare datiL Sa se afi~eze ~irul nou format.

# i nclude<iostream>
using namespace std;
int x[50],n,i,j,val,poz;
int main(void)

51
50
cout<<"n="; cin>>n;
for(i=1;i< =n;i++) P62. Sa se introduca, 1ntr-un ~ir de numere 'intregi, pe pozitia
{ cout<<"x["<<i<<"] = "; celui mai mic element, o valoare data. Sa se afi~eze ~irul nou
cin>>x[i]; format.
cout<<"Vectorul initial: "<<"\n"; #include<iostream>
for ( i=1;i<=n;i++) using namespace std;
cout<<x[i]<<" "; int x[50],n,i,j,val,poz,minim;
cout<<"\n"; int main(void)
cout<<"Pozitia noului element: [1 .. "<<n<<"] {
cin>>poz; cout<<"n = "; cin>>n;
cout<<"Valoarea: "; cin>>val; for (i=1;i<=n;i++)
n=n+1; { cout<<"x["<<i<<"] = "; cin>>x[i];}
for (i=n; i>=poz+1; i -- ) x[i]=x[i - 1]; cout<<"Vectorul initial: "<<" \n";
x[poz]=val; for(i=1;i<=n;i++) cout<<x[i]<<" ";
cout<<"Sirul dupa adaugare:"<<"\n"; cout<<"\n";
for(i=1;i<=n;i++) cout<<x[i]<<" "; minim=x[1]; poz = 1;
}
for(i =1;i<=n;i++)
_,... -~ ~- ........ if (x[i]<minim)
fP61 ! Sa se afi~eze elementul minim al unui vector de numere { minim=x[i];poz=i;}
cout<<"Cel mai mic element este "<<minim;
iiitregi.
cout<<" si se afla pe pozitia "<<poz<<"\n";
#include<iostream> cout<<"Valoarea: "; cin>>val;
using namespace std; n =n+1;
int v[50],n,i,minim; for (i=n; i> =poz+1; i -- ) x[i]=x[i - 1];
int main(void) x[poz]=val;
{ cout<<"Sirul dupa adaugare:"<<"\n";
cout<<"n= "; cin>>n; for(i =1;i<=n;i++) cout<<x[i]<<" ";
}
for(i = 1;i<=n;i++)
{ cout<<"v["<<i<<"]=";
cin >> v[i];} P63. Sa se gaseasca eel mai mic element negativ dintr-un vector
cout<<"Vectorul initial: "<<"\n"; de numere 1ntregi.
for(i=1;i<=n;i++) cout<<v[i]<<" ";
cout<<"\n";
#include<iostream>
minim=v[1];
using namespace st d;
for(i=1;i<=n;i++)
int x[50],n,i,minim;
if (minim>v[i]) minim=v[i]; int main(void)
cout<<"Elementul min im este "<<minim; {
}
cout<<"n="; cin>>n;
for (i =1;i<=n;i++)
{ cout<<"x["<<i<<"J = ";
cin>>x[i];

52
53
cout<<" Vectorul initial: "<<"\n"; ~65. Se cite~te un vector cu n elemente 'intregi. Sa se formeze un
for ( i=l;i<=n;i++)
cout<<x[i]<<" "; alt vector cu elementele numere palindrom ale acestuia ~ i sa se
c o ut<<" \ n"; afi~eze cei doi vectori.
minim= O;
for (i = l;i< =n;i++) #include<iostream>
if (x[i)<O ) using namespace std;
if (x [ i)<minim ) minim=x[i); in t a [50] , b [ 5 0] , a ux, y , n, i, k ;
if (minim<O ) cout<<"Cel mai mic numar negativ este int main(void )
" <<mi n im; {
else cout<<"Nu exista nume re negative . "<<"\n"; cout<<"N= "; cin>>n;
} for {i = l;i<=n;i++ )
{ cout<<"a["<<i<<")=";
cin>>a [i ] ; }
P64. Sa se copieze dintr-un vector de numere 'intregi toate cout<<"Vectorul initial:"<<" \n ";
elementele negative 'intr-un nou vector. for (i = l;i< =n;i++ )
cout<<a[i]<<" ";cout<<" \ n";
# include<iostream> k=O;
u sing namespace std; for ( i =l;i<=n;i++ )
i n t a[50),b[50],n,i,k; { aux=a[i]; y=O;
i n t main (void ) while (a[i] != 0 )
{ { y= (y*lO)+(a[i]%10 ) ;
c ou t<<"n = "; cin>>n; a [ i] =a [ i] /1 0; }
for ( i = l;i<=n;i++) i f (aux==y)
cout<<"a["<<i<<"] = "; { k= k+l; b[k] =aux; }
cin>>a[i); } cout<<"Vectorul de nr.palindrom:"<<" \ n";
for (i = l;i< =k;i++ ) cout<<b[i ] <<" ";
cout<<"Vectorul initial: "<<"\n";
f o r ( i=l;i<=n;i++ )
cout<<a[i)<<" "; P66. Se da un vector X de numere 'intregi ~i un interval [a,b ]. Sa
cout<<" \ n";
k= O; se formeze un vector Y cu elementele din X cuprinse 'in intervalul
for (i = l;i<=n;i++ ) [a,b] care sunt numere palindrom.
if (a [ i ) <O ) k= k+l;
if ( k= = O) cout<<"Nu exista elemente negative . "; #i nclude<iostream>
else using namespace std;
cout<<"Vectorul obtinut : "<<"\n"; int x[50],y[50],a,b,pal,aux,i,n,nr,ok;
k= O; int main (voi d)
for (i=l;i<=n;i++) {

if (a [ i ] < O) cout<<" Dati vectorul ! "<<" \ n";


{ k=k+l; cout<<"N="; cin>>n;
b [ k] =a [ i] ; for (i = l;i< =n;i++ )
cout<<b[k]<<" ";} { cout<<"x["<<i<<"] = ";
} cin>>x[i]; }
54 55
cout<<" Dati intervalul!"<<"\n";
cout<<"a ="; c in>>a; P68. Sa se verifice daca un numar intreg, introdus de la tastatura,
cout<<"b="; cin>>b; se regase~te printre elementele unui vector de n numere intregi.
cout<<"Vectorul initial:"<<"\n";
for (i=1;i< =n;i++) #include<iostream>
cout<<x[i]<<" ";cout<<"\n"; using namespace std;
nr=O;
int a[50],x,n,i,ok;
for (i=1;i<=n;i++ ) int main (void)
{ aux=x[i]; pal = O; {
while ( aux! = 0) cout<<"n= "; cin>>n ;
{ pal = (pal*10)+(aux%10); for(i =1;i<=n;i++ )
aux=aux /10;} { cout<<"a["<<i<<")=";
if (x[i] ==pal && x[i]>=a && x[i]<=b) cin>>a[i];
{ nr++;
y [nr] =x [ i] ; } cout<<"Vectorul : " <<"\n";
cout<<"Vectorul de nr.palindrom:"<<"\n"; for(i =1;i<=n;i++)
for (i =1; i<=nr ;i++ ) cout<<a[i)<<" ";
cout<<y[i]<<" ";} cout<<"\n";
cout<<"Dati un numar intreg!"<<"\n";
P67. Scrieti un program care creeaza un vector ale carui elemente cin>>x;
sunt numere palindrom mai mari dedit 1000. ok=O;
for (i=1;i<=n;i++ )
#include<iostream> if (a[ i ) ==x ) ok= 1;
using namespace std; if (ok== O) cout<<x<<" nu se gaseste in vector.";
int x[50],aux,y,a,n,i,ok; }else cout<<x<<" se gaseste in vector.";
int main(void) }

cout<<"Cate numere palindrom doriti? "; cin>>n; P69. Se da un vector cu n elemente intregi, distincte. Sa se
a=1000; verifice daca o anum ita valoare data se regase~te in vector ~ i, in
for ( i=1;i<=n;i++ )
{ do caz afirmativ, sa se elim ine.
{ a++;
#include<iostream>
aux=a;y=O;
using namespace std;
while (aux! = O)
int x[50),n,i,j,poz,val,ok;
{ y=(y*10)+(aux%10); int main(void)
aux=aux/10;}
{
if (a == y) x[i] =a;
cout<<"n="; cin>>n;
} while (a!=y);}
for(i=1;i<=n;i+ +)
cout<<"Vectorul de nr.palindrom:"<<"\n"; { cout<<"x ["<<i<<"] =";
for (i = 1;i<=n;i++)
cin>>x[i);
cout<<x[i]<<" ";

cout<<"Vectorul: "<<"\n";
56
57
for(i=l;i<=n;i++) cin>>val;
cout<<x[i]<<" "; for (i =l;i<= n;i++)
cout<<"\n"; if (x[i] ==val)
cout<<"Dati un numar intreg!"<<"\n"; { poz=i; ok =l ;}
cin>>val; ok=O;
for(i=l;i<=n;i++) for (i =l ;i< =n ;i++)
if (x[i] == val) if (x[i] ==val ) ok=l;
{ poz=i; if (ok== O) cout<<val<<" nu se gaseste in v ector.
ok=l; else { cout<<val<<" se gaseste in vector ";
cout<< "pe pozitia "<<poz<<"\n";
ok=O; do {
for (i =l;i<=n;i++ ) gasit=l;
if (x[i] ==val ) ok=l; for (i = l;i<=n ;i++)
if (ok== O) cout<<val<<" nu se gaseste in vector."; if ( x[i]<val)
else { cout<<val<<" se gaseste in vector "; { for (k=i; k< =n - l;k++ ) x[k] = x[ k+l];
cout<<"pe pozitia "<<poz<<"\n"; n -- ; gasit = O;}}
for (i =poz;i<=n;i++) x[i]=x[i+l]; while ( gasi t == O) ; }
n -- ; cout<<"Vectorul dupa eliminare:"<< "\n";
cout<<"Vectorul dupa eliminare:"<<"\n"; if (n== O) cout<<" contine numai valoarea data,
for(i=l;i< =n;i++) cout<<x[i]<<" "; "<<val;
cout<<" \n"; else for ( i=l;i<=n;i++ ) cout<<x [ i]<< " ";
cout<<"\n";

P70. Se da un vector cu n elemente intregi. Sa se verifice daca o P71. Sa se gaseasca, folosind algoritmul lui Euclid, eel mai
anumita valoare data se regase~te in vector ~i, in caz afirmativ, sa divizor comun al elementelor unui vector de numere intregi.
se elimine toate elementele mai mici decat aceasta.
#include<iostream>
#include<iostream> using namespace std;
u sing namespace std; int x[SO],n,i,r,aux,j;
int x[SO],n,i,j,k,poz,val,ok,gasit; int main(void )
int main(void) {
{ cout<<"n= "; cin>>n;
cout<<"n="; cin>>n; for(i = l;i<=n;i++ )
for(i = l;i<=n;i++) { cout<<"x["<<i<<"]=";
{ cout<<"x [ "<<i<<"] = "; cin>>x[i];
cin>>x[i];
cout<<"Vectorul : "<<"\n";
cout<<"Vectorul: "<<"\n"; for(i=l;i<=n;i++)
for(i=l;i< =n;i++) cout<<x[i]<<" ";
cout<<x[i]<<" "; cout<<"\n";
cout<<"\n"; for(i=l;i<=n - l;i++ )
cout<<"Dati un numar intreg!"<<"\n";
58
{ if (x[ i]<x[ i+ 1] )
fo r (i =1;i<=n - 1 ;i ++)
{ au x =x [ i]; x[i] =x [ i+1 ] ;x [i+1] =aux ; }
r =x[i] % x[i+1]; { i f (x [ i]<x [ i+1 ])
while (ri = O) { aux=x[i ] ;x[i ] =x[ i+ 1] ;x[i+1]=aux; }
{ x[i] =x[i +1]; r=x [ i] % x [ i + 1] ;
x[i+1] =r; whil e ( r I = 0)
{ x[i]=x[i+1];
r=x[i]% x[i+1];}
fo r (j =1;j<=n;j++ ) x[i+1] = r;
x[ i ] =x[i+1];} r=x [i] % x [ i+1]; }
cout<<"Cmmdc este "<<x[i]; x [ i] =x [ i + 1 ] ; }
cout<<"Cmmdc este "<<x[i];

P73. Sa se gaseasca, folosind algoritmul scaderilor succesive,


P72. Sa se gaseasca, folosind algoritmul lui Euclid, eel mai mare
cmmdc al elementelor unui vector de n numere intregi, pozitive.
divizor comun al elementelor unui vector de numere intregi
situate intr-un interval [a,b] dat.
#include< iostream>
#in c lude< iostream> using namespace std;
using namespace std; in t v [50] , n, i;
int main(void)
int x[50] ,y[50] ,n,a,b,i,r,aux,k;
int main(void) { cout<<"n= "; cin>>n;
{ fo r (i=1;i<=n;i++ )
cout<<"n="; cin>>n; { c ou t<<"v["<<i<< "] = ";
for (i = 1;i<=n;i ++) cin>>v[i]; }
c out<<"Vectorul ini t ial: "<<" \n" ;
{ cout<<"x["<<i<<"]=";
cin>>x[i];} f or (i =1 ;i<=n;i++ )
c out<<v[i]<< " ";
cout<<"Intervalul [a,b] :"<<" \ n";
cout<<"a=";cin>>a ; cout<<"\n" ;
cout<<"b=";cin>>b; for(i = 1;i<=n-1;i++)
{ wh ile (v[ i] ! =v[i+l])
cout<<"Vecto r ul : "<<"\n";
i f (v[ i ]>v[i+l]) v[ i ] =v[i] - v[i+1] ;
for(i = 1;i<=n ;i++ )
else v[i+l] =v[i+l] - v[ i];
cout << x[i] <<" ";
cout<<"\n"; v [ i + 1] =v [ i ] ; }
k= O; cout<<"Divizorul e s te "<<v[i];
for (i=1;i<=n;i++ )
if (x[i]> =a && x[i]<=b)
{k+ +; y[k] =x[i]; } P74. Sa se gaseasca cmmmc al elementelor unui vector de n
cout<<"Elemen te le din i nte rval:"<<" \n "; numere intregi, pozitive.
n=k; #include<iostream>
for ( i=1;i<=n;i++ ) using namespace std ;
{ X ( i] =y ( i] ; int x[50],n,i,p,r,aux;
cout<<x[i]<<" ";} int main ()
cout<<"\n";
60
61
cout<<"N=";cin>>n;
for ( i =1;i <=n;i++) P76. Scrieti un program care elimina dintr"un vector de numere
{ cout<<"x["<<i<<"] ="; 1ntregi acele elemente care nu pot fi notele obtinute de elevi.
cin>>x[i);}
cout<<"Vectorul este: "<<"\n"; using namespace std;
for ( i = 1;i<=n;i++) #include<iostream>
cout<<x[i)<<" "; in t x [50) , n, i, j ;
cout<<"\n"; int main(void)
{
for ( i=1;i<=n - 1;i++ )
{ p =x[i) *x[i+1); cout<<"Numarul de elevi: "; cin>>n;
if (x[i)<x[i+1)) cout<<"Nota obtinuta de "<<" \ n";;
{aux=x [i) ;x[i]=x[i+1] ;x [i+1] =a ux;} for {i=1;i<=n;i++ )
r=x[i) %x[i+1]; { cout<<"elevul "<<i<<" = ";cin>>x [ i ] ; }
while (r!=O ) cout<<"Vectorul: "<<" \ n";
{ x[i) =x[i+1); for(i=l;i<=n;i++ ) cout<<x[i]<<" ";
x[i+1]=r; cout<<"\n";
r=x [i] %x [i+1];} i = l;
x [ i] =x [ i + 1] ; whil e (i< =n)
X [ i + 1] =p I X [ i l ; }
if (x[i]<1 I I x[i]>lO )
cout<<"Cmrnrnc este "<<x[i]; { for ( j=i;j<=n - 1;j++ ) x[j] =x[j+l ] ;
n =n -1 ;}
else i++;
cout<<"Vectorul obtinut:"<<"\n";
P75. Sa se afi~eze Iista elevilor unei clase, folosind doi vectori for(i=l;i<=n;i++) cout<<x[i]<<" ";
care au ca elemente initialele numelor, respectiv prenumelor }
acestora.
P77. Datorita rezultatelor slabe obtinute In urma unei lucrari de
#include<string.h>
#include<iostream> control, elevilor unei clase li s-au marit notele cu doua puncte
using namespace std; dadi erau sub 5 ~i cu un punct daca erau peste 5, In acest fe l
int main () marindu-se ~i media pe clasa. Scrieti un program care realizeaza
{
acest Iucru ~i afi~eaza cu cat s-a marit media clasei.
int i,n;
char num[30],pren[30]; #include<iostream>
cout<<"Numarul de elevi: " ; cin> >n ; using namespace std;
cout<<"In i tialele elevilor: "<<"\n"; int n,i,j;
for ( i =1;i <=n;i++) float x[SO] ,s,mi,mf;
{ cout<<"Elevul "<<i<<":"<<"\n"; int main(void )
cin>>num[i] ;cin>>pren[i];} {
cout<<"Clasa: "<<" \n"; cout<<"Numarul de elevi: "; cin>>n;
for ( i=1;i<=n;i++) cout<<"Notele obtinute de "<<" \ n";;
cout<<num[i)<<" "<<pren[i)<<"\n"; for ( i=l;i<=n;i++ )
} do { cout<<"elevul "<<i<<" = ";
cin>>x[i] ;}
62 63
while(x[i)<l II x[i)>lO); k++;
cout<<"Notele ini tiale: "<<"\n"; y[k] =x[i);
for(i=l;i<=n;i++) cout<<x[i)<<" "; for(j=i;j< =n - l ; j ++) x[j]=x[j+l);
cout<<"\n"; n=n - 1; }
for ( i = l; i<=n; i++) s =s+x [i); else i++;}
mi = s/n; i =l;
cout<<"Media notelor initiale este "<<mi<<"\n"; while (i< =n)
s=O; if (x[i]<l I I x[i]>lO)
{ for(j=i;j<=n - l;j++) x[j)=x[j+l];
for(i = l;i<=n;i++)
{ if (x[i)<S) x[i) =x[i)+2; n=n - 1;}
else if (x[i)< = 9) x[i]=x[i)+l; else i++;
cout<<"Vectorul dupa eliminarea nr.prime:"<<"\n";
s=s+x[i);}
for(i = l;i<=n;i++) cout<<x[i]<<" ";
mf=s/n;
cout<<"Notele dupa marire:"<<"\n"; cout<<"\n";
c out<<"Vectorul numerelor prime:"<<"\n";
for ( i=l;i<=n;i++) cout<<x[i)<<" ";cout<<"\n";
for(i=l;i<=k;i++) cout<<y[i]<<" "; }
cout<<"Media finala este "<<mf; cout<<"\n";
cout<<"Media pe clasa a crescut cu "<<mf- mi;
cout<<"\n"; P79. Intr-o matrice patratica, sa se schimbe 1ntre ele doua linii
date.
P78. Scrieti un program care elimina dintr-un vector X de numere #include<iostream>
1ntregi elementele prime ~i formeaza un alt vector Y care are ca using namespace std;
elemente tocmai elementele eliminate din X. int n,i,j,a,b,aux,x[10] [10];
int main (void)
#include<iostream> {
using namespace std; cout<<"n="; cin>>n;
#include<math.h> for(i=1;i<=n;i++)
int x[50],y[50],n,i,j,k,ok; for(j =1;j<=n;j++)
{ cout<<"x["<<i<<"l ["<<j<<"] = ";
int main(void)
{ cin>>x [i] [j];}
cout<<"Matricea este: "<<"\n";
cout<<"N= "; cin>>n;
cout<<"Elementele: "<<"\n";; for(i =1;i<=n;i++l
for ( i = l;i<=n;i++) { for(j=1;j< =n;j++)
cout<<x [i] [j) <<"\t";
{cout<<"X["<<i<<"l= ";cin>>x[i];}
cout<<"Vectorul initial: "<<" \n"; cout<<"\n";}
cout<<"Dati liniile care se schimba!"<<"\n";
for ( i = l;i<=n;i++) cout<<x[i)<<" "; cout<<"Linia de schimbat: [ 1 .. "<<n<<"] : "; cin>>a;
cout<<"\n"; cout<<"Linia cu care se schimba: [ 1 .. "<<n<<"]
i=l;
while ( i<=n) ";cin>>b;
{ ok=l; for ( i=1;i<=n;i++)
for ( j =2;j<= ( int)x[i]/2;j++) { aux =x [a] [i];
if (x[i) %j==O) ok =O; x[a] [i] = x[b] [i];
if (ok== l ) { x [b] [i] =aux; }
65
64
cout<<"Matricea rezultata:"<<"\n"; P81. Sa se gaseasca elementul maxim dintr-o matrice de numere
fo r ( i=1;i<=n; i++ ) intregi.
{ for (j =1;j< =n;j++ )
cout<<x[i] [j]<<"\ t";
cout<<"\n";} #include<iostream>
using namespace std;
int m,n,i,j,maxim,a[10] [10];
int main (vo id )
P80. Sa se gaseasca acele linii dintr-o matrice de numere 1ntregi {
care au toate elementele negative. cout << "m="; c in>> n ;
cout<<"n= "; cin>>m;
# include<iostream> for(i =1; i<=m;i++)
us i ng namespace std; for ( j =1;j<=n;j++)
int m,n, i,j, k ,aux,a[1 0] [10] ,o k ; { cout<<"a ["< <i<<" l ["<<j<<"] = ";
int main (vo id ) cin>>a [ i ] [j];}
{ cout<<"Matricea es te: "<<" \n" ;
cout<<"m= "; cin>>m; for(i=l;i<=m;i++ )
cout<<"n ="; cin>>n; { for ( j=1;j<=n;j++ )
for ( i=1;i<=m;i++ ) cout<<a [ i] [j]<<"\t";
for ( j=1;j<=n;j++ ) cout<<" \n ";}
{ cout<<"a["<<i<<"] [" <<j<<" ] = "; maxim= a [ 1] [ 1] ;
cin>>a [i] [j];} for (i =1;i<=m;i++)
cout<<"Mat ricea este: "<<"\n"; for ( j=1;j<=n;j++ )
for(i = 1; i<=m;i++ ) if (maxim<a [ i ] [j]) maxim=a[i] [j];
{ for (j = 1;j<=n;j++) cout<<"Elementu l maxim este "<<max i m;
cout<<a[i] [j]<<"\t";
cout<<"\n";}
cout<<"Linii cu toate elementele negative:"<<"\n"; P82. Se da o matrice patratica de n numere 'intregi. Sa se afi~eze
for ( i=1;i<=m;i++)
{ ok=1;
matricea, sa se gaseasca numarul de elemente J:ntregi strict
f or(j =1;j<=n;j+ +) pozitive ~i sa se calculeze media aritmetica a acestora.
if (a[i] [j]> =O) ok = O;
if ( ok== 1 ) #include<iostream>
{ cout<<"Linia "<<i<<" "; using namespace std;
k++ ; } } in t n, i, j , k, s, x [ 10] [ 10 l ;
if (k==O) int main (vo i d)
cout<<" Nu exista linii cu toate elementele {
negative."; cout<<"n="; cin>>n;
} for ( i =1;i<=n;i++ )
f o r ( j=1;j <=n;j++)
{ co ut<<"x[" <<i <<"] ["<<j<<"] =" ;
cin>>x [i] [j];}
cout<<"Matricea este: "<<"\n";
for(i = 1;i<=n ;i++ )
67
66
for (j =1;j<=n;j++ ) for(i =1;i<=m;i++)
c out< <x[i ] [j]<<"\t"; { for ( j=1;j<=n;j++ )
c ou t <<" \n "; } if (a[i] [j] ! =maxim ) cout<<"*"<<" \ t";
for ( i=1;i<=n;i++) else cout <<a[i] [j]<<"\t";
for (j =1;j<=n;j++ ) cout<<"\n"; }
if (x[i] [j] >O )
{ s=s+x [i ] [j J;
k++;} P84 . Se da o matrice mxn de numere 'intregi. Sa se afi~eze
if (k== O) cout<<" Nu sunt numere pozitive. "; elementele marginate ale matricii (prima ~i ultima linie ~i
else{
cout<<"Sunt "<<k<<" elemente strict pozitive."; coloana) ~i '*' 'in rest.
cout<<"\n";
cout<<"Media aritmetica a acestora este "; #include<iostream>
cout<<(float)s/k; using namespace std;
} int m,n,i,j,a[10] [10];
int main (void)

do
P83. Sa se afi~eze elementul maxim dintr-o matrice M*N de { cout<<"m= "; cin>>m;
e lemente 'intregi ~i sa se afi~eze matricea 'inlocuind elementele cout<<"n= "; cin>>n;}
diferite de maxim cu '*'. while (m<3 I I n<3);
fo r (i=1;i<=m;i++)
#include<iostream> for ( j = 1;j<=n;j++ )
us ing namespace std; { cout<<"a["<<i<<"l ["<<j<<"J = ";
int m,n,i,j,maxim,a[10] [ 10]; c i n>>a[ i ] [j];}
i nt main (void ) cout<<"Matricea initiala : "<<"\n";
{ for ( i =1;i<=m;i++ )
cout<<"nr.lin. = "; ci n >>m; { f or ( j = l;j<=n;j++ )
cout<<"nr.col. = "; cin>>n; cout< <a [i] [j] <<" \ t";
for(i = 1;i<=m;i++) cout<<"\n";}
for ( j = 1;j<=n;j++) cout<<"Matricea obt inuta :"<<" \n ";
{ c ou t<<"a["<<i<<" J [ "<<j<<"J = "; fo r ( i = 1 ; i< =m;i++ )
cin>>a [i] [j l ;} { f or(j =1;j<=n;j++)
cou t<<" Ma tricea initiala este: "<<" \ n"; if ( i == 1 I I i ==m I I j == 1 I I j ==n)
for( i = 1;i<=m;i++) cout<<a[i] [j]<<"\t";
for ( j=1;j<=n;j++ ) else cout<<"* " <<"\t";
cout<<a[i] [j]<<"\t"; cout<<"\n";}
cout<<"\n";}
maxim= a [ 1] [ 1] ;
for(i=1;i< =m;i++)
for (j =1;j<=n;j++ )
if (maxim<a [ i ] [ j ]) maxim=a [i] [ j];
cout<<"Elementul maxim este:"<<maxim<<" \ n";
cout<<"Matricea devine:"<<"\n";
69
68
P85. Sa se gaseasca elementul minim dintr-o anumita coloana a cout<<"Matricea este: "<<"\n";
for(i=1;i< =n;i++)
unei matrice ale carei elemente sunt numere lntregi. { for(j =1;j<=n;j++ )
cout<<x[i] [j]<<" If.
I
# include<iostream>
cout<<"\n";
using namespace std;
int m,n,i,j,min,x,a[lO] [10];
for(i =1;i<=n;i++)
int mai n (void )
{
{
minim=x [ i] [ 1] ;
cout<< "m="; cin>>m;
for(j = 1;j<=n;j++ )
cout<<" n ="; cin>>n; i f (minim>x [ i] [ j] ) minim=x [ i] [ j] ;
for ( i=1;i<=m;i++ ) cout<<"Elementul minim pe linia "<<i;
for ( j=1;j<=n;j++) cout<<" este "<<minim<<"\n"; }
{ cout<<"a["<<i<<"] ["<<j<<"] = ";
cin>>a [i] [j];}
cout<<" Matricea este: "<<" \ n";
for ( i=1;i<=m;i++ )
P87. Sa se gaseasca elementul maxim dintr-o matrice de numere
{ for ( j=1;j<=n;j++) lntregi ~i sa se afi~eze pozitia(pozitiile) acestuia.
cout<<a[i] [j]<<"\t";
cout<<" \ n"; } #include<iostream>
cout<<"Alegeti o coloana! x="; using namespace std;
cin>>x; int m,n,i,j,a[10] [10] ,maxim;
int main (void)
min=a [1 ] [x]; {
for ( i=1;i<=m;i++ ) cout<<"n= "; cin>>n;
if (min>a [i] [x] ) min=a [i] [x]; cout<<"m= "; cin>>m;
cout<<"Elementul minim pe coloana "<<x<<" este for(i =1;i<=n;i++ )
"<<min; for(j =1;j<=m;j++ )
{ cout<<"a["<<i<<"l ["<<j<<"] = ";
cin>>a [i] [j];}
cout<<"Matricea este: "<<" \ n";
P86. Sa se determine elementul minim din fiecare linie a une1 maxim=a [ 1] [ 1] ;
matrice patratice de numere lntregi. for(i =1;i<=n;i++)
{ for(j = 1;j<=m;j++)
#include<iostream> { cout<<a [i] [j] <<"\t";
u sing namespace std; if (maxim<a [i] [j] ) maxim=a [i] [j]; }
int m, n ,i,j,x[10 ] [10],minim; cout<<"\n";}
int main (void ) cout<<"Elementul maxim este "<<maxim;
{ cout<<" si se gaseste pe: "<<"\n";
cout<< " n= " ; cin>>n; for(i =1;i<=n;i++)
for ( i=1;i<=n;i++ ) for(j=1;j< =m;j++)
for ( j=1;j<=n;j++ ) if (a[i] [j] ==maxim )
{ c o ut<<"x [ "<<i<<" l [ "<<j <<" l = "; cout<<"linia "<<i<<" coloana "<<j<<" \ n";
cin>>x [i] [j];}

70 71
P88. Se da o matrice patratica de n elemente intregi. Sa se cout<<"\n";}
cout<<"Cu ce valoare cresc elementele? ";
gaseasca elementul minim din matrice ~i sa se afi~eze pozitiile pe
cin>>val;
care se afla. for(i =1; i <=n;i++)
for ( j =1;j<=n;j++ )
#include<iostream> a[i) (j] =a(j] (i]+val;
using namespace std; cout<<"Matricea obtinuta: "<<"\n";
int n, i, j, minim, x [ 1 0 ] [ 10]; for(i=l ; i< =n;i++)
int main ( void ) { for(j=1;j< =n;j++)
{ co u t<<"n="; cin>>n; cout<<a[i) (j]<<"\t";
for ( i=1;i< =n;i++ ) cout<<"\n"; }
for ( j=1;j<=n;j++)
{ cout<<"x["<<i<<"] ["<<j<<"] = ";cin>>x[i) [j);}
cout<<" Matricea este: "<<"\n";
for ( i=1;i<=n;i++)
P90. Se da o matrice patratica NxN ale carei elemente sunt
{ for ( j=1;j<=n;j++ ) cout<<x[i] [j]<<"\t"; numere naturale din 1..9. Sa se afi~eze matricea obtinuta prin
cout<<"\n"; } lnlocuirea fiecarui element cu numarul obtinut prin adaugarea la
minim=x[1] [1]; elementul anterior, ca ultima cifra, a elementului corespunzator
for ( i = 1;i<=n;i++ )
for ( j = 1;j<=n;j++ )
din matricea initiala.
Exemplu: n=2
if (minim>x(i] [j]) minim=x[i] [j];
c ou t<<"Elementu1 minim este "<<minim;
cout<<" si se gaseste pe pozitiile:"<<"\n";
Matricea initiala: [ ~ ~ J
for ( i=1;i< =n;i++ )
for ( j = 1;j<=n;j++)
Matricea obtinuta: [ 2 26
261 2618
J
if ( x ( i] [j]==minim)
cout<<" linia "<<i<<" - coloana "<<j;
#include<iostream>
using namespace std;
int main (void)
P89. Intr-o matrice patratica de numere intregi, se mare~te fiecare {
element cu o valoare data. Afi~ati matricea obtinuta. int n,i,j,a[10] [10] ,lin, col;
long nr, b [ 10] [ 10] ;
# inc1ude<iostream> cout<<"n= "; cin>>n;
u sing namespace std; cout<<"Dati elementele! [1 . . 9]"<<"\n";
i nt n,i,j,a[lO] [10] ,val; for ( i =1;i<=n;i++ )
int main (void) for(j = 1;j<=n;j++)
{ c o ut<<"n="; cin>>n; { cout<<"a["<<i<<") ["<<j<<") = ";
f o r (i=1;i<=n;i++ ) do { c i n>>a[i] [j];
for ( j=1;j<=n;j++) i f (a[i] [j]<1 I I a(i] [j]>9)
{cout<<"a["<<i<<"] ("<<j<<"] = ";cin>>a[i] :jl;} {cout<<"Element incorect.Reintroduceti! ";
cout<<"Matricea initiala este: "<<"\n"; cout<< " a["<<i<<"l ["<<j<<"J="; } }
for ( i = 1;i<=n;i++) while (a[i] [j)<1 II a[i] [j]>9);
{ for ( j = l;j<=n;j++ ) cout<<a[i] [j]<<"\t";
72 73
cout<<"Matric e a initiala : "<<"\n";
for ( i=1;i<=n;i++ ) cout<<"Matricea sortata:"<<"\n";
{ for ( j = 1;j<=n;j++ ) cout<<a[i) [j)<<"\t"; for(i = l; i <=m;i++ )
cout<< "\ n";} { for ( j =1;j<=n;j++ )
cout<<" Matricea obtinuta:"<<"\n"; cout <<a [i) [j) <<" \ t";
nr = O; cou t <<"\n";}
for ( lin=1;lin<=n;lin++ )
{ for ( col =1;col<=n ; col++)
{ nr =nr*1 0 +a [ lin) [col); P92. Sa se ordoneze crescator, prin metoda bulelor, elementele de
b [ lin) [col]=nr;
cout<<b[lin) [col)<<"\t";} pe fiecare linie a unei matrice A[m,n] numere intregi.
cout<<"\n";}
#include<iostream>
using namespace std;
int n,i,a[10] [10] ,j,m,aux,ok;
P91. Sa se ordoneze crescator elementele de pe diagonala int main (void ) {
principala a unei matrice patratice de numere intregi. cout<<"m= "; cin>>m;
cout<<"n= "; cin>>n;
# include<iostream> for(i = l;i<=m;i++)
using namespace std; for(j = l;j<=n;j++ )
int n,i,a[10) [10) ,j,m,aux,ok; { cout<<"a [ "<<i<<") [ "<<j <<") =";
int main ( void ) cin>>a [i) [j);}
{ cout<<"Matricea initiala: "<<"\n";
cout<<"m= "; cin>>m; for(i =1;i<=m;i++)
cout<<"n= "; cin>>n; { for(j = l;j<=n;j++ )
for ( i=1;i<=m;i++ ) cout<<a[i] [j]<<"\t";
for ( j=1;j<=n;j++ ) cout<<"\n";}
{ cout<<"a [ "<<i<<") [ "<<j <<") = "; while(ok== O) /*bubble sort*/
cin>>a [ i) [j);} {ok= 1;
cout<<" Matricea initiala: "<<"\n"; for(i = 1;i<=m;i++ )
for ( i =1;i<=m;i++ ) { for(j = l;j<=n - l;j++ )
{ for ( j = 1;j<=n;j++ ) i f (a[i] [j)>a[ i ) [j+l) )
cout<<a[i) [j)<<"\t"; { aux =a [i) [j);
cout<<" \ n";} a [ i) [ j ) =a [ i J [ j + 1] ;
while ( ok==O ) / *bubble sort*/ a [ i] [ j + 1) =a ux;
{ok= 1; ok= O;}
for ( i = 1;i<=m;i++ ) }
{ for ( j=1;j<=n - 1;j++) }
if (a[i ) [j)>a[i) [j+1)) cou t <<"Matricea sortata:"<<"\n";
{ a ux= a [ i) [ j ) ; for(i = l;i<=m;i++)
a [i ) [ j J =a [i) [j+1); { for(j = 1;j<=n;j++ )
a [ i ) [ j + 1 ) =a ux; cout<<a [i] [j) <<" \ t";
ok=O; } cout<<"\n";}

l
74 75
P93. Sa se sorteze crescator, prin metoda bulelor, elementele unei P94. Sa se ordoneze descresci:itor elementele de pe ultima coloana
matrice A(m,n] de numere 'intregi. a unei matrice patratice de numere 'intregi.

#include<iostream> #include<iostream>
using namespace std; using namespace std ;
int m,n,i,j ,a[10] [10] ,aux,ok; int n,i,j,a[10] [10] ,aux,ok;
int main (void) int main (void)
{ {
cout<<"n="; cin>>n; cout<<"n="; cin>>n;
cout<<"m="; cin>>m; for(i=1;i<=n;i++)
for ( i=1;i<=n;i++ ) for(j=1;j<=n;j++)
=or ( j=1;j<=m;j++ ) { cout<<"a [ "<<i<<" ) [ "<<j <<"] =";
{ cout<<"a["<<i<<"J ["<<j<<"J ="; cin>>a [i] [j l;}
cin>>a [i) [j];} cout<<"Matricea in iti ala: "<<"\n";
cout<<"Matricea initiala este: "<<"\n"; for(i=1;i<=n;i++)
for(i=1;i<=n;i++) for(j=1;j<=n;j++)
{ for(j=1;j<=m;j++) cout<<a[i] [j]<<"\t";
cout<<a [i] [j] <<"\t"; cout<<"\n";}
cout<<"\n";} while(ok==O) /*bubble sort*/
while(ok==O ) {ok=l;
{ ok=1; for(i=1;i<=n - 1;i++)
for ( i=1;i<=n;i++) { if(a[i] [n]<a[i+1] [n))
{ for ( j=1;j<=m- 1;j++) { aux=a [i] [n);
if ( a[i] [j]>a[i] [j+1]) a [ i ] [ n] =a [ i + 1] [ n] ;
{ aux =a [ i] [ j ] ; a [ i + 1 ] [ n] =a ux ;
a [ i] [ j ] = a [ i] [ j + 1] ; ok=O;}
a [ i] [ j + 1] =a ux; }
ok=O;} }
if((i>1)&&(a[i - 1] [m]>a[i] [1])) cout<<"Matricea obtinuta:"<<"\n";
{ aux=a [i] [1]; for(i=1;i<=n;i++)
a[i] [1] =a [i - l] [m]; { for(j=1;j<=n;j++)
a[i -1 ] [m]=aux; cout<<a[i] [j]<<"\t";
ok=O; } cout<<"\n";}
}
}
cout<<"Matricea sortata este:"<<"\n"; P95. Sa se ordoneze crescator elementele de pe o coloana data a
for(i=1;i<=n;i++) unei matrice patratice de numere intregi.
{ for(j=1;j<=m;j++)
cout<<a[i] [j]<<"\t"; #include<iostream>
cout<<"\n";} using namespace std;
in t n, x, i, j , a [ 10] [ 10 J , a ux, o k;
int main (vo i d)

77
76
for(i=2;i<=n/2;i++ )
cout<<"n= "; cin>>n; if (n%i == 0) nr++;
for(i=l;i< =n;i++) if(nr == O) cout<<n<<" este prim.";
for(j=l;j<=n;j++) else cout<<n<<" nu este prim.";
{ cout<<"a["<<i<<") ["<<j<<"]=";
cin>>a [i) [j J;}
cout<<"coloana care se ordoneaza: ";cin>>x; P97. Se cite~te din fi~ierul 'nr. txt' un numar 'intreg N. Sa se afi~eze
cout<<"Matricea initiala: "<<"\n";
numarul gasit ~i numarul cifrelor sale.
for(i=l;i<=n;i++)
{ for(j=l;j<=n;j++)
cout<<a[i) [j)<<"\t"; #include<iostream>
cout<<"\n";} #include<fstream >
while(ok == O) /*bubble sort*/ using namespace std;
{ok=l; int n,nr,k;
for ( i=l ;i<=n - l;i++) char num[lO];
{ if(a[i) [x)>a[i+l) [x)) int main()
{
{ aux=a [i) [x);
a [ i J [ x J =a [ i + 1) [ x J ; cout<<"Numele fisierului: ";cin>>num;
a [i+l) [x) =aux; if stream f (num);
ok=O;} f>>n;
}
cout<<"Nr.din fisier este "<<n<<"\n";
} k= O;nr=n;
cout<<"Matricea obtinuta:"<<"\n"; while (n! = 0)
for(i = l;i<=n;i++) { n =n/lO;k++;}
{ for(j = l;j<=n;j++) cout<<nr<<" are "<<k<<" cifre.";
cout<<a[i) [j) <<"\t";
cout<<"\n";} P98. Se cite~te din fi~ierul 'nrl.txt' un numar 'intreg Nl. Sa se
scrie In fi~ierul'nr2.txt' numarul N2, obtinut din Nl prin citirea 'in
ordine inversa a cifrelor sale.
P96. Se citqte din fi~ierul 'nr.txt' un numar intreg N. Sa se
verifice daca el este prim. #include<iostream>
#include<fstream >
#include<iostream> using namespace std;
#include<f stream > int nl,n2;
using namespace std; int main ()
int n,nr,i; {
int main () fstream f("nrl.txt ",ios: :in);
{ f>>nl;
ifstream f("nr.txt"); cout<<"Nr.din fisierul nrl.txt este:"<<"\n";
f>>n; cout<<"Nl = "<<nl<<"\n";
cout<<"nr.din fisier este "<<n; fstream g("nr2.txt" , ios: :app);
cout<<"\n"; cout<<"Nr. schirnbat: N2=";
nr=O; //nr.de divizori while (nl! = O)

78 79
cout<<nl %10; int main ()
g<<nl %10; {
nl=nl /10; }
cout<<"\n"; in t n, i, j , a [50 l ;
f. close () ; ifstream f("date.in");
g.close () ; f>>n;
cout<<"Vezi fisierul nr2 . txt "; for(i = l;i<=n;i++) f>>a[i];
cout<<"Continutul fi s ierului:"<<"\n";
cout<<n<<"\n";
for(i = l;i<=n;i++) cout<<a[i]<<' ';
P99. Sa se afi~eze elementul maxim dintr-un vector de numere
cout<<"\n";
1ntregi aflat 1n fi~ierul 'sir. in'. cout<<"Perechile formate : "<<"\n";
for(i=l;i<=n;i++)
#include<iostream> for(j =i+l;j<=n;j++)
#include<fstream > cout<<"("<<a[ i ]<<","<<a[j]<<");";
using namespace std;
int n,i,v[lOO],maxim;
int main () P 101. Se citesc din fi~ierul mat_ fis.in datele despre o matrice
patratica de numere reale. Sa se afi~eze matricea initiala, apoi
{
if stream f ( "sir . in" ) ;
f>>n; matricea obtinuta prin inlocuirea elementelor de pe diagonala
for ( i = l;i<=n;i++) principala cu 0.
f>>v[i];
f.close ( ); #include<iostream>
cout<<"Sirul este: "<<"\n"; #include<fstream >
for(i=l;i<=n;i++) using namespace std;
cout<<v[i]<<" ".'
cout<<"\n"; float a[lOO] [100];
for(i = l;i<=n;i++) int n,i,j;
if (v[i]>maxim) int main ()
maxim= v[i]; {
cout<<"Elementul maxim este "<<maxim;
ifstream f("mat fis.in");
f>>n;
Pl 00. Se citesc din fi~ierul 'date .in' numarul de elemente (prima for(i = l;i<=n;i++ )
for(j = l;j<=n;j++)
linie) ~i elementele (linia a doua) pentru un vector de numere f>>a [i] [j];
1ntregi. Sa se afi~eze continutul fi~ierului ~i toate perechile f. close () ;
formate din fiecare element cu cele care-i urmeaza. cout<<"Matricea este: "<<"\n";
for(i = l;i<=n;i++)
#include<iostream> {
# include<fstream > for(j = l;j<=n;j++ )
using namespace std; cout<<a[i] [j]<<"\t";
81
80

l
cout<<" \ n";}
for ( i=l;i<=n;i++) BIBLIOGRAFIE
for(j=l;j<=n;j++)
if (i == j )
a[i][j]=O;
cout<<"Matricea obtinuta: "<<"\n";
for ( i=l;i<=n;i++) 1. Apostol C., Ro~ca I. Gh., Ro~ca V., Ghilic- Micu B.,
{ for ( j=l;j<=n;j++ ) Introducere in programare. Teorie ~i aplicatii, Editura
cout<<a[i] [j]<<"\t" ; Bucure~ti, 1993;
cout<<" \n ";} 2. Intuneric A., Sichim C., Informatica - Teste grila C/C++,
Editura Polirom, Bucure~ti, 2003;
3. Milo~escu M., Manual pentru clasa a IX-a, Editura didactica
~i pedagogica, Bucure~ti, 2008;
4. Popescu E., Ursache E., Neac~u C., Algoritmi & Limbajul
Pascal, Editura Else, Craiova 2003 ;
5. Preda D., Vitelaru S., Popescu E, Pascal & C - teste grila,
Editura Else, 2002;
6. Stoilescu D., Culegere de C/C++, Editura Radial, Galati,
1998;
7. Tudor Sarin, Informatica, Editura L&S, 2001;
8. Vi~an -D imitriu D., Pascal pentru liceu - probleme propuse ...
~i rezolvate, Editura Else, Craiova 2009;
9. Vi~an -D imitriu D., Limbajul algoritmic, Editura Else,
Craiova 2009;
10. *** ,Gazeta de informatica", Editura Libris, 1991 -2000.

82 83

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