Correction Td3
Correction Td3
Correction Td3
Exercice 1 :
1- Algorithme Somme ;
Début
S ←0 ;
Pour I ←1 à N-1
Faire
S ←S+I;
Fait ;
Fin.
2- Algorithme MaxMin;
Début
Pour I ←2 à N
Faire
Lire(X) ;
Fsi ;
Fait ;
3- Algorithme QuotReste ;
Début
Lire(A,B) ;
Q ←0 ; R ←A ;
Tantque R>B
Faire
Q ←Q+1;
R ←R-B;
Fait ;
Fin.
4- Algorithme Produit ;
Début
Lire(A,B) ;
Si A=0 ou B=0
Alors P←0
Pour I ←1 à B
Faire
P←P+A ;
Fait
Fsi ;
Fin.
5- Algorithme AdivB;
Début
R←A ;
Fsi ;
Fin.
6-Algorithme Diviseurs ;
Début
Lire(X) ;
/*On boucle de 1 à la moitié de X, car après la moitié il n’y a plus de diviseur sauf X
/*On peut utiliser la fonction division entière DIV et la fonction reste de cette division MOD
M←X DIV 2 ;
Pour I ←1 à M
Faire
Fait ;
Ecrire(X) ;
Fin.
7. Algorithme Premier;
Pr :booléen ;
Début
Ecrire(‘Donner un entier X’) ;
Lire(X) ;
/*X est premier s’il a deux diviseurs distincts 1 et lui-même, attention 1 n’est pas premier.
Pr← Faux ;
Si X=1
Alors Pr←Faux
I ←2 ;
Tantque I ≤ M et Pr
I ←I+1 ;
Fin Tantque
Fin si ;
Si Pr Alors Ecrire(X,’ est premier’) Sinon Ecrire(X,’ n’’est pas premier’) Fsi;
Fin
Solution en langage C
8- Algorithme SommeChiff;
Début
S←0 ; R←0 ;
R← R DIV 10;
Fin Tantque ;
Fin.
Exercice 2 :
Algorithme Appatition ;
Début NbA ←0 ;
Répéter Lire(ch) ;
Si ch=’A’
Alors
NbA ←NbA+1
Fsi ;
Jusqu’à ch=’*’ ;
Exercice 3 :
Algorithme SommeE ;
Début
Lire(N) ;
E ←1 ;
S ←1;
Pour I ←2 à N
Faire
S ←S+I;
E ←E*S ;
Fin Pour
Ecire(‘E=’,E) ;
Fin
Exercice 4 :
Algorithme SommeCube ;
Var A,B,S :entier ;
Fonction Unite(X :entier) :entier ;
Debut
Unite ← X mod 10 ;
Fin ;
Debut
Cube ← X*X*X ;
Fin ;
Debut
Pour A← 0 à 500
Faire
S← 0; B ← A;
Si S=A Alors Ecrire(A,’ est égale à la somme des cubes de ses chiffres’) Fsi ;
Fait ;
Fin
Exercice 5 :
1. #include<stdio.h>
2. #include<stdlib.h>
3. int main()
4. {
5. int mag,a;
6. mag=12;
7. printf("Tentez votre chance:\n");
8. do{
9. scanf("%d",&a);
10. if(a<mag) printf("Pas encore! essayez un nombre p
lus grand.\n");
11. if(a>mag) printf("Pas encore! essayez un nombre p
lus petit.\n");
12. if(a==mag) printf("Bravo! vous avez trouver le no
mbre magique.\n");
13. }while(a!=mag);
14. system("pause");
15. return 0;
16. }
Exercice 6 :
1. #include<stdio.h>
2. #include<stdlib.h>
3. int main()
4. {
5. int n,i,p,ok;
6. printf("Donnez un entier:\n");
7. scanf("%d",&n);
8. printf("Les nombres premiers inferieurs a %d sont:\n
",n);
9. for(p=2;p<=n;p++)
10. {
11. ok=1;
12. for(i=2;i<p;i++)
13. {
14. if(p%i==0) {ok=0; break; }
15. }
16. if(ok==1) printf("%d\n",p);
17. }
18. system("pause");
19. return 0;
20. }
21.
Exercice 7 :
1)
a) en utilisant while,
#include <stdio.h>
main()
{
int N; /* nombre de données */
int NOMB; /* nombre courant */
int I; /* compteur */
long SOM; /* la somme des nombres entrés */
double PROD; /* le produit des nombres entrés */
SOM=0;
PROD=1;
I=1;
while(I<=N)
{
printf("%d. nombre : ", I);
scanf("%d", &NOMB);
SOM += NOMB;
PROD *= NOMB;
I++;
}
b) en utilisant do - while,
SOM=0;
PROD=1;
I=1;
do
{
printf("%d. nombre : ", I);
scanf("%d", &NOMB);
SOM += NOMB;
PROD *= NOMB;
I++;
}
while(I<=N);
c) en utilisant for.
La structure for est la plus compacte et celle qui exprime le mieux l'idée de l'algorithme.
D'autre part, elle permet d'intégrer très confortablement l'initialisation et l'incrémentation
des variables dans la structure.
Exercice 8 :
#include <stdio.h>
main()
{
int N, X, I, somme=0 ;
printf ("\n Les entiers compris entre 1 et 100 (somme des
chiffres=11) : ");
for(I=1 ;I<=100 ;I++)
{ X=I ;
do { somme+=X%10; X/=10; }while (X!=0);
if(somme==11)
printf ("\n %d ",I);
}
}
Exercice 9:
#include<stdio.h>
int main(){
scanf("%d",&nbr);
if(nbr%i == 0){
somme = somme + i;
}}
if(somme == nbr){
else{
}
return 0;