CC Info2021 PDF
CC Info2021 PDF
CC Info2021 PDF
Exercices détaches
1-palindrome
a) Un palindrome est un mot qui peut se lire de la gauche vers la droite ainsi que
de la droite vers la gauche tout en gardant le même sens.
b) Je cherche d’abord
c) Je cherche
2-ppcm
a) Fonction qui calcule le pgcd
#include <stdio.h>
#include <stdlib.h>
int pgcd(int a, int b)
{
while(b != 0)
{
int t=b;
b=a%b;
a=t;
}
return a;
}
b)Fonction qui calcule le ppcm en se servant de la fonction précédente
Remarque :on a vu en terminale que pgcd(a,b)*ppcm(a,b)=a*b
#include <stdio.h>
#include <stdio.h>
int ppcm(int a, int b)
{
pgcd(a,b) ;
int resultat, k;
k=a*b;
resultat=pgcd(a,b)/k;
return resultat;
}
3-Multiplication : Produit par addition successive
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, produit=0, i;
printf("Veillez entrer les deux entiers:\n");
scanf("%d%d",&a,&b);
for(i=0; i<b; i++)
{
produit= produit+a;
}
printf("%d*%d=%d",a,b,produit);
return 0;
}
4-Temperature de l’eau
#include <stdio.h>
#include <stdlib.h>
int main()
{
int temperature;
if(temperature <= 0)
{
printf("L'eau est a l'etat solide\n");
}
else if(temperature > 0 && temperature < 100)
{
printf("L'eau est a l'etat liquide\n");
}
else
{
printf("L'eau est a l'etat gazeux\n");
}
return 0;
}
Problème : Multiplication Matricielle
1-Fonction d’allocation d’espace
#include <stdio.h>
#include <stdlib.h>
int **allouer_matrice(int n)
{
int **M;
int i;
M=(int**)malloc(sizeof(int*)*n);
for(i=0; i<n; i++)
{
M[i]=(int*)malloc(sizeof(int)*n);
}
return M;
}
2-Fonction qui permet d’enregistrer au clavier une matrice
#include <stdio.h>
#include <stdlib.h>
void enregistrer_matrice(int **A, int n)
{
int i, j;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
printf("[%d][%d]=",i, j);
scanf("%d", &A[i][j]);
}
}
return ;
}
3-Fonction affichage matrice
#include <stdio.h>
#include <stdlib.h>
void affiche_matrice(int **A, int n)
{
int i, j;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
printf("%d",A[i][j]);
}
}
return;
}
4-Formule de calcule de produit matriciel(voir cours)
5-Fonction qui calcule le produit scalaire
#include <stdio.h>
#include <stdlib.h>
void produit_scalaire(int **A, int **B, int n)
{
int i, j, d;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
d=A[i][-]*B[-][j];
}
return d;
}
6-Produit maticiel
#include <stdio.h>
#include <stdlib.h>
void produit_matriciel(int **C, int n)
{
int i, j, d;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
C[i][j]=produit_scalaire(A,B);
}
return ;
}
7-Le main
#include <stdio.h>
#include <stdlib.h>
int **allouer_matrice(int n) ;
void enregistrer_matrice(int **A, int n) ;
void affiche_matrice(int **A, int n) ;
void produit_scalaire(int **A, int **B, int n) ;
void produit_matriciel(int **C, int n)
int main()
{
int **A,**B, **C ;
int n;
printf("Entrer la taille de la matrice:\n");
scanf("%d", &n);
A=allouer_matrice(n);
B=allouer_matrice(n);
C=allouer_matrice(n) ;
enregistrer_matrice(A,n);
enregistrer_matrice(B,n) ;
produit_matriel(C,n) ;
affiche_matrice(C,n);
return 0;