Sunteți pe pagina 1din 5

Lucrare de laborator –

Tablouri bidimensionale (matrici) (Partea 1)

AplicaŃia 1: Să se citească de la tastatură şi apoi să se afişeze pe ecran o matrice de


dimensiune n x m de numere întregi.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>

int main(void) {
int n,m,x[20][20],i,j;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%i",&x[i][j]);
}
printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4i",x[i][j]);
printf("\n");
}
return 0;
}

AplicaŃia 2: Fie x o matrice de numere întregi, de dimensiune nxm. Să se calculeze


suma elementelor impare din matrice.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>

int main(void) {
int n,m,x[20][20],i,j,S;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%i",&x[i][j]);
}
Lucrare de laborator

printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4i",x[i][j]);
printf("\n");
}
S=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(x[i][j]%2==1)
S+=x[i][j];
printf("\nSuma elementelor impare=%i",S);
return 0;
}

ObservaŃie: Suma elementelor impare din matrice se poate calcula (actualiza) şi după
citirea fiecărui element din matrice, precum şi în instrucŃiunile de parcurgere a matricei pentru
afişare.

AplicaŃia 3: Fie x o matrice de numere întregi, de dimensiune nxm. Să se afişeze şi să


se numere elementele prime din matrice.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>

int main(void) {
int n,m,x[20][20],i,j,nr,prim,k;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%i",&x[i][j]);
}
printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4i",x[i][j]);
printf("\n");
}
nr=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(x[i][j]<2) prim=0;
else
{
prim=1;
for(k=2;k<=x[i][j]/2;k++)
if(x[i][j]%k==0) prim=0;

2
Tablouri bidimensionale

}
if(prim==1)
{
printf("\n%i",x[i][j]);
nr++;
}
}
printf("\nNumarul elementelor prime=%i",nr);
return 0;
}

AplicaŃia 4: Fie x o matrice de numere întregi, de dimensiune nxm. Să se calculeze


media aritmetică a numerelor divizibile cu 3 din matrice.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>

int main(void) {
int n,m,x[20][20],i,j,nr,S;
float ma;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%i",&x[i][j]);
}
printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4i",x[i][j]);
printf("\n");
}
S=0;nr=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(x[i][j]%3==0)
{
S+=x[i][j];
nr++;
}
if(nr!=0)
{
ma=(float)S/nr;
printf("\nMedia aritmetica a numerelor divizibile cu 3 din matrice este %f”,ma);
}
else printf("\nNu exista numere divizibile cu 3 in matrice”);
return 0;
}

3
Lucrare de laborator

AplicaŃia 5: Fie x o matrice de numere reale, de dimensiune nxm. Să se determine


elementul minin din matrice.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>

int main(void) {
int n,m,i,j;
float x[20][20],min;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%f",&x[i][j]);
}
printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%5.2f",x[i][j]);
printf("\n");
}
min=x[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(x[i][j]<min)
min=x[i][j];
printf("\nMinimul din matrice este %f”,min);
return 0;
}

AplicaŃia 6: Fie x o matrice de numere intregi, de dimensiune nxm. Să se determine


cel mai mare număr impar din matrice.
Programul pentru rezolvarea acestei probleme este următorul:

#include<stdio.h>
#include<values.h>

int main(void) {
int n,m,i,j,x[20][20],max;
printf("Numarul de linii ale matricei n=");
scanf("%i",&n);
printf("Numarul de coloane ale matricei m=");
scanf("%i",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("x[%i][%i]=",i,j);
scanf("%i",&x[i][j]);
}

4
Tablouri bidimensionale

printf("Matricea este:\n”);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%4i",x[i][j]);
printf("\n");
}
max=-MAXINT;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(x[i][j]>max&&x[i][j]%2==1)
max=x[i][j];
if(max!=-MAXINT)
printf("\nCel mai mare numar impar din matrice este %i”,max);
else
printf("\nMatricea nu contine numere impare”);
return 0;
}

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