Académique Documents
Professionnel Documents
Culture Documents
Réponse :
1)
double carre (double x)
{ return x *x; }
2)
a-
double cube (double x)
{ return x*x*x; }
b-
double cube (double x)
{ return x*carre(x); }
3)
Exercice 2
2) Ecrire une fonction qui compte le nombre d’occurrences d’un caractère dans un tableau,
c’est à dire le nombre de fois où un élément apparaît dans un tableau de caractères. Le
caractère recherché et le tableau seront les deux paramètres de la fonction.
Réponse :
int nbr_occurences(char car, char CH[])
{ int occ =0;
1
int i=0 ;
while (CH[i] !=’\0’)
{ if (CH[i] == car)
occ++;
i++
}
return (occ);
}
Réponse :
#include<stdio.h>
#include<conio.h>
void main()
{ char CH[50] ;
char c ;
int nbr ;
printf(’’Taper une chaine de caractère (max 50 caractères)’’) ;
gets(CH) ;
printf(’’Taper un caratèère à rechercher dans la chaine’’) ;
scanf(’’%c’’,&c) ;
if (appartient(c, CH) )
printf(’’le carcatère %c appartient à la chaine saisie’’,c) ;
else
printf(’’le carcatère %c n’appartient pas à la chaine saisie’’,c) ;
Exercice 3
Ecrire une fonction qui fait la division de deux entiers x et y passés en paramètres (la
fonction fonctionne également pour x ou y négatifs).
Réponse
int division(int x, int y)
{ int res = 0;
int signe = 1;
int cour, moins;
if (x<0)
{
cour = -x;
signe = -1;
}
else{
cour = x;
}
if (y<0)
{ moins = -y;
2
signe = -1 *signe;
}
else
{ moins = y;
}
if (y == 0){
printf(’’Division par 0’’;
exit(0) ;
}
while (cour>=moins)
{ cour = cour -moins;
res = res+1;
}
return (res*signe);
}
Exercice 4
1) Ecrire une fonction long Produit_Scalaire(int U[], int V[], int N) permettant de
calculer le produit scalaire de deux vecteurs d’entiers U et V de même dimension N.
Réponse
long Produit_Scalaire(int U[], int V[], int N)
{ long ps ;
int i ;
for (ps=0, i=0; i<N; i++)
ps += (long) U[i]*V[i];
return ps ;
}
3
}
/* Calcul du produit scalaire */
PS = ProduitScalaire(U,V,N) ;
/* Affichage du résultat */
printf("Produit scalaire : %ld\n", PS);
}
Exercice 5 :
1) Ecrire un programme C permettant de calculer le produit de deux matrices carrées de
même dimension.
Réponse
#include <stdio.h>
void main()
{int A[50][50], B[50][50], C[50][50] ;
int N, i, j, k :
/* Saisie des données */
printf("Nombre de lignes et de colonnes (max.50) : ");
scanf("%d", &N );
printf("*** Saisie de la matrice A ***\n");
for (i=0; i<N; i++)
for (j=0; j<N; j++)
{ printf("A[%d][%d] = ?: ",i,j);
scanf("%d", &A[i][j]);
}
printf("*** Saisie de la matrice B ***\n");
for (i=0; i<N; i++)
for (j=0; j<N; j++)
{ printf("B[%d][%d] : ",i,j);
scanf("%d", &B[i][j]);
}
/* Calcul de C = AxB*/
for (i=0; i<N; i++)
for (j=0; j<N; j++)
{ C[i][j] = 0 ;
for(k = 0 ; k<N ; k++)
C[i][j] += A[i][k]*B[k][j];
}
/* Affichage des matrices */
printf("Matrice A :\n");
for (i=0; i<N; i++)
{ for (j=0; j<N; j++)
printf("%7d", A[i][j]);
printf("\n");
}
printf("Matrice B :\n");
for (i=0; i<N; i++)
{ for (j=0; j<N; j++)
printf("%7d", B[i][j]);
printf("\n");
}
4
printf("Matrice C=AxB :\n");
for (i=0; i<N; i++)
{ for (j=0; j<N; j++)
printf("%7d", C[i][j]);
printf("\n");
}
}
2) Réécrire le programme de telle sorte que la fonction main s’écrit comme suit :.
#include <stdio.h>
void main()
{int A[50][50], B[50][50], C[50][50] ;
int N, i, j, k :
printf("Nombre de lignes et de colonnes (max.50) : ");
scanf("%d", &N );
saisie_matrice(A, N);
saisie_matrice(B, N);
produit_matrice(A, B ; C ; N) ;
affiche_matrice(A, N);
affiche_matrice(B, N);
affiche_matrice(C, N) ;
}