0% ont trouvé ce document utile (0 vote)
118 vues39 pages

Corrige - 1

Transféré par

ababsaaziz60
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
118 vues39 pages

Corrige - 1

Transféré par

ababsaaziz60
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Algorithmique Algo

ère
1 année MI

Solution Série 1

Chargée de TD : Dr. Bensebaa


Exercice 1 : énoncé

Ecrire un algorithme qui prend de l'utilisateur deux


entiers puis affiche le signe du produit sans faire la
multiplication et le signe de la somme sans faire
l'addition.
Exercice 1 :

Produit a>0 a<0 a<0


Somme a>0
b>0 P N |a|<b |a|>b
b<0 N P b>0 P P N
|b|<a P
b<0 N
|b|>a N
Exercice 1 : Algorithme
ALGORITHME signe ; /* partie signe de la somme */
SI (a>0) ALORS
VAR
SI (b>0) ALORS a=5
a, b : entier ;
ECRIRE("somme positive") ; b=4
DEBUT SINON
ECRIRE(‘’donner les valeurs de a et b’’) ; SI (–b<a) ALORS
a=5
LIRE(a,b) ; ECRIRE("somme positive") ;
b=-4
/* partie signe du produit */ SINON
SI (a>0) ALORS ECRIRE("somme négative") ;
a=5 FSI ;
a=5
SI (b>0) ALORS b=-6
b=6 FSI
ECRIRE("produit positif ") ;
SINON
SINON SI (b<0) ALORS
a=5 a=-5
ECRIRE("produit négatif ") ; ECRIRE("somme négative ") ;
b=-6 b=-6
FSI ; SINON
SINON SI (b>-a) ALORS a=-5
SI (b>0) ALORS a=-5 ECRIRE("somme positive") ; b=6
b=6 SINON
ECRIRE("produit négatif ") ; a=-6
ECRIRE("somme négative") ;
SINON b=5
FSI ;
ECRIRE("produit positif ") ; FSI ;
a=-5
FSI ; b=-6 FSI ;
FSI ; FIN.
Exercice 2 : énoncé

Les tarifs d'affranchissement des lettres et cartes postales


d’Algérie Poste sont donnés dans le tableau suivant :

Poids en Grs. Tarif en DA


Jusqu’à 20 25
De 21 à 50 40
De 51 à 100 50
Au dessus de 100 Ajouter 10 pour chaque 100 Grs
Ecrire un algorithme qui lit le poids d'une lettre et affiche
le tarif correspondant.
Exercice 2 : Algorithme > <
ALGORITHME Tarif_lettres ;
VAR Poids en Grs. Tarif en DA
P : réel ; Jusqu’à 20 25
T : entier; De 21 à 50 40
DEBUT
Ecrire(‘’donner le poids de la lettre’’);
De 51 à 100 50
Lire(P); Au dessus de 100 Ajouter 10 pour chaque 100 Grs
Si(P <=20) Alors
T 25;
Sinon
Si(P <=50) Alors
T 40; P=120g T=50
Sinon P=199g T=50
Si(P <=100) Alors P=200g T=60
T 50;
Sinon
P=634g T=?
T 50 + ((P-100)/100)*10;
Fsi; 100g = 50DA
Fsi; 534g /100 =5 coutent 50DA
Fsi;
Ecrire(‘’Le tarif est ‘’,T);
FIN.
Exercice 2 : Algorithme
ALGORITHME Tarif_lettres ;
VAR Poids en Grs. Tarif en DA
poids : réel ; Jusqu’à 20 25
tarif : entier ; De 21 à 50 40
DEBUT De 51 à 100 50
LIRE(poids) ; Au dessus de 100 Ajouter 10 pour chaque 100 Grs
SI (poids<= 20) ALORS
tarif 25;
SINON
SI (poids<=50) ALORS
tarif 40;
SINON
SI (poids<=100) ALORS
tarif 50;
SINON
tarif 50 + 10*(poids -100 )/100;
FSI ;
FSI ;
FSI ;
ECRIRE(‘’le tarif correspondant à cette lettre est’’, tarif ,’’DA’’) ;
FIN.
Exercice 2 : Algorithme
ALGORITHME Tarif_lettres ;
Poids en Grs. Tarif en DA
VAR Jusqu’à 20 25
poids : réel ; De 21 à 50 40
De 51 à 100 50
tarif : entier ;
Au dessus de 100 Ajouter 10 pour chaque 100 Grs
DEBUT
LIRE(poids) ;
Cas poids Vaut
0-20 : tarif 25;
21-50 : tarif 40;
51-100 : tarif 50;
SINON tarif 50 + 10*(poids -100 )/100;
Fincas;
ECRIRE(‘’le tarif correspondant à cette lettre est’’, tarif ,’’DA’’) ;
FIN.
Exercice 3 : énoncé
Une classe contient 200 places réparties en 10 rangées et 20 colonnes.
Chaque élève possède un numéro entre 1 et 200. Lors d'un examen, on
place les élèves sur les places selon leur numéro en commençant par la
première rangée puis la deuxième et ainsi de suite comme le montre le
tableau suivant:
Colonne 1 Colonne 2 --- Colonne 20
Rangée 1 1 2 --- 20
Rangée 2 21 22 --- 40
--- --- --- ---
Rangée 10 181 182 --- 200
Ecrire un algorithme qui prend en entrée un entier entre 1 et 200 puis
affiche dans quelle rangée et dans quelle colonne l'élève doit se placer.
Par exemple, si n = 35, l'élève doit se placer sur la 2ème rangée et la 15ème
colonne.
Exercice 3 : Algorithme
ALGORITHME Rangée_colonne ;
VAR
n, R, C : entier ;
Colonne 1 Colonne 2 --- Colonne 20
DEBUT
Rangée 1 1 2 --- 20
LIRE(n) ; Rangée 2 21 22 --- 40
SI (n MOD 20 = 0) ALORS --- --- --- ---
C 20 ; Rangée 10 181 182 --- 200

R n DIV 20 ; N mod M : reste de la division


SINON de N/M
C n MOD 20 ; Reste=5 mod 2 =1
R 1+ (n DIV 20) ; 5= 2*2+1=2*Q+Reste
FSI;
ECRIRE(‘’l'élève doit se placer sur la rangée : ‘’, R, ‘’ et la colonne : ‘’, C) ;

FIN.
Exercice 4 : énoncé

Ecrire un algorithme permettant d’afficher le type de


médaille obtenu par un athlète (Or, Argent, Bronze)
ou Pas de médaille suivant sa position dans la
compétition.
Position Médaille
1 Or
2 Argent
3 Bronze
Autre Rien
Exercice 4 : Algorithme
Algorithme Medaille;
Algorithme Medaille;
Var
Var
P : entier;
P : entier;
Début
Début
Lire(P);
Lire(P);
Si(P=1) alors
Si(P=1) alors
Ecrire(‘’Medaille en or’’);
Ecrire(‘’Medaille en or’’);
Sinon
Fsi;
Si(P=2)alors
Si(P=2)alors
Ecrire(‘’Medaille en argent’’);
Ecrire(‘’Medaille en argent’’);
Sinon
Fsi;
Si(P=3)alors
Si(P=3)alors
Ecrire(‘’Medaille en bronze’’);
Ecrire(‘’Medaille en bronze’’);
sinon
Fsi;
Ecrire(‘’Pas de Medaille’’);
Si(P > 3)
Fsi;
Ecrire(‘’Pas de Medaille’’);
Fsi;
Fsi;
Fsi;
Fin.
Fin.
Exercice 4 : Algorithme
Algorithme Medaille;
Var
P : Entier ;
Début
Ecrire("Veuillez introduire la position de l’athlète") ;
Lire(P) ;
Cas P Vaut
1 : Ecrire(’’Or") ;
2 : Ecrire(’’Argent") ;
3 : Ecrire(‘’Bronze") ; Position Médaille
Sinon Ecrire( ’’Rien"); 1 Or
Fcas; 2 Argent
3 Bronze
Fin.
Autre Rien
Les boucles
La boucle Pour La boucle Tantque La boucle Repeter :
Repeter
Pour i min à max Faire i min;
Ecrire("Donner un Entier A>=0 ");
<liste instructions> Tantque (i<=max) Faire
Lire(A);
Fait; <liste instructions> Jusqu'a (A >= 0);
i i+1;
Exemple : Fait;
Pour i 1 à 10 Faire
Ecrire (i); Exemple :
Fait; i 1;
Tantque (i<=10) Faire
Ecrire(i);
i i+1;
Fait;
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 1 :
Affichage du nombre de lettres majuscules et celui de
lettres minuscules à partir d'une séquence de
caractères se terminant par le caractère '#'.
Exercice 5_Q1 : Algorithme
Algorithme Lettres;
Var
lettre : caractère;
Nb_maju, Nb_minu : entier;
Début
Ecrire("Veuillez introduire une lettre") ;
Lire(lettre) ;
Nb_maju 0;
Nb_minu 0;
Tantque (lettre <> ‘#’) Faire //<> : different
Si((lettre >=‘a’) ET (lettre <=‘z’) Alors
Nb_minu Nb_minu + 1 ;
Sinon
Si((lettre >=‘A’) ET (lettre <=‘Z’) Alors
Nb_maju Nb_maju + 1 ;
Fsi;
Fsi;
Ecrire (‘’Donner le caractère suivant’’);
Lire(lettre) ;
Fait;
ECRIRE(‘’Le nombre de caractères majuscules est : ‘’, Nb_maju, ‘’ et minuscules est : ‘’, Nb_minu) ;
Fin.
Exercice 5_Q1 : Algorithme
Algorithme Lettres;
Var
lettre : caractère;
Nb_maju, Nb_minu : entier;
Début
Ecrire("Veuillez introduire une lettre") ;
Lire(lettre) ;
Nb_maju 0;
Nb_minu 0;
Tantque (lettre <> ‘#’) Faire
Cas lettre Vaut
‘a’..’z’ : Nb_minu Nb_minu + 1 ;
‘A’..’Z’ : Nb_maju Nb_maju + 1 ;
Fcas;
Lire(lettre) ;
Fait;
ECRIRE(‘’Le nombre de caractères majuscules est : ‘’, Nb_maju, ‘’ et minuscules est : ‘’,
Nb_minu) ;
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 2 :
Recherche du minimum et du maximum dans un
ensemble de N nombres réels.
Exercice 5_Q2 : Algorithme
Algorithme Minimum_Maximum;
Var
X, Min, Max : Réel;
N, i : Entier;
Debut
Ecrire("Donner le nombre d’éléments");
Lire(N);
Ecrire("Donner une valeur au 1er nombre");
Lire(X);
Min X;
Max X;
Exercice 5_Q2 : Algorithme
Pour i 2 à N Faire
Ecrire("Donner le Nombre suivant");
Lire(X);
Si (X > Max) alors
Max X;
Sinon
Si (X < Min) alors
Min X;
Fsi;
Fsi;
Fait;
Ecrire(‘’Le Maximum est ", Max, " et le Minimum est ", Min);
Fin.
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 3 :
Calcul du quotient et reste de la division de deux
entiers positifs A et B sans utiliser l’opération de
division.
Exercice 5_Q3 : Algorithme
Algorithme Quot_Rest; R A;
Var Q 0;
A, B, Q, R : Entier; Tantque (R >= B) Faire
Début
R R – B;
Repeter
Ecrire("Donner un Entier A>=0 "); Q Q + 1;
Lire(A); Fait;
Jusqu'a (A >= 0); Ecrire(A, " Divisé par ", B, " Quotient = ",
Repeter Q, " et Reste = ", R);
Ecrire("Donner un Entier B>0 ");
Fin. A=15 B=2
Lire(B);
R=13 Q=1
Jusqu'a (B > 0);
R=11 Q=2
R=9 Q=3
R=7 Q=4
R=5 Q=5
R=3 Q=6
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 4 :
Vérification si un entier positif X est premier ou non.
Un nombre Premier est un nombre qui a uniquement 2
diviseurs : 1 et lui même.
Donc si on trouve un diviseur de X compris entre 2 et la
moitié de X (tous les Y>moitié de X ne peuvent pas être des
diviseurs de X) alors X n'est premier.
Exercice 5_Q4 : Algorithme
Algorithme Premier;
Var
X, i : Entier;
Premier : Booleen; 18 ?
Début 1ère moitié : de 2, 3, 4, 5, 6, 7,8, 9
Repeter 2ème moitié : 10, 11, 12, 13, … 17
Ecrire("Donner un Entier X positif"); Un nombre Premier a uniquement 2 diviseurs : 1 et lui même.
Lire(X); Si on trouve un diviseur de X compris entre 2 et la moitié
Jusqu'a (X > 0); de X alors X n'est premier.
Premier Vrai;
i 2;
Tantque ((i <= (X / 2)) ET (Premier = Vrai)) Faire
Si ((X Mod i) = 0) alors
Premier Faux; Si i est un diviseur de X alors X n'est pas
Sinon premier (Premier=Faux) pour sortir du Tantque
i i + 1; Si i n'est pas un diviseur de X, incrémenter i pour
Fsi; essayer le prochain i.
Fait;
Si (Premier = Vrai) alors Ecrire(X, ‘’est premier’’);
Sinon Ecrire(X, ‘’nest pas premier’’);
Fsi; Fin.
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 5 :
L’affichage de l’alphabet complet ('A' à 'Z') et ('a' à
'z').
Exercice 5_Q5 : Algorithme
Algorithme Alphabet;
Var
Lettre : caractère;
Début
Pour Lettre 'A' à 'Z' Faire
Ecrire(Lettre); //ABCDEF…..XYZ
Fait;
Pour Lettre 'a' à 'z' Faire
Ecrire(Lettre,’’ ‘’); //a b c x y z
Fait;
Fin.
Exercice 5_Q5 : Algorithme
Algorithme Alphabet;
Var
Lettre : caractère;
Début
Lettre <-- ’A’;
Tantque (Lettre <= 'Z’) Faire
Ecrire(Lettre); ABCDEF…..XYZ
Lettre Lettre +1;
Fait;
Pour Lettre 'a' à 'z' Faire
Ecrire(Lettre,’’ ‘’); a b c x y z
Fait;
Exercice 5 : énoncé
Ecrire un algorithme pour résoudre chacun des problèmes suivants :

Question 6 :
Calculer le nombre d’occurrences d’un chiffre C (0 ≤
C < 10) dans un entier positif A.
Exercice 5_Q6 : Algorithme
Algorithme ; Tantque (X<>0) Faire
Var SI((X mod 10) =C) Alors
A, C, Nb, X : Entier; Nb Nb + 1;
Début Fsi;
Repeter X X / 10 ;
Ecrire("Donner un Entier positif A "); Fait;
Lire(A); Ecrire (‘’le nombre
Jusqu'a (A > 0); d’occurrences du chiffre’’
Repeter , C,’’ dans ‘’,A,’’ est ‘’,Nb);
Ecrire("Donner un Entier positif C ");
Lire(C); Fin.
Jusqu'a ((C >= 0) ET(C<10));
X A;
Nb 0;
Exercice 6 : énoncé

Ecrire un algorithme permettant d’afficher le Miroir


d’un entier positif A.

Exemple : Miroir de 26538 = 83562


Exercice 6 : Algorithme
Algorithme Miroir; Repeter
Var Ecrire("Donner un Entier A>=0 ");
Lire(A);
A, R, B : Entier; Jusqu'a (A >= 0);
Début
Ecrire (‘’Donner la valeur de A’’);
A=26538 B=0
Lire (A);
R=8 A=2653 B=8
B 0; R=3 A=265 B=83
Tantque (A>0) Faire R=5 A=26 B=835
R A mod 10; R=6 A=2 B=8356
A A / 10; R=2 A=0 B=83562
B B*10 + R;
Fait;
Ecrire(‘’ Le miroir de ‘’,A,’’ est ‘’,B);
Fin.
Exercice 7 : énoncé

Ecrire l’algorithme permettant de déterminer le


PGCD de deux nombres entiers A et B en utilisant
les méthodes suivantes :
Exercice 7 : énoncé
> <
Exercice 7 : Algorithme A=3465 B=1575
Max=3465 min=1575
Algorithme PGCD_1; •Diff=1890
Var Diff≠0 : Diff>=min
A, B, Diff, max, min, PGCD : Entier; Max=1890
Début •Diff=1890-1575=315
Si (A > B) alors Diff≠0 : Diff<min
Max=1575
max A; min B;
Min=315
Sinon
•Diff=1575-315=1260
max B; min A; Diff≠0 : Diff>=min
Fsi; Max=1260
Diff max-min; •Diff=1260-315=945
Tantque (Diff <> 0) Faire Diff≠0 : Diff>=min
Si (Diff >= min) alors Max=945
•Diff=945-315=630
max Diff;
Diff≠0 : Diff>=min
Sinon
Max=630
max min; min Diff; •Diff=630-315=315
Fsi; Diff≠0 : Diff>=min
Diff max-min; Max=315
Fait; •Diff=315-315=0
Ecrire("PGCD de ", A, " et ", B, " = ", max);
Fin. PGCD=MAX=315
> <
Exercice 7 : Algorithme
Algorithme PGCD_2;
Var A=3465 B=1575
A, B, PGCD : Entier; A*B≠0 : A>B
A=3465 mod 1575=315
Début
A*B≠0 : A<B
Ecrire (‘’Donner la valeur de A et B’’); B=1575 mod 315 =0
Lire (A,B); A*B=0 : B=0
Tantque (A*B <> 0) Faire PGCD=A=315
Si (A>B) Alors
A A mod B;
Sinon
B B mod A; A=7038 B=5474
Fsi; A*B≠0 : A>B
A=7038 mod 5474=1564
Fait;
A*B≠0 : A<B
Si (A=0) Alors B=5474 mod 1564 =782
PGCD B; A*B≠0 : A>B
Sinon A=1564 mod 782=0
PGCD A; A*B=0 : A=0
PGCD=B=782
Fsi; Ecrire (‘’Le PGCD = ‘’,PGCD);
Exercice 8 : énoncé

Ecrire l’algorithme permettant de déterminer le


PPCM de deux nombres entiers A et B (sans passer
par le PGCD).
Exercice 8 : Algorithme
Algorithme PPCM;
Var
A, B, PPCM, X, Y: Entier;
Début
Ecrire (‘’Donner la valeur de A et de B’’);
Lire (A,B);
X A; Y B;
Tantque (X<>Y) Faire
Si (X<Y) Alors
X X+A;
Sinon
Y Y+B;
Fsi;
Fait;
PPCM X; // PPCM y vu que X=Y;
Ecrire (‘’Le PPCM = ‘’,PPCM);
Fin.
Exercice 9 : énoncé

Ecrire un algorithme qui détermine et affiche la Nème


valeur de la suite (UN) sachant que :
U0 = 0 ; U1 = 1 ; U2 = 2 ;
UN = 2UN-1 + 3UN-3 pour N > 2.
Exercice 9 : Algorithme
Algorithme Suites;
Var
N, UN, U0, UN1, UN2, i : Entier;
Début
Repeter
Ecrire("Donner un Entier N>2");
Lire(N);
Jusqu'a (N>=3);
UN2 2;
UN1 1;
UN0 0;
Pour i 3 à N Faire
UN 2*UN2 + 3*UN0; //Itération suivante :
UN0 UN1; // U(N1) devient U(N0)
UN1 UN2; // U(N2) devient U(N1)
UN2 UN; // U(N) devient U(N2)
Fait;
Ecrire("UN= ", UN);

Vous aimerez peut-être aussi