Vous êtes sur la page 1sur 34

Realise par mohamed lechhab

Le titre du TP: les matrices


objectif du TP:
Le but de ce Tp est d'apprendre à utiliser les matrices pour resoudre
une probleme.
Analyse du probleme :
Ex1: la somme de deux matrice *
Dans ce exercice nous allons découvrir comment écrire un programme
C pour additionner deux matrices, c’est-à-dire calculer la somme de
deux matrices puis l’afficher. Tout d’abord, il sera demandé à
l’utilisateur d’entrer l’ordre de la matrice (nombre de lignes et de
colonnes), puis deux matrices. Par exemple, si un utilisateur saisit un
ordre de 2×2, c’est-à-dire deux lignes et deux colonnes. Par exemple :

Ex1.1: le produit sclaire d’un matrice *


Dans ce exercice nous allons découvrir comment écrire un programme C pour
produit scalaire d’une matrices, c’est-à-dire calculer un entier multipliernpar une
matrice puis l’afficher. Tout d’abord, il sera demandé à l’utilisateur d’entrer
l’ordre de la matrice (nombre de lignes et de colonnes), puis un entier . Par
exemple, si un utilisateur saisit un ordre de 2×2, c’est-à-dire deux lignes et deux
colonnespuis un entier . Par exemple :
Ex1.2: le produit de deuc matrice *
Dans ce excercice nous allons découvrir comment écrire un programme qui demande à
l’utilisateur d’entrer deux matrices et après il calcule la multiplication de ces deux matrices
par exemple

Ex2: Mise à zéro de la diagonale principale d’une matrice*


Dans ce excercice nous allons découvrir comment écrire un
programme qui Mise à zéro de la diagonale principale d’une

matrice par exemp

Ex3.1: en utilisant deux tableau


Dans ce exercice nous allons découvrir comment transposer une matrice. Il est
obtenu en inter-changeant des lignes et des colonnes d’une matrice en utilisant
deux tableau . Par exemple, considérons la matrice 3 X 2 suivante:

Ex3.2: en utilisant une seul tableau


Dans ce exercice nous allons découvrir comment transposer une matrice. Il est
obtenu en inter-changeant des lignes et des colonnes d’une matrice en utilisant une
seul tableau. Par exemple, considérons la matrice 3 X 2 suivante:
liste du matériel:
compilateur devc++

code source+capture+d’écran:
Ex1: la somme de deux matrice *
#include <stdio.h>

main()
{
int T[20][20],A[20][20],s[20][20];
int i,j,x,l,c;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("T[%d][%d]=",i,j);
scanf ("%d",&T[i][j]);
}
}
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
s[i][j]=T[i][j]+A[i][j];
}
}
printf("la somme de deux matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)

printf(" %d\t",s[i][j]);
printf("\n");
}
}
Ex1.2: le produit sclaire d’un matrice *
#include <stdio.h>
main()
{
int A[20][20],s[20][20];
int i,j,x,l,c,p;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}
printf ("entrer la valeur d'entier ");
scanf ("%d",&x);
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
s[i][j]=x*A[i][j];
}
}
printf("le produit scalaire d'un matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)

printf(" %d\t",s[i][j]);
printf("\n");
}
}
Ex1.2: le produit de deux matrice *
#include <stdio.h>
main()
{
int T[20][20],A[20][20],s[20][20];
int i,j,x,l,c,n;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );
for (i=0;i<l;i++)
{
for (j=0;j<c;j++){
printf ("T[%d][%d]=",i,j);
scanf ("%d",&T[i][j]);
}
}
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{ s[i][j]=0;
s[i][j]=s[i][j]+(T[i][j]*A[j][i]);
}
}
printf("la produit de deux matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)

printf(" %d\t",s[i][j]);
printf("\n");
}}
Ex2: Mise à zéro de la diagonale principale d’une matrice*
#include <stdio.h>
main()
{
int A[20][20],s[20][20];
int i,j,x,l,c;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
if(i==j)
s[i][j]=0;
else
s[i][j]=A[i][j];
}
}
printf("le diagonale resultat du matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)

printf(" %d\t",s[i][j]);
printf("\n");
}}
Ex3.1: en utilisant deux tableau
#include <stdio.h>
main()
{
int A[20][20],s[20][20];
int i,j,x,l,c;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}

for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
s[i][j]=A[j][i];
}
}
printf("le trnasposer de matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)

printf(" %d\t",s[i][j]);
printf("\n");
Ex3.2: en utilisant une seul tableau
#include <stdio.h>
main()
{
int A[20][20];
int i,j,x,l,c;
do{
printf ("entrer le nombre des lignes:");
scanf("%d",&l);
printf ("entrer le nombre de colonne :");
scanf("%d",&c);
}while (l<2 || l>20 || c<2 || c>20 );
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf ("A[%d][%d]=",i,j);
scanf ("%d",&A[i][j]);
}
}
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
x=A[i][j];
A[i][j]=A[j][i];
A[j][i]=x;
}
}
printf("le transposer d'une matrice sont :\n");
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
{
printf(" %d\t",A[i][j]);
printf("\n");
}}
Execution
Ex1

Ex 1.1
Ex 1.2

Ex2
Ex3.1

Ex3.
2

Conclusion
 les matrice sont des regroupements de plusieurs objets.
Cependant, à l’inverse de celles-ci, les tableaux regroupent
des données de même type et de manière contiguë (ce qui
exclut la présence de multiplets de bourrage).

Vous aimerez peut-être aussi