Algorithme
Algorithme
Algorithme
zaayd 999
March 23, 2024
Exercice 24 :
Nous nous intéressons à une suite de nombres entiers terminée par la saisie d’un
zéro qui ne fait pas partie de la suite. Exemple : 1, 5, 2, 8, 9, 3, 4, 0.
Écrire un algorithme permettant de réaliser les tâches suivantes :
1. Détermination du plus grand élément de la suite,
2. Détermination du plus petit élément de la suite,
3. Calcul de la somme des éléments de la suite,
Correction :
Algorithme: exercice 24
Variables:
nbr, max, min, sommeP airs: entier;
moyenne, somme: reel;
DEBUT
ecrire("Entrer un entier : ");
lire(n);
max <- n;
min <- n;
somme <- 0;
moyenne <- 0;
sommePairs <- 0;
tantque( n <> 0) faire
nbr <- nbr+1;
si(max < n) alors
1
max <- n;
finsi
si(min>n) alors
min <- n;
finsi
somme <- somme + n;
moyenne <- somme/nbr;
si(n%2 == 0) alors
sommePairs <- sommePairs + n;
finsi
ecrire("Entrer un entier : ");
lire(n);
fintantque
si (nbr > 0) alors
ecrire("Vous avez saisi le nombre ", nbr, " qui n’est pas nul.");
ecrire("La valeur maximale est :", max);
ecrire("La valeur minimale est :", min);
ecrire("La somme des nombres est :", somme);
ecrire("La moyenne des nombres est :", moyenne);
ecrire("La somme des nombres pairs est :", somePairs);
sinon
ecrire("Aucun nombre non nul n’a été saisi.");
finsi
FIN
Correction :
Algorithme : exercice 25
Variables:
n, i, p: entier;
consecutif : booleen;
DEBUT
ecrire("Entrer l’entier n : ");
2
lire(n);
p <- n;
i <- 1;
consecutif <- vrai;
tantque( i < 30 ) faire
ecrire("Entrer l’entier n : ");
lire(n);
si ( n <> p+1) alors
consecutif <- faux;
finsi
p <- n;
i <- i+1; // i++;
fintantque
si ( consecutif = faux) alors
ecrire("Les 30 entiers ne sont pas consecutifs dans l’ordre croissant.")
sinon
ecrire("Les 30 entiers sont consecutifs dans l’ordre croissant.")
finsi
FIN
3
Exercice 27 : Contrôle Mars 2023
On considère un nombre entier positif AB à deux chiffres A et B tels que A
diffère de B. Soit par exemple AB = 19 :
• En inversant les chiffres on obtient 91.
• On effectue la différence entre 91 et 19 pour obtenir le nombre 72 = 91−19.
On répète ce procédé avec 72, on obtient 45 = 72 − 27. Une dernière répétition
de cette méthode donne 9 = 54 − 45. La liste des nombres ainsi générée est
appelée liste vers 9 car elle s’arrête toujours avec le nombre 9.
Travail à faire : Écrire un algorithme qui lit un nombre entier N , et vérifie que
ce dernier est bien positif à deux chiffres distincts. Si c’est le cas, le programme
affichera la liste des nombres vers 9 à partir de N . Sinon le programme affichera
un message d’erreur.
Exemples :
• Pour N = 19, on affichera 19, 72, 45, 9.
• Pour N = 24, on affichera 24, 18, 63, 27, 45, 9.
• Pour N = 22 ou N = 5, on affichera Nombre invalide ! .
Correction :
Algorithme: exercice 27
Variables:
n, inverse, dif f, temp: entier
DEBUT
repeter
ecrire("Entrer un nombre entier positif à deux chiffres distincts : ");
lire(n);
jusqua( n <= 99 et n >= 10 et n%11 <> 0 );
4
Exercice : 28
Donner l’algorithme qui demande la saisie au clavier un nombre entier N et qui
permet :
1. Afficher les chiffres qui composent le nombre N
2. Afficher le nombre des chiffres du nombre N
3. Afficher l’inverse du nombre N
4. Calculer la somme des chiffres du nombre N
5. Afficher le nombre d’occurrences d’un chiffre donné dans le nombre N
Correction : Q1
Algorithme: exercice 28 chiffres
Variables:
n, temp, i: entier
DEBUT
repeter
ecrire("Entrer un nombre entier strictement positif à deux chiffres distincts : ");
lire(n);
jusqua( n > 0 );
ecrire("Les chiffres de " , n , " sont : ");
tantque( n <> 0 ) faire
ecrire(n%10);
n <- n/10;
fintantque
FIN
Correction : Q2
Algorithme: exercice 28 nbr chiffres
Variables:
n, i, temp: entier
DEBUT
repeter
ecrire("Entrer un nombre entier strictement positif : ");
lire(n);
jusqua( n > 0 );
temp <- n;
i <- 0;
tantque( temp <> 0 ) faire
5
i++;
temp <- temp/10;
fintantque
ecrire("Le nombre des chiffres du nombre " , n , " est " , i);
FIN
Correction : Q3
Algorithme: exercice 28 inverse
Variables:
n, inverse, temp: entier
DEBUT
repeter
ecrire("Entrer un nombre entier strictement positif : ");
lire(n);
jusqua( n > 0 );
temp <- n;
inverse <- 0;
tantque( temp <> 0 ) faire
inverse <- inverse * 10 + (temp%10)
temp <- temp/10;
fintantque
ecrire("L’inverse de " , n , " est " , inverse);
FIN
Correction : Q4
Algorithme: exercice 28 sommes des chiffres
Variables:
n, temp, i, s: entier
DEBUT
repeter
ecrire("Entrer un nombre entier strictement positif à deux chiffres distincts : ");
lire(n);
jusqua( n > 0 );
s <- 0;
temp <- n;
tantque( temp <> 0 ) faire
s <- s + temp%10;
temp <- temp/10;
fintantque
ecrire("La somme des chiffres du nombre " , n , " est " , s);
FIN
6
Correction : Q5
Algorithme: exercice 28 nbr d occ
Variables:
n, nbr, i: entier
DEBUT
repeter
ecrire("Entrer un nombre entier strictement positif : ");
lire(n);
jusqua( n > 0 );
ecrire("Entrer le chiffre : ");
lire(nbr);
i <- 0;
temp <- n;
tantque( temp <> 0 ) faire
si(temp%10 = nbr) alors
i++;
finsi
temp <- temp/10;
fintantque
ecrire("Le nombre d’occurrences de " , nbr , " dans " , n , " est " , i);
FIN
Entrée
La première (et unique) ligne d’entrée contient un nombre entier w (1 ≤ w ≤
100) — le poids de la pastèque achetée par les garçons.
7
Sortie
Imprimez OUI, si les garçons peuvent diviser la pastèque en deux parties, cha-
cune pesant un nombre pair de kilos ; et NON dans le cas contraire.
Correction :
Algorithme : Watermelon problem
Variables:
poids: entier
DEBUT
Repeter
ecrire("Veuillez entrer le poids de la pastèque: ");
lire(poids);
Jusqu’a ( poids >= 1 et poids <= 100 );
FIN