You are on page 1of 18

1. Sa se calculeze: S=1+1*2+1*2*3+ +1*2*3* *n, unde n se citeste de la tastatura. #include<iostream.

h> int s,n,i,p; float x; main() { cout<<"n=";cin>>n; s=0;p=1; for(i=1;i<=n;i++) {p=p*i; s=s+p; } cout<<s; } 2. Se citeste un numar natural n. Afisati al n-lea termen al sirului lui Fi bonacci. Folositi o functie care ntoarce cel de-al n-lea termen al sirului lui Fi bonacci. #include<iostream.h> int n,i,v[100]; int fibo(int n) { v[1]=v[2]=1; for(i=3;i<=n;i++)v[i]=v[i-1]+v[i-2]; return v[n]; } main() { cout<<"n=";cin>>n; cout<<fibo(n); } 3. Se citesc de la tastatura 2 numere ntregi a si b (a<b). Creati fisierul a. txt care sa contina toate numerele prime din intervalul [a,b] #include<iostream.h> #include<fstream.h> int a,b,i,n,ok; main() { fstream g("a.txt",ios::out); cout<<"a=";cin>>a; cout<<"b=";cin>>b; for(n=a;n<=b;n++) {ok=1; for(i=2;i<=n-1;i++) if(n%i==0)ok=0; if(ok==1)g<<n<<" "; } g.close(); } 4. Se citesc de la tastatura 2 numere ntregi a si b (a<b). Afisati numarul c are are suma cifrelor maxima. Pentru aflarea sumei cifrelor unui numar se va fol osi o functie care are ca parametru un numar ntreg si returneaza suma cifrelor lu i. #include<iostream.h> int a,b;

int suma(int n) {int s=0; while(n>0){s=s+n%10;n=n/10;} return s; } main() { cout<<"a=";cin>>a; cout<<"b=";cin>>b; if(suma(a)>suma(b)) cout<<a; else cout<<b; } 5. Creati fisierul trei.out care sa contina pe prima linie toate numerele de trei cifre divizibile cu suma cifrelor lor. #include<fstream.h> int i; int suma(int n) {int s=0; while(n>0) {s=s+n%10;n=n/10;} return s; } main() { fstream g("trei.out",ios::out); for(i=100;i<=999;i++) if(i%suma(i)==0) g<<i<<" "; g.close(); } 6. Sa se afiseze n fisierul tri1.txt n n-1 n-2 3 2 1 3 2 1 2 1 1

triunghiul de numere:

unde n este un numar natural citit de la tastatura. #include<iostream.h> #include<fstream.h> int n,i,j; main() { cout<<"n=";cin>>n; fstream g("tri1.txt",ios::out); for(i=n;i>=1;i--) {for(j=i;j>=1;j--) g<<j<<" "; g<<endl; } g.close(); } 7. Sa se afiseze n fisierul tri2.txt 1 2 3 . N 1 1 1 2 2 3

triunghiul de numere:

unde n este un numar natural citit de la tastatura. #include<iostream.h> #include<fstream.h> int n,i,j; main() { cout<<"n=";cin>>n; fstream g("tri2.txt",ios::out); for(i=n;i>=1;i--) {for(j=1;j<=i;j++) g<<j<<" "; g<<endl; } g.close(); } 8. Se citesc doi vectori u si v cu cte n elemente fiecare. Scrieti un progra m care determina si afiseaza suma celor doi vectori. Citirea, afisarea si suma v ectorilor se vor face folosind proceduri. #include<iostream.h> int n,i,v[100],u[100],w[100]; void citire(int &n,int w[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"w["<<i<<"]=";cin>>w[i];} } void afisare(int n,int w[100]) { for(i=1;i<=n;i++)cout<<w[i]<<" "; } void suma(int u[100],int v[100],int w[100]) { for(i=1;i<=n;i++)w[i]=u[i]+v[i]; } main() { citire(n,u); citire(n,v); suma(u,v,w); afisare(n,w); } 9. Se citeste de la tastatura un sir de numere reale. Scrieti programul car e afiseaza valoarea elementului minim din sir. Pentru citirea, afisarea sirului precum si pentru determinarea minimului din sir se vor folosi subprograme. #include<iostream.h> int n,i; float v[100]; void citire(int &n,float v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } void afisare(int n,float v[100])

{ for(i=1;i<=n;i++)cout<<v[i]<<" "; } float minim(int n,float v[100]) {float min=v[1]; for(i=2;i<=n;i++)if(min>v[i])min=v[i]; return min; } main() { citire(n,v); afisare(n,v); cout<<endl; cout<<minim(n,v); } 10. Se citeste de la tastatura un sir de numere intregi. Scrieti programul c are afiseaza valoarea elementului maxim din sir. Pentru citirea, afisarea sirulu i precum si pentru determinarea maximului din sir se vor folosi subprograme #include<iostream.h> int n,i,v[100]; void citire(int &n,int v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } void afisare(int n,int v[100]) { for(i=1;i<=n;i++)cout<<v[i]<<" "; } int maxim(int n,int v[100]) {int max=v[1]; for(i=2;i<=n;i++)if(max<v[i])max=v[i]; return max; } main() { citire(n,v); afisare(n,v); cout<<endl; cout<<maxim(n,v); } 11. Se citeste de la tastatura un vector de numere ntregi si un numar natural k nenul. Creati un nou vector care sa contina toate elementele din vectorul dat care se divid cu k. Crearea noului vector se va realiza intr-un subprogram. #include<iostream.h> int n,i,k,n1,v[100],v1[100]; void afisare(int n,int v[100]) { for(i=1;i<=n;i++)cout<<v[i]<<" "; } void creare(int &n1,int v1[100]) {n1=0; for(i=1;i<=n;i++)

if(v[i]%k==0) {n1++;v1[n1]=v[i];} } main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} cout<<"k=";cin>>k; creare(n1,v1); afisare(n1,v1); } 12. Se citeste de la tastatura un vector de numere reale. Scrieti programul care afiseaza valoarea elementului minim din vector precum si pozitiile pe care acesta apare n vector. Pentru citirea, afisarea elementelor vectorului precum si pentru determinarea minimului din vector se vor folosi subprograme. #include<iostream.h> int n,i; float v[100]; void citire(int &n,float v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } void afisare(int n,float v[100]) { for(i=1;i<=n;i++)cout<<v[i]<<" "; } float minim(int n,float v[100]) {int i; float min; min=v[1]; for(i=2;i<=n;i++)if(min>v[i])min=v[i]; return min; } main() { citire(n,v); afisare(n,v); cout<<endl; cout<<minim(n,v); cout<<endl; for(i=1;i<=n;i++) if(v[i]==minim(n,v))cout<<i<<" "; } 13. Se citeste de la tastatura un vector de numere ntregi (folosind un subpro gram). Sunt toate elementele din vector nenule? #include<iostream.h> int n,i,ok,v[100]; void citire(int &n,int v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} }

main() { citire(n,v); ok=1; for(i=1;i<=n;i++) if(v[i]==0) ok=0; if(ok==1) cout<<"toate elementele sunt nenule"; else cout<<"nu toate elementele sunt nule"; } 14. Se citeste de la tastatura un vector de numere ntregi pozitive. Creati un nou vector care sa contina inversul fiecarui element din vectorul dat Afisati n oul vector. Pentru aflarea inversului unui numar se va folosi o functie. Obs: inversul lui 123 este 321. #include<iostream.h> int n,i,ok,v[100],w[100]; int invers(int x) { int rez=0; while(x>0) {rez=rez*10+x%10; x=x/10;} return rez; } main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} for(i=1;i<=n;i++) w[i]=invers(v[i]); for(i=1;i<=n;i++) cout<<w[i]<<" "; } 15. Se citeste de la tastatura un vector de numere ntregi Afisati cte numere perfecte sunt n vector. Un numar este perfect daca este egal cu suma divizorilor se va folosi un subprogram care verifica acea sai mai mici dect el. (ex: 6=1+2+3) sta proprietate. #include<iostream.h> int n,i,nr,v[100],w[100]; int verifica(int x) {int ok,s,i; ok=0;s=0; for(i=1;i<=x-1;i++) if(x%i==0) s=s+i; if(s==x) ok=1; return ok; } main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} nr=0; for(i=1;i<=n;i++) if(verifica(v[i])==1) nr=nr+1;

cout<<nr; } 16. Se citeste de la tastatura un vector de numere ntregi (folosind un subpro gram). Sa se scrie un program care calculeaza si afiseaza maximul dintre element ele pare ale vectorului sau afiseaza un mesaj n cazul n care nu exista numere pare n vector. #include<iostream.h> int n,i,max,v[100],ok; void citire(int &n,int v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } int maxim(int n,int v[100]) { for(i=1;i<=n;i++) if(max<v[i]&&v[i]%2==0)max=v[i]; return max; } main() { citire(n,v); ok=0; for(i=1;i<=n;i++) if(v[i]%2==0) {ok=1;max=v[i];} if(ok==0) cout<<"Nu exista numere pare"; else cout<<maxim(n,v); } 17. Se citeste de la tastatura un vector de numere ntregi (folosind un subpro gram). Sa se scrie un program care calculeaza si afiseaza media aritmetica a ele mentelor impare din vector sau afiseaza un mesaj n cazul n care nu exista numere impare n vector. #include<iostream.h> int n,i,v[100],ok; void citire(int &n,int v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } float medie(int n,int v[100]) {float ma;int s,nr; s=nr=0; for(i=1;i<=n;i++) if(v[i]%2==1){s=s+v[i];nr=nr+1;} ma=(float)s/nr; return ma; } main() { citire(n,v);

ok=0; for(i=1;i<=n;i++) if(v[i]%2==1) ok=1; if(ok==0) cout<<"Nu exista numere impare"; else cout<<medie(n,v); } 18. Se citeste de la tastatura un vector cu n elemente numere reale. Afisati vectorul obtinut dupa ordonarea crescatoare a elementelor sale. Ordonarea se va face ntr-un subprogram ce primeste ca parametru elementele sirului si le returne aza ordonate. #include<iostream.h> int n,i,ok; float v[100]; void citire(int &n,float v[100]) { cout<<"n=";cin>>n; for(i=1;i<=n;i++){cout<<"v["<<i<<"]=";cin>>v[i];} } void sortare(int n,float v[100]) {float aux;int i,j; for(i=1;i<=n-1;i++) for(j=i+1;j<=n;j++) if(v[i]>v[j]){aux=v[i];v[i]=v[j];v[j]=aux;} } main() { citire(n,v); sortare(n,v); for(i=1;i<=n;i++) cout<<v[i]<<" "; } 19. Se citeste de la tastatura o matrice cu n linii si m coloane. Sa se afis eze matricea si suma elementelor pozitive din matrice. Calculul sumei se va face cu ajutorul unui subprogram ce primeste ca parametru matricea si returneaza sum a. #include<iostream.h> int n,m,i,j,a[100][100]; void citire(int &n,int &m,int a[100][100]) { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} } int suma(int n,int m,int a[100][100]) {int s; s=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[i][j]>0)s=s+a[i][j]; return s; }

main() { citire(n,m,a); cout<<suma(n,m,a); } 20. Se citeste de la tastatura o matrice patratica. Sa se afiseze matricea s i elementul minim din matrice. Calculul valorii minime se va face cu ajutorul un ui subprogram ce primeste ca parametru matricea si returneaza minimul elementelo r ei. #include<iostream.h> int n,m,i,j,a[100][100]; void citire(int &n,int &m,int a[100][100]) { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} } int minim(int n,int m,int a[100][100]) {int i,j,min; min=a[1][1]; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(min>a[i][j])min=a[i][j]; return min; } main() { citire(n,m,a); for(i=1;i<=n;i++) {for(j=1;j<=m;j++)cout<<a[i][j]<<" "; cout<<endl;} cout<<minim(n,m,a); } 21. Se citeste de la tastatura o matrice patratica. Sa se afiseze matricea s i elementul maxim din matrice. Calculul valorii maxime se va face cu ajutorul u nui subprogram ce primeste ca parametru matricea si returneaza maximul elementel or ei. #include<iostream.h> int n,m,i,j,a[100][100]; void citire(int &n,int &m,int a[100][100]) { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} } int maxim(int n,int m,int a[100][100]) {int i,j,max; max=a[1][1]; for(i=1;i<=n;i++) for(j=1;j<=m;j++)

if(max<a[i][j])max=a[i][j]; return max; } main() { citire(n,m,a); for(i=1;i<=n;i++) {for(j=1;j<=m;j++)cout<<a[i][j]<<" "; cout<<endl;} cout<<maxim(n,m,a); } 22. Se citeste de la tastatura un numar natural N. Afisati al N-lea termen a l sirului lui Fibonacci. Folositi o functie care ntoarce cel de-al N-lea termen a l sirului lui Fibonacci. #include<iostream.h> int n,m,i,v[100]; int fibo(int n) {v[1]=v[2]=1; for(i=3;i<=n;i++) v[i]=v[i-1]+v[i-2]; return v[n]; } main() { cout<<"n=";cin>>n; cout<<fibo(n); } 23. Se citesc notele unui student obtinute la cele n examene din timpul unui an universitar. Sa se determine numarul de examene nepromovate precum si care a fost cea mai mare nota obtinuta. #include<iostream.h> int n,i,v[100],max,nr; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) {cout<<"v["<<i<<"]=";cin>>v[i];} max=v[1]; for(i=2;i<=n;i++) if(max<v[i]) max=v[i]; nr=0; for(i=1;i<=n;i++) if(v[i]<5) nr=nr+1; cout<<nr<<" "<<max; } 24. Se considera o matrice nepatratica (nxm) care contine elemente de tip re al. Afisati matricea si maximul de pe fiecare coloana a unei matrice. #include<iostream.h> int n,m,i,j; float a[100][100],max; main() {

cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=m;j++)cout<<a[i][j]<<" "; cout<<endl; } for(j=1;j<=m;j++) {max=a[1][1]; for(i=2;i<=n;i++) if(max<a[i][j]) max=a[i][j]; cout<<max<<endl; } } 25. Se da o matrice A nepatratica (n*m). Sa se construiasca o matrice B cu 2 coloane si n linii care sa contina indicii elementelor subunitare pozitive ale matricei A. Afisati cele 2 matrici. #include<iostream.h> int n,m,i,j,k; float a[100][100],b[10][10]; main() { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} k=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[i][j]<1&&a[i][j]>0) {k++;b[k][1]=i;b[k][2]=j;} for(i=1;i<=k;i++) {for(j=1;j<=2;j++)cout<<b[i][j]<<" "; cout<<endl;} } 26. Se da o matrice patratica A. Afisati matricea. Sa se nlocuiasca elementel e situate pe diagonala principala si pe diagonala secundara cu valoarea 0 (zero) . Afisati noua matrice. #include<iostream.h> int n,i,j,a[100][100]; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl;

} for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i==j||i+j==n+1) a[i][j]=0; for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } } 27. Se da o matrice patratica A. Afisati matricea si numarul elementelor par e de sub diagonala principala. #include<iostream.h> int n,i,j,a[100][100],nr; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(a[i][j]%2==0&&i<j) nr=nr+1; cout<<nr; } 28. Se considera o matrice de dimensiune n*m care contine elemente ntregi. Sa se afiseze suma elementelor pare de pe fiecare coloana. #include<iostream.h> int n,m,i,j,a[100][100],s; main() { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=m;j++) cout<<a[i][j]<<" "; cout<<endl; } for(j=1;j<=m;j++) {s=0; for(i=1;i<=n;i++) if(a[i][j]%2==0) s=s+a[i][j]; cout<<s<<" "; } }

29. Se considera o matrice de dimensiune n*m care contine elemente ntregi. Sa se afiseze numarul elementelor impare de pe fiecare linie. #include<iostream.h> int n,m,i,j,a[100][100],nr; main() { cout<<"n=";cin>>n; cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} for(i=1;i<=n;i++) {for(j=1;j<=m;j++) cout<<a[i][j]<<" "; cout<<endl; } for(i=1;i<=n;i++) {nr=0; for(j=1;j<=m;j++) if(a[i][j]%2==1) nr=nr+1; cout<<nr<<" "; } } 30. Sa se construiasca un imele n2 numere pare ncepnd Exemplu: Pentru n=4 se 2 4 6 8 10 12 18 20 22 24 tablou patratic de dimensiune n2 (1<= n<=50) cu pr cu 2. va afisa: 14 16 26 28 30 32 #include<iostream.h> int n,i,j,a[50][50],nr; main() { cout<<"n=";cin>>n; nr=2; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {a[i][j]=nr;nr=nr+2;} for(i=1;i<=n;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; }

} 31. Se da un tablou bidimensional cu n linii si m coloane (1<= n, m< =50) avn d componente ntregi. Sa se determine cel mai mare numar de pe marginea tabloului #include<iostream.h> int n,m,i,j,a[50][50],max; main() { cout<<"n=";cin>>n;

cout<<"m=";cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} max=a[1][1]; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(i==1||i==n||j==1||j==m) if(max<a[i][j])max=a[i][j]; cout<<max; } 32. Sa se verifice daca o matrice patratica este triunghiular superioara e elementele aflate sub diagonala principala sunt nule ). #include<iostream.h> int n,i,j,a[50][50],ok; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} ok=1; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i>j&&a[i][j]!=0) ok=0; if(ok==1)cout<<"matricea este superior triunghiulara"; else cout<<"matricea nu este superior triunghiulara"; } 33. Se da o matrice patratica A de dimensiune n*n. Sa se verifice daca matri cea este simetrica (adica aij=aji , 1<=i,j<=n). #include<iostream.h> int n,i,j,a[50][50],s,ok; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) {cout<<"a["<<i<<j<<"]=";cin>>a[i][j];} ok=1; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(a[i][j]!=a[j][i]) ok=0; if(s!=n-1)ok=0; if(ok==1) cout<<"matricea este simetrica"; else cout<<"matricea nu este simetrica"; } 34. Se citeste de la tastatura un sir de caractere s ce reprezinta un cuvnt d in dictionarul limbii romne. Sa se scrie acest cuvnt n limba pasareasca , adica se ins ereaza n sir dupa fiecare vocala subsirul format din litera p si vocala respectiva.

(toat

Exemplu: s= acoperire Rezulta s = apacoporeperipirepe #include<iostream.h> #include<string.h> int i; char sir[30],aux[30],*p; main() { cout<<"dati un sir=";cin>>sir; i=0;p=&sir[0]; while(i<=strlen(sir)) if(sir[i]=='a'||sir[i]=='e'|| sir[i]=='i'||sir[i]=='o'||sir[i]=='u') {p=&sir[i]; strcpy(aux,p); strcpy(p+1,"p"); strcpy(p+2,aux); i=i+3; } else i=i+1; cout<<sir; } 35. Se citeste de la tastatura un sir de caractere s ce reprezinta un cuvnt d in dictionarul limbii romne. Afisati toate sufixele sirului s. Ex: s= vara se va afisa a ra ara vara #include<iostream.h> #include<string.h> int i; char s[30]; main() { cout<<"dati un sir=";cin>>s; for(i=strlen(s)-1;i>=0;i--) cout<<&s[i]<<endl; } 36. Se citeste de la tastatura un sir de caractere s ce reprezinta un cuvnt d in dictionarul limbii romne. Afisati toate prefixele sirului s. Ex: s= vara se va afisa v va var vara #include<iostream.h> #include<string.h> int i; char s[30],aux[30]; main() { cout<<"dati un sir=";cin>>s; strcpy(aux,s); for(i=0;i<=strlen(s)-1;i++) {aux[i+1]=0; cout<<aux<<endl; strcpy(aux,s); } } 37. Se citeste de la tastatura un sir de caractere s ce reprezinta un cuvnt d in dictionarul limbii romne. Afisati sirul obtinut prin transformarea literelor m ari n mici si a celor mici n mari. #include<iostream.h> #include<string.h> char s[30];

int i; main() { cout<<"dati un sir=";cin>>s; for(i=0;i<=strlen(s)-1;i++) if(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+32; else if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32; cout<<s; } 38. Se citeste de la tastatura un sir de caractere (maxim 25 caractere). Ve rificati daca cuvantul are proprietatea de palindrom (daca cuvantul citit invers este identic cu cel dat). Ex: cojoc palindrom #include<iostream.h> #include<string.h> char sir[25],aux[25]; int i; main() { cout<<"dati un sir=";cin>>sir; strcpy(aux,sir); strrev(sir); if(strcmp(aux,sir)==0) cout<<"sirul e palindrom"; else cout<<"sirul nu e palindrom"; } 39. Se defineste o nregistrare cu numele MASINA care contine urmatoarele cmpur i: MARCA de tip string; CULOARE de tip string; PRET de tip real; Se citesc n nregistrari de tip MASINA, n numar ntreg. Sa se afiseze toate masinile avnd o anumita culoare citita de la tastatura si cu pretul mai mic dect o valoare data p (citita de la tastatura). #include<iostream.h> #include<string.h> struct masina {char marca[50],culoare[50]; float pret; }; int n,i; float p; char culoare[50]; masina v[100]; main() { cout<<"n=";cin>>n; for(i=1;i<=n;i=i+1) {cout<<"dati marca=";cin>>v[i].marca; cout<<"dati culoarea=";cin>>v[i].culoare; cout<<"dati pretul=";cin>>v[i].pret; } cout<<"dati culoarea dorita=";cin>>culoare; cout<<"dati pretul p=";cin>>p;

for(i=1;i<=n;i++) if(strcmp(v[i].culoare,culoare)==0&&v[i].pret<=p) cout<<v[i].marca<<" "<<v[i].culoare<<" "<<v[i].pret<<endl; } 40. Sa se determine termenul al n-lea din sirul lui Fibonnaci folosind un su bprogram recursiv. #include<iostream.h> int n,i; int fibo(int n) { if(n==1||n==2) return 1; else return fibo(n-1)+fibo(n-2); } main() {cout<<"n=";cin>>n; cout<<fibo(n); } 41. Sa se calculeze suma primelor n numere naturale folosind un subprogram r ecursiv. #include<iostream.h> int n; int suma(int n) { if(n==0) return 0; else return suma(n-1)+n; } main() {cout<<"n=";cin>>n; cout<<suma(n); } 42. Sa se afiseze suma cifrelor unui numar folosind un subprogram recursiv. #include<iostream.h> int n; int sumacifrelor(int n) { if(n==0) return 0; else return sumacifrelor(n/10)+n%10; } main() {cout<<"n=";cin>>n; cout<<sumacifrelor(n); } 43. Sa se afiseze cifrele unui numar (fiecare cifra pe o noua linie) folosin d un subprogram recursiv. #include<iostream.h> int n; int cifre(int n) { if(n>0) cifre(n/10); if(n>0) cout<<n%10<<endl; }

main() {cout<<"n=";cin>>n; cifre(n); } 44. Scrieti o functie recursiva care ridica un numar A la puterea N (A si N numere ntregi) #include<iostream.h> int a,n; int putere(int n) { if(n==0) return 1; else return putere(n-1)*a; } main() {cout<<"a=";cin>>a; cout<<"n=";cin>>n; cout<<putere(n); } 45. Scrieti o functie recursiva care ntoarce N factorial. #include<iostream.h> int n; int factorial(int n) { if(n==0) return 1; else return factorial(n-1)*n; } main() {cout<<"n=";cin>>n; cout<<factorial(n); }