Entraînements d’algorithmique
Basique : * ; simple : ** ; plus évolué : *** ; amusant : ****.
1. Demander deux valeurs à l’utilisateur, puis afficher leur somme :
- (*) d’abord sans utiliser de sous-programmes, avec des variables globales
- (*) toujours avec des variables globales, mais en utilisant trois sous-programmes sans
paramètres Acquérir_Valeur, Ajouter_Valeurs et Afficher_Valeur
- (**) sans utiliser de variables globales, en passant les paramètres convenables aux trois
sous-programmes.
2. (*) Demander à l’utilisateur les coefficients a et b de l’équation du 1er degré ax + b = 0, puis
résoudre l’équation en tenant compte de tous les cas particuliers qui peuvent survenir.
3. Faire sortir l’escargot de son puits, en affichant le journal détaillé de sa progression, sous la
forme : « Jour n° XXX : position initiale YYY ; position finale ZZZ [ou : sortie du puits] » :
- (*) en utilisant les hypothèses du cours
- (**) en supposant que l’escargot ne se déplace pas selon un rythme quotidien
(nycthéméral, devrais-je écrire), mais alterne un déplacement de Durée_Montée heures
à la vitesse Vitesse_Montée avec un déplacement de Durée_Descente heures à la vitesse
Vitesse_Descente ; afficher l’heure en plus du jour dans le journal de progression
- (***) en utilisant un tableau décrivant des actions réalisées cycliquement par l’escargot
(par exemple : 4 h de montée, puis 1 h de descente, puis 3 h de montée, etc).
4. Calculer, à l’aide d’une boucle :
- (*) la somme des entiers de 1 à N, N étant une valeur donnée par l’utilisateur
- (**) la somme des entiers 1, 2, 4, 7, 11, etc., inférieurs ou égaux à N (la différence entre
deux entiers successifs augmentant de 1 à chaque étape).
5. Trouver, sans utiliser de tableau, le minimum, le maximum et la moyenne de valeurs entrées
au clavier :
- (*) dans le cas où les valeurs à traiter sont toutes non nulles et où on convient que
l’utilisateur indique qu’il a terminé sa saisie en entrant la valeur 0
- (*) dans le cas où l’utilisateur indique au préalable combien de valeurs il va fournir.
6. (**) Utiliser un des algorithmes élaborés précédemment pour déterminer si un triangle, dont
l’utilisateur donne les longueurs des côtés dans un ordre quelconque, est ou non un triangle
rectangle.
7. Sans utiliser de tableau, déterminer la ne valeur de la suite de Fibonacci Fn = Fn-2 + Fn-1, avec
F1 = F2 = 1 :
- (**) grâce à un algorithme itératif
- (**) grâce à algorithme récursif (dire quel algorithme est préférable).
8. Déterminer si un nombre est palindromique (i.e. si sa valeur reste la même après inversion des
chiffres, comme par exemple 12321), sans ranger ses chiffres dans un tableau :
- (***) grâce à un algorithme itératif
- (***) grâce à algorithme récursif (dire quel algorithme est préférable).