Exercices corrigés : algorithme de base
Exercice 1:
Ecrire un programme qui échange la valeur de deux variables. Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2.
Correction de l’exercice 1 :
Algorithme Echange Variables a,b : entiers Début a=2 b=5 t <-- a a <-- b b <-- t Fin
ou bien
Algorithme Echange_V2 Variables a,b : entiers Début a=2 b=5 a <-- a+b b <-- a-b a <-- a-b Fin
Exercice 2
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce nombre.
Correction de l’exercice 2 :
Algorithme Carré Variables nb, carr :Entier Début Ecrire (”Entrez un nombre :”) Lire (nb) carr <-- nb * nb Ecrire (”Son carré est : ”, carr) Fin
En fait, on pourrait tout aussi bien économiser la variable carr en remplaçant les deux avant-dernières lignes par :
Ecrire ”Son carré est : ”, nb*nb
C’est une question de style ; dans un cas, on privilégie la lisibilité de l’algorithme, dans l’autre, on privilégie l’économie d’une variable.
Exercice 3 :
Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés apparaissent clairement.
Correction de l’exercice 3 :
Algorithme Articles Variables nb, pht, ttva, pttc : réels Début Ecrire (”Entrez le prix hors taxes :”) Lire (pht) Ecrire (”Entrez le nombre d’articles :”) Lire (nb) Ecrire (”Entrez le taux de TVA :”) Lire (ttva) pttc <-- nb * pht * (1 + ttva) Ecrire (”Le prix toutes taxes est : ”, pttc) Fin
Exercice 4 :
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif (on laisse de côté le cas où le produit est nul). Attention toutefois : on ne doit pas calculer le produit des deux nombres.
Correction de l’exercice 4 :
Algorithme Produits Variables m, n : Entier Début Ecrire (”Entrez deux nombres : ”) Lire (m, n) Si (m > 0 ET n > 0) OU (m < 0 ET n < 0) Alors Ecrire (”Leur produit est positif”) Sinon Ecrire (”Leur produit est négatif”) Finsi Fin
Exercice 5 :
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie :
”Poussin” de 6 à 7 ans
”Pupille” de 8 à 9 ans
”Minime” de 10 à 11 ans
”Cadet” après 12 ans
Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ?
Correction de l’exercice 5 :
Algorithme Enfants Variable age : Entier Début Ecrire( ”Entrez l’âge de l’enfant : ”) Lire age Si age >= 12 Alors Ecrire (”Catégorie Cadet”) SinonSi age >= 10 Alors Ecrire (”Catégorie Minime”) SinonSi age >= 8 Alors Ecrire (”Catégorie Pupille”) SinonSi age >= 6 Alors Ecrire (”Catégorie Poussin”) Finsi Fin
On peut évidemment écrire cet algorithme de différentes façons, ne serait-ce qu’en commençant par la catégorie la plus jeune.
Exercice 6 :
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : Plus petit ! , et inversement, Plus grand ! si le nombre est inférieur à 10.
Correction de l’exercice 6 :
Algorithme Nombres Variable N :Entier Début N <-- 0 Ecrire (”Entrez un nombre entre 10 et 20”) Lire (N) TantQue N < 10 ou N > 20 Si N < 10 Alors Ecrire (”Plus grand !”) SinonSi N > 20 Alors Ecrire (”Plus petit !”) FinSi FinTantQue Fin
Exercice 7 :
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15 NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.
Correction exercice 7 :
Algorithme Somme Variables N, i, Som :Entier Debut Ecrire ”Entrez un nombre : ” Lire (N) Som <-- 0 Pour i <-- 1 à N Som <-- Som + i FinPour Ecrire (”La somme est : ”, Som) Fin
Exercice 8 :
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 Variables N, i, F en Entier
Correction de l’exercice 8 :
Algorithme Factorielle Variables N,F,i : Entiers Début Ecrire (”Entrez un nombre : ”) Lire (N) F <-- 1 Pour i <-- 2 à N F <-- F * i Fin Pour Ecrire (”La factorielle est : ”, F) Fin
Exercice 9 :
Que produit l’algorithme suivant ?
Algorithme Inconnu Variable i :Entier Tableau Nb(5) :Entier Début Pour i <-- 0 à 5 Nb(i) <-- i * i FinPour Pour i <-- 0 à 5 Ecrire (Nb(i)) FinPour Fin
Peut-on simplifier cet algorithme avec le même résultat ?
Correction de l’exercice 9 :
Cet algorithme remplit un tableau avec six valeurs : 0, 1, 4, 9, 16, 25.
Il les écrit ensuite à l’écran. Simplification :
Algorithme Remli_Tab Variable i :Entier Tableau Nb(5) :Entiers Début Pour i <-- 0 à 5 Nb(i) <-- i * i Ecrire Nb(i) FinPour Fin
Exercice 10 :
écrivez un algorithme permettant, à l’utilisateur de saisir les notes d’une classe. Le programme, une fois la saisie terminée, renvoie le nombre de ces notes supérieures à la moyenne de la classe.
Correction de exercice 10 :
Algorithme Moy_Classe Variables Nb, i, Som, Moy, Nbsup : Réels Tableau T() : Entiers Début Ecrire (“Entrez le nombre de notes à saisir : “) Lire (Nb) Pour i <-- 1 à Nb Ecrire (“Entrez le nombre numéro”, i) Lire (T(i)) FinPour Som<--0 Pour i <-- 1à Nb Som <-- Som + T(i) FinPour Moy <-- Som / Nb NbSup <-- 0 Pour i <-- 1 à Nb Si T(i) > Moy Alors NbSup <-- NbSup + 1 FinSi FinPour Ecrire (NbSup, “ élèves dépassent la moyenne de la classe”) Fin