Sunteți pe pagina 1din 17

Bazele programarii

calculatoarelor

Seminar 8
Algoritmi – Matrice II

2021
Cuprins

Probleme matrice

1. Suma elementelor dintr-o matrice.

2. Identificare elemente de minim si maxim dintr-o matrice.

3. Suma elementelor de pe linii dintr-o matrice, cu rezultat retinut intr-un vector.

4. Suma elementelor de pe coloane dintr-o matrice, cu rezultat retinut intr-un vector.

5. Identificare element de minim si maxim de pe fiecare linie dintr-o matrice.

6. Sortare elemente de pe linii (folosind metoda selectiei).

7. Sortare elemente de pe coloane (folosind metoda selectiei).

2
Concept matrice

 REAL A[100][50] // declarare matrice


 INTREG m,n //dimensiuni
 INTREG i,j //contori

j=0,n-1

i=0,m-1 a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1]

Parcurgere in sens – lexicografic (pe linii) 3

- invers lexicografic (pe coloane)


Problema 1
 Enunt: Suma elementelor dintr-o matrice.
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1]


4
Problema 1
 Rezolvare

#include <stdio.h>
#include <conio.h>

int main()
{
//declarare variabile
...

//citire dimensiuni si matrice


...

//afisare matrice
...

//suma elemente matrice


float s;
s=0;
for (i=0;i<m;i++)
for(j=0;j<n;j++)
s=s+mat[i][j];
printf("\nSuma este: %6.2f", s);
...

} 5
Problema 2
 Enunt: Identificare elemente de minim si maxim dintr-o matrice.
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1]


6
Problema 2
 Rezolvare
#include <stdio.h>
#include <conio.h>

int main()
{
//declarare variabile
...

//citire dimensiuni si matrice


...

//afisare matrice
...

//min si max din matrice


float min, max;
max=min= mat[0][0];
for (i=0;i<m;i++)
for(j=0;j<n;j++)
{
if (mat[i][j]>max) max = mat[i][j];
if (mat[i][j]<min) min = mat[i][j];
}

printf("\nMax din matrice este: %6.2f\nMin din matrice este: %6.2f\n", max, min);

...

} 7
Problema 3
 Enunt: Suma elementelor de pe linii dintr-o matrice, cu rezultat retinut intr-un vector.
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1] 8


Problema 3
 Rezolvare
#include <stdio.h>
#include <conio.h>

int main()
{
//declarare variabile
...

//citire dimensiuni si matrice


...

//afisare matrice
...

//suma pe linii
float SL[100];
for(i=0;i<m;i++)
{
SL[i]=0;
for(j=0;j<n;j++)
SL[i]=SL[i]+mat[i][j];
}

printf("\n");
for(i=0;i<m;i++)
printf("SL[%d]=%6.2f\t", i, SL[i]);
...
9
}
Problema 4
 Enunt: Suma elementelor de pe coloane dintr-o matrice, cu
rezultatul retinut intr-un vector.
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1]


10
Problema 4
 Rezolvare

#include <stdio.h>
#include <conio.h>

int main()
{
//declarare variabile
...

//citire dimensiuni si matrice


...

//afisare matrice
...

float SC[100];
for(j=0;j<n;j++)
{
SC[j]=0;
for(i=0;i<m;i++)
SC[j]=SC[j]+mat[i][j];
}

printf("\n");
for(j=0;j<n;j++)
printf("SC[%d]=%6.2f\t", j, SC[j]);
...

}
11
Problema 5
 Enunt: Identificare element de minim si maxim de pe fiecare linie dintr-
o matrice.
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1] 12


Problema 5
 Rezolvare
#include <stdio.h>
#include <conio.h>

int main()
{
//declarare variabile
...

//citire dimensiuni si matrice


...

//afisare matrice
...

//min si max de pe fiecare linie din matrice


float minL, maxL;
for (i=0;i<m;i++)
{
minL = mat[i][0];
maxL = mat[i][0];
for(j=0;j<n;j++)
{
if (mat[i][j]>maxL) maxL = mat[i][j];
if (mat[i][j]<minL) minL = mat[i][j];
}
printf("\nMax linie %d este: %6.2f\nMin linie %d este: %6.2f\n\n", i, maxL, i, minL);
}
...
13
}
Problema 6
 Enunt: Sortare elemente de pe linii (folosind metoda selectiei)
 Exemplu numeric:

a[0, 0] a[0, 1] a[0, 2] ... a[0, n-1]

a[1, 0] a[1, 1] a[1, 2] ... a[1, n-1]

a[m-1, 0] a[m-1, 1] a[m-1, 2] ... a[m-1, n-1] 14


Problema 6
 Rezolvare
#include <stdio.h> //afisare matrice cu linii sortate
#include <conio.h> printf("\n");
for (i=0;i<m;i++)
int main() {
{ for(j=0;j<n;j++)
//declarare variabile printf("mat[%d][%d]=%6.2f\t",i,j,mat[i][j]);
... printf("\n");
}
//citire dimensiuni si matrice
... ...

//afisare matrice }
...

int k;
float aux;
for(i=0;i<m;i++)
{
for(j=0;j<n-1;j++)
for(k=j+1;k<n;k++)
if (mat[i][j]>mat[i][k])
{
aux=mat[i][j];
mat[i][j]=mat[i][k];
mat[i][k]=aux;
}
}

15
Problema 7
 Enunt: Sortare elemente de pe coloane (folosind metoda selectiei).
 Exemplu numeric:
 m=3
 n=3

 mat=
 3 5 2
 1 2 8
 2 1 5

 Matrice rezultat:
 1 1 2
 2 2 5
 3 5 8
 16
Spor la învățat !

17

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