Sunteți pe pagina 1din 11

SUBIECTE PROGRAMARE PENTRU CLASELE DE MATEMATIC-INFORMATIC

1. S se realizeze un program pentru rezolvarea ecuaiei de gradul II: ax2+bx+c=0, a,b,cR, a0.
#include<iostream.h>
int main()
{ float a,b,c,d;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
d=b*b-4*a*c;
if(d<0) cout<<"nu avem solutii reale";

else if(d>0)
{ cout<<"x1="<<(-b+sqrt(d))/(2*a);
cout<<endl;
cout<<"x2="<<(-b-sqrt(d))/(2*a);
cout<<endl;
}
else cout<<"x1=x2="<<-b/(2*a);
}

2. Se d un numr natural cu cel mult 9 cifre. S se afle numrul de cifre pare din el.
#include<iostream.h>
int main()
{ long n;
int p=0,c;
cout<<"n="; cin>>n;
while(n>0)

{c=n%10;
if(c%2==0) p++;
n=n/10;
}
cout<<"p="<<p;
}

3. Se citesc 3 numere naturale de la tastatur. S se determine i s se afieze cel mai


mare divizor comun i cel mai mic multiplu comun al lor.
#include<iostream.h>
int cmmdc(int a,int b)
{ while(a!=b)
if(a>b) a= a-b;
else b= b-a;
return a;
}
int main()
{ int a,b,c,x,y,z,k,p;

cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
x=cmmdc(a,b); y=a*b/x;
x=cmmdc(x,c); y=y*c/x;
cout<<"cmmdc= "<<x;
cout<<"cmmmc= "<<y;
}

4. Se citete un numr de la tastatur. S se afieze oglinditul su (numrul obinut


prin inversarea cifrelor numrului iniial).
#include<iostream.h>
int main()
{ long n,inv=0, c;
cout<<"n="; cin>>n;
while(n!=0)
{ c=n%10;

inv=inv*10+c;
n=n/10;
}
cout<<inv;
}

5. Se citete un numr introdus de la tastatur.


a. S se afieze suma tuturor divizorilor si.
1

b. S se verifice dac este perfect.


Observaie. Un numr natural este perfect dac este egal cu suma divizorilor si.
Exemplu: 6 este perfect deoarece 6=1+2+3.
if(n%i==0) s=s+i;
#include<iostream.h>
cout<<"suma diviz este:"<<s;
int main()
if(s-n= =n)
{int n,s,i;
cout<<endl<<"nr este perfect";
cout<<"n=";cin>>n;
else cout<<endl<<"nr nu este
s=0;
perfect";
for(i=1;i<=n;i++)
}
6. Se citesc de la tastatur trei note obinute de un elev ntr-un semestru. S se scrie
un program care, n funcie de dorina utilizatorului realizeaz una din urmtoarele
aciuni: calculeaz i afieaz media notelor, afieaz cea mai mare sau cea mai
mic dintre note.
#include<iostream.h>
int main()
{ int a,b,c,min,max,m=5,x;
bool x;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
while( m!=4)
{ cout<<"1.media notelor "<<endl;
cout<<"2.nota maxima "<<endl;
cout<<"3.nota minima "<<endl;
cout<<"4. stop"<<endl;
cout<<"Introduceti optiunea:";
cin>>m;
switch(m){
case 1:

{ cout<<(float)(a+b+c)/3<<endl<<endl;
break; }
case 2:
{ if(a>b) max=a;
else max=b;
if(c>max) max=c;
cout<<max<<endl<<endl; break;
}
case 3:
{ if(a<b) min=a;
else min=b;
if(c<min) min=c;
cout<<min<<endl<<endl; break;
}
} }}

7. S se afieze un meniu de forma:


1.Triunghi 2.Dreptunghi 3.Cerc 4.Terminare
Alegeti 1,2,3 sau 4.
n funcie de opiunea utilizatorului i de cte ori dorete acesta, se vor introduce
lungimile laturilor figurii alese/raza cercului. Se va afia perimetrul i aria figurii
geometrice alese. Selectarea opiunii 4 determin oprirea programului.
#include<iostream.h>
int main()
{ int opt, l1, l2, l3, r, p, k;
float a,sp;
const float pi=3.14;
do {cout<<"1.triunghi";
cout<<endl<<"2.dreptunghi";
cout<<endl<<"3.cerc";
cout<<endl<<"4.terminare";
cout<<endl<<"optiunea dvs este: ";

cin>>opt;
switch(opt)
{ case 1:
{cout<<"l1= "; cin>>l1;
cout<<"l2= "; cin>>l2;
cout<<"l3= "; cin>>l3;
p=l1+l2+l3;
sp=(float)p/2;
a=sqrt(sp*(sp-l1)*(sp-l2)*(sp-l3));
cout<<"perim este: "<<p<<" |";

cout<<"aria este:<<a<<endl;
break; }
case 2:
{cout<<"l1= "; cin>>l1;
cout<<"l2= "; cin>>l2;
p=2*(l1+l2);
a=l1*l2;
cout<<"perim este: "<<p<<" ";
cout<<"aria este:<<a<<endl;
break; }
case 3:
{cout<<"raza= "; cin>>r;

cout<<"lungimea cercului=;
cout<<2*pi*r<<" ";
cout<<"aria cercului= ";
cout<<pi*pow(r,2)<<endl;
break; }
default:
cout<<"ati introdus o valoare
gresita";
}
} while(opt<4);
}

8. S se realizeze un program pentru calcularea sumei urmtoare:


S=(1!)2(2!)2+(3!)2+(1)n+1(n!)2, pentru n (n8) numr natural dat.
#include<iostream.h>
int factorial(int x)
{int p=1, i;
for(i=1;i<=x;i++)
p=p*i;
return p;
}
int main()

{int s=0, n, i;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
if(i%2==1)
s=s+factorial(i)*factorial(i);
else s=s-factorial(i)*factorial(i);
cout<<"suma este:"<<s;
}

9. S se realizeze un program pentru calculul expresiei:


S= x +

x2
1 +2

x3
+ 1 + 2 + 3 +.+

xn
, pentru x numr real, iar n numr
1 + 2 + ... + n

natural dat.
#include<iostream.h>
int main()
{int i, n;
float x, s=0,k=0,p=1;
cout<<"n= "; cin>>n;
cout<<"x="; cin>>x;
for(i=1;i<=n;i++)

{ p=p*x;
k=k+i;
s=s+p/k;
}
cout<<"suma este: "<<s;
}

10. Se citete un numr natural de la tastatur. S se introduc ntr-un vector cifrele


distincte din care este format.
#include<iostream.h>
int main()
{l ong int a[20], n,k=0,x,i,ok;
cout<<" n: ";cin>>n;
while(n!=0)

{ x=n%10;
ok=0;
for(i=1;i<=k;i++)
if(x==a[i]) ok=1;
if(ok==0) { k++;

a[k]=x; }

for(i=1;i<=k;i++)
cout<<a[i]<<" ";
}

n=n/10;
}

11. Se citete un ir de n numere reale de la tastatur. S se afieze elementele irului


n ordine descresctoare (n natural dat).
#include<iostream.h>
int main()
{int n,a[20],i,aux,ok;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";
cin>>a[i];
}
ok=0;
while (ok==0)
{ ok=1;

for(i=1;i<n;i++)
if(a[i]<a[i+1])
{aux=a[i]; a[i]=a[i+1];
a[i+1]=aux;
ok=0;}
}
cout<<"vectorul ordonat este:";
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}

12. Se citete un ir de n (n natural dat) numere ntregi citite de la tastatur i un numr


ntreg x. Se cere s se verifice dac numrul ntreg x se gsete sau nu n irul dat,
iar n caz afirmativ s se afieze poziia pe care se gsete.
#include<iostream.h>
int main()
{int n,ok=0,p,x,i,a[10];
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{cout<<"a["<<i<<"]=";
cin>>a[i];}
cout<<"x=";cin>>x;

for (i=1;i<=n;i++)
if(a[i]==x) {ok=1;
p=i;}
if(ok==1) cout<<"elementul se afla in
vector pe pozitia "<<p;
else cout<<x<<" nu se gaseste in
vector";
}

13. Se citete un ir de n numere de la tastatur, s se afieze minimul i maximul


dintre elementele irului (n natural dat).
#include<iostream.h>
int main()
{ int n,a[20],i,min, max;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{ cout<<"a["<<i<<"]=";
cin>>a[i];}
min=a[1];

max=a[1];
for(i=1;i<=n;i++)
{ if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i]; }
cout<<"min="<<min;
cout<<"max="<<max;
}

14. Se citesc n numere naturale de la tastatur. Se cere s se verifice dac numerele


date sunt sau nu n ordine cresctoare.
#include<iostream.h>
int main()
{ int n,a[20],i,ok=1;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)

{ cout<<"a["<<i<<"]=";
cin>>a[i];}
for(i=1;i<=n;i++)
if(a[i]>a[i+1]) ok=0;
if(ok==1) cout<<"sunt ordonate";

else

cout<<"nu sunt ordonate";

15. Se citesc de la tastatur dou numere naturale a i b (a<b). S se afieze toate


numerele prime din intervalul [a,b] i numrul lor.
#include<iostream.h>
int prim(int x)
{ int k=1,i;
for(i=2;i<x/2;i++) if(x%i==0) k=0;
return k;
}
int main()
{int a,b,i,nr=0;

cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
for(i=a;i<=b;i++)
if (prim(i))
{cout<<i<<" ";
nr++;}
cout<<endl<<"nr="<<nr;
}

16. Se dau dou iruri cu m, respectiv n elemente (m,n numere naturale date). S se
afieze reuniunea elementelor celor dou iruri.
#include<iostream.h>
void citire(int x[20],int &n)
{ int i;
cout<<"numarul de elemente";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"element["<<i<<"]=";
cin>>x[i];}
}
void afisare(int x[20],int n)
{ int i;
for(i=1;i<=n;i++)
cout<<x[i]<<" ";
cout<<endl;
}
int main()
{ int a[20],b[20],c[20],m,n,k,x,i,j;

citire(a,m);
cout<<endl;
citire(b,n);
afisare(a,m);
afisare(b,n);
for(i=1;i<=m;i++) c[i]=a[i];
k=m;
for(i=1;i<=n;i++)
{ x=0;
for(j=1;j<=k;j++)
if(b[i]==c[j]) x=1;
if(x==0) {k=k+1;
c[k]=b[i];}
}
afisare(c,k);
}

17. Se dau dou iruri cu m, respectiv n elemente (m,n numere naturale date). S se
afieze intersecia elementelor celor dou iruri.
#include<iostream.h>
#include<conio.h>
int main()
{ int m,n,i,j,k=0,a[50],b[50],c[50],ok;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
{cout<<"a["<<i<<"]=";
cin>>a[i]; }
for(j=1;j<=n;j++)
{cout<<"b["<<j<<"]=";

cin>>b[j]; }
for(j=1;j<=n;j++)
{ ok=0;
for(i=1;i<=m;i++)
if(a[i]==b[j]) ok=1;
if(ok) {k++;
c[k]=b[j];}
}
for(i=1;i<=k;i++)
cout<<c[i]<<" ";
}

18. S se realizeze un program care citete de la tastatur n nregistrri, pentru elevii


unei clase, cu structura: nume, prenume, medie. S se afieze elevii n ordine
alfabetic i s se calculeze media general a clasei.

while(ok==0)
{ok=1;
for(i=1;i<=n-1;i++)
if(strcmp(a[i].nume,a[i+1].nume)>0)
{ aux=a[i]; a[i]=a[i+1]; a[i+1]=aux;
ok=0;}
}
for(i=1;i<=n;i++)
cout<<a[i].nume<<"
<<a[i].prenume<<"
"<<a[i].media<<endl;
for(i=1;i<=n;i++)
s=s+a[i].media;
cout<<"media="<<(float)s/n;
}

#include<iostream.h>
struct elev
{char nume[20],prenume[20];
float media; };
elev a[30],aux;
int n,i,ok;
float s;
int main()
{ cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{ cout<<"nume:";cin>>a[i].nume;
cout<<"prenume:";cin>>a[i].prenume;
cout<<"media:";cin>>a[i].media;}
ok=0;

19. Se citete de la tastatur o fraz format din maxim 100 de caractere, folosindu-se
ca i separatori spaiul sau virgula. Se cere s se afieze cuvintele frazei n ordine
alfabetic, fiecare cuvnt pe cte un rnd.
ok=0;
while(ok==0)
{ok=1;
for(i=1;i<=k-1;i++)
if(strcmp(a[i], a[i+1])>0)
{strcpy(aux, a[i]);
strcpy(a[i], a[i+1]);
strcpy(a[i+1], aux);
ok=0; }
}
for(i=1;i<=k;i++)
cout<<a[i]<<endl;
}

#include<iostream.h>
int main()
{char s[100], a[20][15], *p, sep[]=" ,",
aux[100];
int k, i, ok;
cout<<"introduceti sirul: ";
cin.get(s, 100);
k=0;
p=strtok(s, sep);
while(p)
{ k++;
strcpy (a[k], p);
p=strtok(NULL, sep); }

20. S se realizeze un program care calculeaz numrul de combinri C nk , pentru n i


k dai.
return p;}
int main()
{cout<<"n="; cin>>n;
cout<<"k="; cin>>k;
cout<<"combinari:"<<factorial(n)/
(factorial(k)*factorial(n-k));
}

#include<iostream.h>
int n,k;
int factorial(int n)
{int i, p=1;
for(i=1;i<=n;i++)
p=p*i;

21. S se ntocmeasc un program care citete un ir de caractere i nlocuiete


caracterul a cu irul aaa.
#include<iostream.h>
int main()
{char s[100],d[100];
int i,k=0;
cout<<"s="; cin.get(s,100);
for(i=0;i<strlen(s);i++)
{ d[k]=s[i];

k++;
if(s[i]=='a') { d[k]=d[k+1]='a';
k=k+2;
}
}
d[k]=0;
cout<<d;}

22. S se realizeze un program care citete de la tastatur n nregistrri cu structura:


denumire, cantitate, pre. S se afieze produsul (produsele) care are (au) preul cel
mai mare.
cout<<"pret:"; cin>>a[i].pret; }
float max;
max=a[1].pret;
for(i=2;i<=n;i++)
if(a[i].pret>max) max=a[i].pret;
cout<<"produsele cu pretul cel mai mare
sunt:"<<endl;
for(i=1;i<=n;i++)
if(a[i].pret==max)
cout<<a[i].denumire<<"
"<<a[i].cantitate<<" "<<a[i].pret<<endl;
}

#include<iostream.h>
struct produs
{char denumire[20];
int cantitate;
float pret; };
produs a[20];
int n, i;
int main()
{cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
{cout<<"denumire:";cin>>a[i].denumire;
cout<<"cantitate:"; cin>>a[i].cantitate;

23. Se citesc dou numere complexe date prin parte real i parte imaginar. S se
afieze suma, produsul i raportul celor dou numere.
cout<<"suma:"<<(x1+x2)<<"+"<<(y1+y2
)<<"i"<<endl;
cout<<"produsul:"<<(x1*x2y1*y2)<<"+"<<x1*y2+y1*x2<<"i"<<endl;
cout<<"raport:"<<(x1*x2+y1*y2)/
(x2*x2+y2*y2)<<"+"<<(y1*x2-x1*y2)/
(x2*x2+y2*y2)<<"i"<<endl;
}

#include<iostream.h>
int main()
{int c1,c2,x1,y1,x2,y2;
cout<<"Re(1)="; cin>>x1;
cout<<"Re(2)="; cin>>x2;
cout<<"Img(1)="; cin>>y1;
cout<<"img(2)="; cin>>y2;

24. S se calculeze produsul a dou numere naturale prin adunri repetate.


cout<<"b="; cin>>b;
for(i=1;i<=a;i++)
p=b+p;
cout<<"p="<<p;
}

#include<iostream.h>
main()
{int a,b, i, p=0;
cout<<"a="; cin>>a;

25. S se efectueze mprirea a dou numere naturale prin scderi repetate.


#include<iostream.h>
int main()
{int a,b,i,s=0;
cout<<"a=";cin>>a;
cout<<"b="; cin>>b;

while(a>=b) {a=a-b;
s++; }
cout<<"catul este:"<<s<<endl;
cout<<"restul este:"<<a;
}

26. Se dau dou iruri. S se verifice dac sunt egale, fr a face deosebire ntre literele
mici i mari.
cout<<"sirul2:"; cin.get(s2,100);
if(stricmp (s1,s2)==0) cout<<"sirurile
sunt egale";
else cout<<"sirurile nu sunt
egale";
}

#include<iostream.h>
int main()
{char s1[100], s2[100];
cout<<"sirul1:"; cin.get(s1,100);
cin.get();

27. Se citete de la tastatur un ir de caractere (maxim 25 caractere). Verificai dac


cuvntul are proprietatea de palindrom (dac cuvntul citit invers este identic cu
cel dat).
Ex: cojoc palindrom
#include<iostream.h>
int main()
{char s[26];
int i,j,ok=1;
cout<<"sir:"; cin>>s;
i=0; j=strlen(s)-1;
while((i<j)&&(ok==1))

{if(s[i]!=s[j]) ok=0;
i++;
j--; }
if(ok==1) cout<<"are proprietati
palindrom";
else cout<<"nu are propriet";
}

de

28. Se citete un cuvnt. S se afieze toate prefixele sale (fiecare pe un rnd).


#include<iostream.h>
int main()
{char s[100];
int i,j;
cout<<"sirul:"; cin>>s;

for(i=1;i<=strlen(s); i++)
{ for(j=0; j<=i-1; j++)
cout<<s[j];
cout<<endl; }
}

29. Se citete un ir de numere ntregi cuprinse ntre 0-255 pn la ntlnirea valorii 0.


S se afieze numerele distincte dintre cele citite.
if(a[i]==x) ok=1;
if(ok==0) {n++;
a[n]=x;}
cout<<"x="; cin>>x;}
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
}

#include<iostream.h>
int main()
{int a[100], x, i, n=1, ok;
cout<<"x="; cin>>x; a[1]=x;
while(x!=0)
{ok=0;
for(i=1;i<=n;i++)

30. Se citete un text format din maxim 50 de caractere, format din litere mari. S se
afieze literele distincte din textul citit.
{cin.get(s,51);
#include<iostream.h>
for(c='A';c<='Z';c++)
char s[51],c;
if(strchr(s,c))
int i,v[28];
cout<<c<<" ";
int main()
}
31. S se determine cifrele comune a dou numere naturale date.
a=a/10;
v[c]++;}
while(b!=0)
{d=b%10;
b=b/10;
x[d]++; }
for(i=0;i<=9;i++)
if(y[i]!=0&&x[i]!=0) cout<<i<<" ";
}

#include<iostream.h>
int main()
{int i, a, b, c,d, x[10], y[10];
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
for(i=0;i<=9;i++) {y[i]=0;x[i]=0;}
while (a!=0) {c=a%10;

32. Se consider o matrice neptratic (n*m) care conine elemente de tip real. Afiai
matricea i maximul elementelor din matrice.
for(i=1; i<=n; i++)
{ for(j=1; j<=m; j++)
cout<<a[i][j]<<" ";
cout<<endl; }
max=a[1][1];
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(a[i][j]>max) max=a[i][j];
cout<<"max="<<max;
}

#include<iostream.h>
int main()
{int m, n, i, j, max;
float a[20][20];
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j]; }

33. Se d o matrice A neptratic (n*m). S se construiasc o matrice B de dimensiune


n*m s conin elementelor subunitare pozitive ale matricei A, pe aceleai poziii
i 0 n rest. Afiai cele 2 matrici.
#include<iostream.h>
int main()
{int n, m, i, j;
float a[20][20], b[20][20];
cout<<"m="; cin>>m;
cout<<"n="; cin>>n;
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++)

if(a[i][j]>0&&a[i][j]<1) b[i][j]=a[i][j];
else b[i][j]=0;
cout<<"matricea initiala:"<<endl;
for(i=1; i<=n; i++)
{ for(j=1; j<=m; j++)
cout<<a[i][j]<<" ";
cout<<endl; }
cout<<"matricea finala:"<<endl;
for(i=1; i<=n; i++)
{ for(j=1; j<=m; j++)
cout<<b[i][j]<<" ";
cout<<endl; }
}

34. Se d o matrice ptratic A. Afiai matricea. S se nlocuiasc elementele situate


pe diagonala principal i pe diagonala secundar cu valoarea 0 (zero). Afiai
noua matrice.
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl; }
for(i=1;i<=n;i++)
a[i][i]=a[i][n+1-i]=0;
cout<<" Matricea finala:"<<endl;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl; }
}

#include<iostream.h>
int main()
{int a[20][20],n,i,j;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j]; }
cout<<"Matricea initiala:"<<endl;
for(i=1;i<=n;i++)

35. Se d o matrice ptratic A. Afiai matricea i numrul elementelor pare de sub


diagonala principal.
cout<<"n="; cin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n;j++)
{ cout<<"a["<<i<<"]["<<j<<"]=";

#include<iostream.h>
int main()
{int a[20][20], n ,i , j, k=0;

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&&a[i][j]%2==0) k++;
cout<<"k="<<k;
}

36. Se consider o matrice de dimensiune n*m care conine elemente ntregi. S se


afieze suma elementelor pare ale matricei.
#include<iostream.h>
int main()
{int a[20][20], n ,m ,i , j, s=0;
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++)
if(a[i][j]%2==0) s=s+a[i][j];
cout<<"s="<<s;
}

37. Se consider o matrice de dimensiune n*m care conine elemente ntregi. S se


afieze numrul elementelor impare ale matricei.
#include<iostream.h>
intin()
{int a[20][20], n, m, i, j, k=0;
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++)
if(a[i][j]%2!=0) k++;
cout<<"k="<<k;
}

38. Se d un tablou bidimensional cu n linii i m coloane (1<= n, m< =50) avnd


componente ntregi. S se determine cel mai mare numr de pe marginea tabloului.
#include<iostream.h>
int main()
{int a[20][20], n, m, i, j, max;
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++)
{ if (a[i][1]>max) max=a[i][1];
if (a[i][m]>max) max=a[i][m]; }
for(j=1; j<=m; j++)
{ if (a[1][j]>max) max=a[1][j];
if (a[n][j]>max) max=a[n][j]; }
cout<<"max="<<max;
}

39. S se verifice dac o matrice patratic este triunghiular superioar (toate


elementele aflate sub diagonala principal sunt nule).
#include<iostream.h>
int main()
{int a[20][20], n ,i , j, ok;
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 e triunghiular
superioara";
else cout<<" matricea nu e triunghiular
superioara";
}

10

40. Se d un tablou bidimensional cu n linii i m coloane (1<= n, m<=50) avnd


componente ntregi. S se determine suma elementelor de pe marginea tabloului.
{ cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j]; }
for(i=1; i<=n; i++)
for(j=1; j<=m;j++)
if(i==1 || i==n || j==1 || j==m)
s=s+a[i][j];
cout<<"s="<<s;
}

#include<iostream.h>
int main()
{int a[20][20], n, m, i, j, s=0;
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m;j++)

11

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