Ex. 8 Să se determine matricea transpusă a unei matrice citită de la tastatură (matr_A)
Prezentarea algoritmului :
-
se citesc dimensiunile matricelor
m şi n
-
se citesc elementele matricei iniţiale
pentru i=0,m-1 execută
pentru j=0,n-1 execută
citeşte
matr_A[i][j];
sfârşit pentru
sfârşit
pentru
-
ecou
-
se
parcurge matricea iniţială element cu element, elementul cu indicele [i][j]
devenind elementul cu indicele [j][i] în matricea finală
pentru
i=0,m-1 execută
pentru j=0,n-1 execută
matr_B[i][j] =
matr_A[j][i]
sfârşit pentru
sfârşit
pentru
-
se
afişează elementele
matricei finale (matricea transpusă)
pentru i=0,n-1 execută
pentru j=0,m-1 execută
afişează
matr_B[i][j];
sfârşit pentru
sfârşit
pentru
Ex. Să se determine matricea produs rezultată
în urma înmulţirii a doua matrice:
matr_C(m,n)
= matr_A(m,n) x matr_B(m,n)
Obs. Programul
nu verifică
corectitudinea dimensiunilor matricelor pentru a efectua operaţia de înmulţire.
#include
<stdio.h>
#include
<conio.h>
void
main()
{
int matr_A[10][10],
matr_B[10][10];
int matr_C[10][10];
int
i,j,k,m,n,p;
clrscr();
printf("\n
Introduceti dimensiunile matricelor ");
scanf("%d
%d %d",&m,&n,&p);
printf("\n
Introduceti elementele primei matrici \n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
printf("matr_A[%d][%d]=",i,j);
scanf("%d",&matr_A[i][j]);
}
printf("\n
Matricea citita de la tastatura este: \n");
for(i=0;i<m;i++)
{
printf("\t");
for(j=0;j<n;j++)
printf("
%4d",matr_A[i][j]);
printf("\n");
}
printf("\n
Introduceti elementele pentru matr B \n");
for(i=0;i<n;i++)
for(j=0;j<p;j++)
{
printf("matr_B[%d][%d]=",i,j);
scanf("%d",&matr_B[i][j]);
}
printf("\n
Matricea citita de la tastatura este: \n");
for(i=0;i<n;i++)
{
printf("\t");
for(j=0;j<p;j++)
printf("
%4d",matr_B[i][j]);
printf("\n");
}
for(i=0;i<m;i++)
for(j=0;j<p;j++)
matr_C[j][i] = 0;
for(i=0;i<m;i++)
for(j=0;j<p;j++)
for(k=0;k<n;k++)
matr_C[i][j] =
matr_C[i][j]+matr_A[i][k]*matr_B[k][j];
printf("\n
Matricea produs \n");
for(i=0;i<m;i++)
{
printf("\t");
for(j=0;j<p;j++)
printf("
%4d",matr_C[i][j]);
printf("\n");
}
getch();
Niciun comentariu:
Trimiteți un comentariu