Vous êtes sur la page 1sur 4

Université Sultan Moulay Slimane Département d’Informatique

FST – Béni Mellal Module : Alg & prog 2


Filière : MIPC_GE_GM (S3)

TP N°: 4
Solution de TP N°:4

Exercice 1 :
#include<stdio.h>
#include<stdlib.h>
int** allouer(int L,int C)
{
int i;
int**A;
A=(int**)malloc(L*sizeof(int*));
if(A==NULL) {printf("Erreur\n");exit(0);}
for(i=0;i<L;i++)
{
A[i]=(int*)malloc(C*sizeof(int));
if(A[i]==NULL) {printf("Erreur\n");exit(0);}
}
return A;
}
void liberation(int **A,int L,int C)
{
int i;
for(i=0;i<L;i++)
free(A[i]);
free(A);
printf("Libération effctuée\n");
}
void lecture(int **A,int L,int C)
{
int i,j;
for(i=0;i<L;i++)
{
for(j=0;j<C;j++)
{
printf("Entrer élément (%d,%d): \n",i,j);
//scanf("%d",(A[i]+j));
scanf("%d",(*(A+i)+j));
2019/2020
Université Sultan Moulay Slimane Département d’Informatique
FST – Béni Mellal Module : Alg & prog 2
Filière : MIPC_GE_GM (S3)

}
}
}
void affichage(int **A,int L,int C)
{
int i,j;
for(i=0;i<L;i++)
{
for(j=0;j<C;j++)
{
//printf(" %d ",*(A[i]+j));
printf(" %d ",*(*(A+i)+j));
}
printf("\n");
}}
int produit(int **A,int **B,int L,int LC,int C)
{
int i,j,k,p;
int **S;
S=allouer(L,C);
if(S==NULL)
{
printf("Erreur de réservation\n");
exit(0);
}
for(i=0;i<L;i++)
{
for(j=0;j<C;j++)
{
p=0;
for(k=0;k<LC;k++)
{
p=p+A[i][k]*B[k][j];
}
S[i][j]=p;
} }

2019/2020
Université Sultan Moulay Slimane Département d’Informatique
FST – Béni Mellal Module : Alg & prog 2
Filière : MIPC_GE_GM (S3)

return(S);}

main()
{
int **M1,**M2,**M3;
int Lig=3,LC=2,Col=3;
M1=allouer(Lig,Col);
M2=allouer(Lig,Col);
M3=allouer(Lig,Col);
if(M1==NULL || M2==NULL || M3==NULL)
{
printf("Erreur de réervation\n");
exit(0);
}
printf("---Matrice M1---\n");
lecture(M1,Lig,LC);
affichage(M1,Lig,LC);
printf("---Matrice M2---\n");
lecture(M2,LC,Col);
affichage(M2,LC,Col);

printf("---Matrice M3---\n");
M3=produit(M1,M2,Lig,LC,Col);
affichage(M3,Lig,Col);
liberation(M1,Lig,Col);
liberation(M2,Lig,Col);
liberation(M3,Lig,Col);
system("pause");}

Exercice 2 :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 30
void lecture(char chaine[max])
{

2019/2020
Université Sultan Moulay Slimane Département d’Informatique
FST – Béni Mellal Module : Alg & prog 2
Filière : MIPC_GE_GM (S3)

printf("Entrer un verbe régulier: \n");


gets(chaine);
}
int verbe_er(char chaine[max])
{
int lg;
char *ch;
lg=strlen(chaine);
ch=&chaine[lg-2]; //(chaine+lg-2)
if(strcmp(ch,"er")==0) return(1);
else return(0);
}
void conjuguer(char chaine[max])
{
char *term[6]={"e","es","e","ons","ez","ent"};
char *sujet[6]={"je ","tu ","il ","nous ","vous ","ils "};
char copie[max],resultat[max];
int lg,i;
lg=strlen(chaine);
chaine[lg-2]='\0';
for(i=0;i<6;i++)
{
strcpy(copie,sujet[i]);
strcat(copie,chaine);
strcat(copie,term[i]);
printf(" %s \n",copie);
}
}
main(){
char verbe[20];
lecture(verbe);
if(verbe_er(verbe)==0) printf("Erreur\n");
else conjuguer(verbe);
system("pause");}

2019/2020

Vous aimerez peut-être aussi