Sunteți pe pagina 1din 11

Problema 1

Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<=15) i construiete n memorie o
matrice A cu n linii i n coloane n care orice element aflat pe prima linie sau pe prima coloan are valoarea 1 i
oricare alt element Aij din matrice este egal cu suma a dou elemente din matrice, primul aflat pe linia i i pe
coloana j-1 iar cel de-al doilea pe coloana j i pe linia i-1. Matricea va fi afiat pe ecran, linie cu linie, numerele
de pe aceeai linie fiind separate prin cte un spaiu. Exemplu: pentru n=4 , se obine matricea:

1111

1234

1 3 6 10
1 4 10 20
#include<iostream>
using namespace std;
int main()
{
int A[20][20],i,j,n;
cout<<"Dati numarul de linii 2<n<=15, n= ";
cin>>n;

for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if (i==1) A[i][j]=1;
else if (j==1) A[i][j]=1;
else A[i][j]=A[i][j-1]+A[i-1][j];

cout<<A[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

Problema 2
Scriei un program C/C++ care construiete n memorie o matrice cu 10 linii i 7 coloane ale crei elemente sunt
numere ntregi (cu maximum 3 cifre fiecare), citite de la tastatur, i afieaz pe ecran, suma tuturor elementelor
situate pe conturul matricei determinat de prima i ultima linie respectiv prima i ultima coloan a acestei matrice.
#include <iostream>

using namespace std;

int main()
{
int M[20][20],i,j,S=0;
for (i=1;i<=10;i++)
for (j=1;j<=7;j++)
{
cout<<"Dati elementul (cu maxim trei cifre) M["<<i<<"]["<<j<<"]= ";
cin>>M[i][j];
}
for (i=1;i<=10;i++)
{
1
for (j=1;j<=7;j++)
cout<<M[i][j]<<" ";
cout<<endl;
}

cout<<" Suma ceruta este = "<<endl;


for (j=1;j<=7;j++)
{
S=S+M[1][j];
S=S+M[10][j];
};
for (i=2;i<=9;i++)
{
S=S+M[i][1];
S=S+M[i][7];
};

cout<<S;

return 0;
}

Problema 3

/*Scrieti un program C/C++ care citeste de la tastatura doua caractere c1 si c2 si un text avnd cel mult 250 caractere
(spatii si litere ale alfabetului englez), pe care l modifica nlocuind toate aparitiile caracterului memorat n c1 cu cel
memorat n c2 si toate aparitiile caracterului memorat n c2 cu cel memorat n c1. Programul afiseaza pe linii
separate ale ecranului att textul initial ct si textul obtinut dupa efectuarea nlocuirilor. Exemplu: daca pentru c1 se
citeste a, pentru c2 se citeste o iar
textul citit este: hocus pocus preparatus se va afisa :
hocus pocus preparatus
hacus pacus preporotus
*/

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char c1,c2,sir[250];
int i;
cout<<"dati textul ";
cin.get(sir,250);
cout<<"dati c1 ";
cin>>c1;
cout<<"dati c2 ";
cin>>c2;
cout<<sir<<endl;
for(i=0;i<strlen(sir);i++)
{
if(sir[i]==c1) sir[i]=c2;
else
if(sir[i]==c2) sir[i]=c1;
}
cout<<sir<<endl;
return 0;
}

2
Problema 4
/*Scriei un program C/C++ care citete de la tastatur o fraz de maximum 255 de caractere (litere
mari ale alfabetului englez i spaii), ale crei cuvinte sunt desprite prin cte un spaiu i
afieaz pe primul rnd al ecranului numrul total al cuvintelor din fraz.*/

#include <iostream>
#include <string.h>

using namespace std;

int main()
{
char fraza[256];
int i,lung,nr=1;
cout<<"Dati fraza de maxim 255 de caractere: ";
cin.get(fraza,255);
lung=strlen(fraza);
for(i=0;i<lung;i++)
if (fraza[i]==' ') nr++;

cout<<"Numarul de cuvinte din fraza este= "<<nr;


return 0;
}

Problema 5
Scriei programul C/C++ care citete de la tastatur un numr natural n (n<20), construiete n memorie i
afieaz pe ecran, matricea cu n linii i n coloane, n care se vor memora n ordinea strict cresctoare a valorii, pe
linii i coloane, primele n2 numere naturale nenule, pare. Exemplu: dac pentru n se citete valoarea 4 se afieaz:

2468

10 12 14 16
18 20 22 24

26 28 30 32

#include <iostream>

using namespace std;

int main()
{
int n, A[25][25],i,j, man=0;
cout<<"dati n<20 numar intreg n= ";
cin>>n;
if (n>20) {cout<<"dati din nou un numar n<2; n= ";cin>>n;}
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{ A[i][j]=man+2;
man=man+2;
cout<<A[i][j]<<" ";
}
cout<<endl;
}

return 0;
}
3
Problema 6
Scriei programul C/C++ care citete de la tastatur un numr natural n (n 50) i construiete n memorie o
matrice cu n linii i n coloane, ale crei elemente sunt numere ntregi citite de la tastatur. Pentru fiecare coloan a
matricei, n ordine, programul afieaz pe ecran cel mai mic numr de pe respectiva coloan. Numerele afiate vor fi
separate prin cte un spaiu.

#include <iostream>

using namespace std;

int main()
{
int n,A[60][60],i,j,min;
cout<<"Dati dimensiunea matricii patrate n<50; n= ";
cin>>n;
if (n>50){cout<<"Dati din nou dimensiunea matricii patrate n<50; n= "; cin>>n; };
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
cout<<"Dati elementul A["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
}
//matricea originala

for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
//Rezolvare minim
cout<<endl;

for (j=1;j<=n;j++)
{
min=A[1][j];
for (i=2;i<=n;i++)
if (A[i][j]<min) min=A[i][j];
cout<<min<<" ";
}

return 0;
}

Problema 7
Se consider o matrice cu n linii i m coloane (1<n<30, 1<m<30), ce memoreaz numere ntregi de cel mult 4
cifre fiecare. Scriei un program C/C++ care citete de la tastatur valorile n, m i elementele matricei i care
afieaz pe ecran, separate prin cte un spaiu, valorile minime de pe fiecare coloan, n ordine de la prima la ultima
coloan.

#include <iostream>

using namespace std;

int main()
{

4
int n,m,A[35][35],i,j,min;
cout<<"Dati numarul de linii ale matricii n<30; n= ";
cin>>n;
if (n>30){cout<<"Dati din nou numarul de linii ale matricii n<30; n= "; cin>>n; };
cout<<"Dati numarul de coloane pentru matrice m<30; m= ";
cin>>m;
if (m>30){cout<<"Dati din nou numarul de coloane pentru matrice m<30; m= "; cin>>m; };

for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
cout<<"Dati elementul A["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
}
//matricea originala

for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
//Rezolvare minim
cout<<endl;

for (j=1;j<=m;j++)
{
min=A[1][j];
for (i=2;i<=n;i++)
if (A[i][j]<min) min=A[i][j];
cout<<min<<" ";
}

return 0;
}

Problema 8
/*Un sir cu maximum 255 de caractere contine cuvinte separate prin unul sau mai multe spatii. Cuvintele sunt
formate numai din litere mici ale alfabetului englez. Scrieti un program C/C++ care citeste un astfel de sir si l
afiseaza modificat, prima si ultima litera a fiecarui cuvnt fiind afisata ca litera mare.
*/
#include <iostream>
#include <string.h>

using namespace std;


int main()
{
char t[255];
int i,l,steag=1;
cout<<"text: ";
cin.get(t,256);
l=strlen(t);
for(i=0;i<l;i++)
if (steag && t[i]!=' ')
{ t[i]=toupper(t[i]);
steag=0;
}
else
if (t[i+1]==' ')
5
{ t[i]=toupper(t[i]);
steag=1;
}
t[l-1]=toupper(t[l-1]);
cout<<t;
return 0;
}

Problema 9
Se consider o matrice ptratic cu n linii i n coloane (1 n 30), ce memoreaz numere ntregi de cel mult 2 cifre
fiecare. Scriei un program C/C++ care citete de la tastatur valoarea n i elementele matricei i care afieaz pe
ecran produsul elementelor de pe diagonala secundar.

#include <iostream>

using namespace std;

int main()
{
int n,i,j,A[35][35],P=1;
cout<<"Dati dimensiunea matricii patrate n<30, n= ";
cin>>n;
while (n>30)
{
cout<<"Dati din nou o dimensiune a matricii n<30, n= ";
cin>>n;
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
cout<<"Dati elementul A["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
}
//Afisare matrice si calcul produs de diagonala secundara

for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{ if ((i+j)==(n+1)) P=P*A[i][j];
cout<<A[i][j]<<" ";
}
cout<<endl;
}

cout<<"Produsul elementelor de pe diagonala secundara este= "<<P;


return 0;
}

Problema 10

Problema 11
/*Un sir cu maximum 255 de caractere contine cuvinte separate prin caracterul *. Cuvintele sunt formate numai din
litere mici ale alfabetului englez. Scrieti un program C/C++ care citeste un astfel de sir si afiseaza pe ecran sirul
obtinut prin eliminarea tuturor aparitiilor primului cuvnt.*/

#include <iostream>
6
#include <string.h>

using namespace std;

int main()
{
char sir[256], subsir[256],*p;
int lung_subsir=0,i=0;
cout<<"introduceti textul (cuvintele, numai culitere mici, vor fi separate prin *) ";cin.get(sir,1000);
cin.get();
while (sir[i]!='*')
{
lung_subsir++;
i++;
};

strncpy(subsir,sir,lung_subsir);
subsir[lung_subsir]=sir[strlen(sir)];

p=strstr(sir,subsir);
while (p)
{
strcpy(p,p+lung_subsir);
p=strstr(p,subsir);
}
cout<<sir;
return 0;
}

Problema 12

Scriei un program C/C++ care citete de la tastatur un numr natural n (1n23) i apoi construiete n memorie o
matrice cu n linii i n coloane, numerotate de la 1 la n, astfel nct fiecare element situat pe o linie i (1in) i
pe o coloan j (1jn) va fi egal cu suma dintre i i j. Programul va afia matricea pe ecran, cte o linie a matricei
pe cte o linie a ecranului, elementele de pe aceeai linie fiind separate prin cte un spaiu.

#include <iostream>

using namespace std;

int main()
{
int A[20][20],i,j,n;
cout<<"Dati nr de linii si coloane ";
cin>>n;
while (n>23)
{
cout<<"Dati din nou n<23, n= ";
cin>>n;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
A[i][j]=i+j;
cout<<A[i][j]<<" ";
}
7
cout<<endl;
}
return 0;
}

Problema 13

Problema 14
Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n23) i apoi construiete n
memorie o matrice cu n linii i n coloane astfel nct elementele situate pe diagonala principal sa fie egale cu 2,
cele situate deasupra diagonalei principale s fie egale cu 1, iar cele situate sub diagonala principal s fie egale cu 3.

#include <iostream>

using namespace std;

int main()
{
int n, A[25][25],i,j;
cout<<"Dati numarul de linii ale matricei n<23, n= ";
cin>>n;

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if (i==j) A[i][j]=2;
else if (i<j) A[i][j]=1;
else if(i>j) A[i][j]=3;
}

for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
return 0;
}

Problema 15
Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n23) i apoi construiete n
memorie o matrice cu n linii si n coloane, format din numere naturale nenule mai mici sau egale cu n, astfel nct
s nu existe dou linii cu aceeai sum a elementelor i nici dou coloane cu aceeai sum a elementelor. Programul
va afia matricea pe ecran, cte o linie a matricei pe o linie a ecranului, cu un spaiu ntre elementele fiecrei linii.
Exemplu: dac n=3 atunci o soluie posibil este urmtoarea matrice:

1 1 1

1 1 2

1 2 3

#include <iostream>

using namespace std;

8
int main()
{
int n,i,j,A[30][30];
cout<<"Dati dimensiunea matricii patrate n<23, n= ";
cin>>n;
while(n>23)
{
cout<<"Dati din nou n<23, n= ";
cin>>n;
}
//constructie matrice.

for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if (i==1) A[i][j]=1;
else if (j==1) A[i][j]=1;
else A[i][j]=A[i-1][j-1]+A[i-1][j];
}

for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}

return 0;
}

Problema 16

Problema 17
Problema 18
Scriei un program C/C++ care citete de la tastatur dou numere naturale nenule m i n (m10, n10) i cele
m*n elemente (numere naturale mai mici dect 100) ale unui tablou bidimensional cu m linii, numerotate de la 1
la m, i n coloane, numerotate de la 1 la n; programul construiete n memorie i afieaz pe ecran tabloul dup
eliminarea liniei 1.

#include <iostream>

using namespace std;

int main()
{
int m,n, A[15][15],i,j;
cout<<"Dati numarul de linii ale matricei m<10, m= ";
cin>>m;
cout<<"Dati numarul de coloane ale matricei n<10, n= ";
cin>>n;

for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
{
cout<<"dati elementul A["<<i<<"]["<<j<<"]= ";
cin>>A[i][j];
}
//Afisare matrice originala
9
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}

//Afisare matrice fara linia 1


cout<<endl;
for (i=2;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<A[i][j]<<" ";
cout<<endl;
}
return 0;
}

Problema 19
/*Un cuvnt s, de cel mult 20 caractere, format doar din litere mici ale alfabetului englez, contine cel putin o
consoana. Scrieti programul C/C++ care citeste de la tastatura cuvntul s, construieste n memorie si afiseaza pe
ecran cuvntul obtinut prin eliminarea tuturor consoanelor din cuvntul s. Se considera consoana oricare litera care
nu se afla n multimea {a, e, i, o, u}.
*/
#include<iostream>
#include<string.h>
using namespace std;

int main()
{
char s[21],t[21],p[]="aeiou";
int i;
cin.get(s,21);
strcpy(t,"");
for (i=0;i<strlen(s);i++)
if (strchr(p,s[i]))
strncat(t,s+i,1);
cout<<t;
return 0;
}

Problema 20
Problema 21
Problema 22
Problema 23
Problema 24
#include <iostream>

using namespace std;

int main()
{
int n,i,j,A[100][100];
cout<<"Dati dimensiunea tabloului n= ";
cin>>n;

for (i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
10
{
if (j<=i) A[i][j]=i;
else A[i][j]=j;
cout<<A[i][j]<<" ";
}
cout<<endl;
}

return 0;
}

Problema 25

11

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