Académique Documents
Professionnel Documents
Culture Documents
TD3(Correction : exercices 3 et 4)
Exercice 1 : Exercice 3: Soit matrix1 et matrix2 deux matrices à valeurs réelles de taille
maximale NxM. Saisir et afficher les éléments de matrix1 et matrix2. Calculer puis d’afficher
la matrice matrix3 qui contient le résultat des opérations suivantes :
Correction
#include <stdio.h>
#include <conio.h>
#define NLMAX 50
#define NCMAX 50
int main(){
int nLignes1, nColonnes1, nLignes2, nColonnes2,nLignes3, nColonnes3;
int i,j,k;
float matrix1[NLMAX][NCMAX], matrix2[NLMAX][NCMAX],matrix3[NLMAX][NCMAX];
printf("\n");
do{ printf("Entrez le nombre des colonnes(0<...<=%d) : ",NCMAX);
scanf("%d",&nColonnes1);
}while (nColonnes1<=0 || nColonnes1>NCMAX);
/* Affichage de la matrice 1 */
printf("\n Matrice 1 :");
for ( i=0;i<nLignes1;i++){
printf("\n");
for ( j=0;j<nColonnes1;j++)
printf("\t%4.2f",matrix1[i][j]);
}
for ( i=0;i<nLignes3;i++)
for ( j=0;j<nColonnes3;j++)
matrix3[i][j] = matrix1[i][j]+ matrix2[i][j];
/************************************* b-**************************************/
/* Le produit de matrix1 et matrix2 */
printf("\n Calcul du produit des deux matrices : \n");
ème
/* Le test est vrai si le nombre de colonnes de la 1ère matrice est égal au nombre de lignes de la 2 */
if(nLignes2==nColonnes1){
nLignes3 = nLignes1;
nColonnes3 = nColonnes2;
for ( i=0;i<nLignes3;i++)
for ( j=0;j<nColonnes3;j++){
matrix3[i][j] = 0.0;
for ( k=0;k<nColonnes1;k++)
matrix3[i][j] += matrix1[i][k]*matrix2[k][j];
}
/************************************* c-**************************************/
/* Le Transposé de matrix1 */
printf("\n Calcul du Transposé de la matrice 1 : \n");
nLignes3 = nColonnes1;
nColonnes3 = nLignes1;
for ( i=0;i<nLignes3;i++)
for ( j=0;j<nColonnes3;j++)
matrix3[i][j] = matrix1[j][i];
getch(); return 0;
}
Exercice 4: Ecrire un programme en langage C qui fait la saisie d’un texte fourni au clavier,
de taille maximale 256 caractères. Puis, réalise les opérations suivantes :
Correction
/************************************* a-**************************************/
Calcul et affichage du nombre d’occurrences de toutes les lettres de l’alphabet.
#include <stdio.h>
#include <conio.h>
int main(){
char str[101], car;
/* Dans ce tableau le nombre de 'a' et 'A' est dans nbreCar[0],
le nombre de 'b' et 'B' est dans nbreCar[1] … */
int i=0, indice ,nbreCar[26];
for(i=0;i<strlen(str);i++){
for(i=0;i<26;i++)
printf("\n %c/%c : %d",'A'+i, 'A'+i+32,nbreCar[i]);
getch();
return 0;
}
/************************************* b-**************************************/
Suppression de toutes les occurrences d’un caractère tapé au clavier. Puis, affichage du texte
résultat.
#include <stdio.h>
#include <conio.h>
int main(){
char str[101], car;
int i,j, nbreCar=0;
puts(str);
getch();
return 0;
}