EXERCICES D'ALGORITHMIQUE 3.
1
Premiers algorithmes :
Ex 1 - On considère l’algorithme suivant :
Choisir un nombre de départ 3
Lui ajouter 1 4
Multiplier le résultat par 2 8
Soustraire 3 au résultat
5
et afficher le résultat final
1) Recopier le tableau ci-dessus, puis :
a) Appliquer successivement cet algorithme à – 4, 0, 1/3
b) Déterminer les nombres à choisir au départ pour afficher à la fin 0 puis 7
2) Écrire un nouvel algorithme qui permette, en partant du résultat final de l'algorithme ci-dessus, de
retrouver le nombre de départ.
3) Traduire chacun de ces deux algorithmes par une formule en fonction du nombre de départ x.
Quelle est la nature des deux fonctions trouvées ?
Ex 2 - On considère l’algorithme suivant :
Choisir un nombre
Calculer le carré de ce nombre
Multiplier par 10
Ajouter 25
Afficher le résultat
1) En faisant un tableau comme celui de l'exercice I), appliquer cet algorithme à 2, puis √ 2
2) Traduire cet algorithme par une formule en fonction de x.
3) Pénélope affirme que si le nombre choisi au départ est un entier alors le résultat est impair.
A -t-elle raison ? Justifier.
4) Ulysse affirme que le résultat est toujours positif quelque soit le nombre choisi au départ.
A -t-il raison ? Justifier.
Ex 3 - Quel est le signe du résultat final dans le programme ci-dessous : (justifier)
Choisir un réel x
Ajouter 4
Multiplier la somme obtenue par x
Ajouter 4 à ce produit
Écrire le résultat
Affectations de variables :
Ex 4 - On donne l’algorithme suivant :
Lire a et b
c prend la valeur de a
a prend la valeur de b
b prend la valeur de c
Afficher a et b
1) Recopier le tableau ci-dessous,
puis tester cet algorithme en choisissant comme valeurs initiales : a = 7 et b = 2
a b c
Valeurs initiales de a et b
c prend la valeur de a
a prend la valeur de b
b prend la valeur de c
Valeurs finales de a et b
2) De même, tester cet algorithme en choisissant comme valeurs initiales : a = – 1 et b = 4
3) Que fait cet algorithme ?
Ex 5 - On donne l’algorithme suivant :
Lire n
q prend la valeur de (n + 2) × (n + 2)
q prend la valeur de q – (n + 4)
q prend la valeur de q / (n + 3)
Afficher q
1) Tester cet algorithme pour n = 4, puis pour n = 7.
2) Un élève a saisi n = – 3. Que se passe-t-il ? Pourquoi ?
3) Émettre une conjecture sur le résultat fourni par cet algorithme puis démontrer cette conjecture.
Ex 6 - Tester à l'aide d'un tableau les deux algorithmes ci-dessous :
a=5;b=3 5→a;3→b
c=a+b a+b→a
a=2 a+b→b
c=b–a a+b→c
Afficher c Afficher c
Ex 7 - Les deux algorithmes ci-dessous se ressemblent mais ne font pas la même chose !
En choisissant une valeur de x, montrer en quoi ils sont différents.
Donner une valeur à x. Saisir x
Calculer x + 3. x3→x
Multiplier le résultat par x. x×x→x
Afficher le résultat. Afficher x
Tests « si, sinon, finsi » :
Ex 8 - On défini une fonction f à l'aide de l’algorithme suivant :
Entrer x
Si x < 0
y ← x2
Sinon
y←2x
Fin si
Afficher y
1) Recopier et compléter le tableau de valeur suivant :
x −3 −2 −1 −0,5 −0,25 0 1 2 3
y
2) Quel est l'ensemble de définition de f ?
3) Représenter graphiquement la fonction f.
Ex 9 - On lance une fléchette sur une cible électronique qui détecte les coordonnées (x ; y) du point d'impact F
de la fléchette dans un repère orthonormal (O ; ⃗i , ⃗j) gradué en cm. On s'intéresse à l’algorithme suivant :
Lire x et y
d =√ x2+ y2
Si d < 10
Afficher « Trop fort, tu es dans la cible ! »
Sinon
Si d = 10
Afficher « Oups, c'était limite ! »
Sinon
Afficher « Désolé, mais c'est raté ! »
Fin si
FinSi
1) Qu'affiche l'algorithme dans les cas suivants : a) x = 4 ; y = 3 b) x = 10 ; y = 0 c) x = 9 ; y = 6
2) La variable d désigne la distance entre deux points : Lesquels ?
3) De quelle forme est la cible et quelles sont ses dimensions ?
Ex 10 - On donne l’algorithme ci-dessous :
Lire a et b 1) Il y a une erreur : Corrigez-là.
Si a 0 2) Modifier cet algorithme en
Si b 0 ajoutant au tout début le cas où
Afficher « Le produit a × b est positif ou nul. » le produit a × b est nul.
Sinon
Afficher « Le produit a × b est négatif ou nul. »
Fin si
Sinon
Si b 0
Afficher « Le produit a × b est positif ou nul. »
Sinon
Afficher « Le produit a × b est négatif ou nul. »
Fin si
FinSi
Ex 11 - Recopier et compléter le début d’algorithme ci-dessous qui doit permettre de résoudre n'importe quelle
équation de la forme : a x + b = 0
Lire a et b
Si a = 0
Si b = 0
Afficher « S = ℝ. »
Sinon ...
Ex 12 - Écrire un algorithme qui demande les abscisses de deux points situés sur une droite graduée, puis
affiche la distance entre ces deux points.
Ex 13 - Un magasin propose de tirer des photos sur papier au tarif de 0,16 € la photo pour les 75 premières
photos, puis 0,12 € la photo pour les photos suivantes. Écrire un algorithme demandant à l'utilisateur d'entrer
le nombre N de tirages photos commandés et calculant le montant à payer.
Ex 14 - Triangle rectangle :
1) Écrire un algorithme qui, à partir de trois longueurs a, b et c données en ordre croissant, détermine si le
triangle correspondant est rectangle.
2) Modifier cet algorithme de façon à afficher en plus « données incorrectes » si c n’est pas le plus grand des
trois nombres rentrés.
Ex 15 - Écrire un algorithme qui demande trois nombres distincts puis affiche le plus grand.
Ex 16 - Écrire un algorithme qui demande trois nombres distincts puis les classe en ordre croissant.
Boucles « Pour » :
Ex 17 - On considère l'algorithme ci-dessous :
1 Lire a et n 1) Tester cet algorithme sans calculatrice pour a = 2 et n = 3
2 1→p On s'aidera d'un tableau où l'on donnera les valeurs de i et p après
3 Pour i de 1 à n chaque exécution de la ligne 4
4 p×a → p 2) Même question pour a = –3 et n = 5
5 Fin pour 3) Que calcule cet algorithme ?
6 Afficher p
Ex 18 - On donne l’algorithme suivant où ent(n/i) donne la partie entière de n/i :
Lire n 1) Tester cet algorithme sans calculatrice pour n égal à 4, puis 6 et 9
Pour i de 1 à n 2) Traduire l'algorithme dans le langage de votre calculatrice et vérifier
Si ent(n/i) = n/i les réponses de la question 1.
Afficher i 3) Qu'est-ce que cet algorithme permet d'afficher ?
Fin si 4) Fonctionne-t-il encore si n = 2,2 ? et si n = –4 ?
Fin pour
Ex 19 - L’algorithme suivant est appelé algorithme de Héron :
Lire a 1) Tester l'algorithme sans calculatrice à l'aide d'un tableau pour a = 6
a/2 → b 2) Écrire cet algorithme sur votre calculatrice et le tester pour a = 2,
Pour i de 1 à 4 puis a = 3 et a = 4.
(b + a/b)/2 → b 3) Que semble calculer cet algorithme ? Peut-on le rendre plus précis ?
Fin pour
Afficher b
Ex 20 - Écrire un programme avec une boucle qui affiche les 10 premiers nombres pairs.
Ex 21 - On cherche parmi les nombres ci-dessous, ceux qui sont le carré d'un nombre entier :
44, 64, 61, 81, 96, 125, 121, 144, 156, 169, 196, 200, 225, 250, 256, 264, 289, 300, 326, 361, 400.
1) Écrire un algorithme qui affiche les carrés des entiers de 1 à 20.
2) Programmer l'algorithme sur calculatrice et utiliser cet algorithme pour répondre à la question de départ.
Ex 22 - Écrire sur votre calculatrice un algorithme qui demande un entier naturel n puis qui calcule
1×2×3×4×5×6××n . (Le saviez-vous : Ce calcul est appelé « factorielle de n »)
Ex 23 - La somme des premiers nombres impairs.
1) Écrire les 10 premiers nombres impairs dans l'ordre : 1, 3, 5, …
Vérifier sur 2 ou 3 exemples pris dans cette liste que le « p-ième » nombre impair est égal à 2 p – 1.
2) Écrire sur votre calculatrice un algorithme qui permet de saisir p, puis de calculer la somme des p
premiers nombres impairs.
3) En observant les résultats obtenus avec la calculatrice, proposer une formule qui permet de calculer
beaucoup plus rapidement cette somme.
4) En déduire sans calculatrice la somme S = 1 + 3 + 5 + …… + 199 999.
Boucles « Tant que » :
Ex 24 - Soit f la fonction définie sur [–1 ; 0] par : x x2 + x. On considère alors l'algorithme ci-dessous.
–1 → x 1) Tester l'algorithme sans calculatrice à l'aide d'un tableau dans lequel
x→a on précisera les valeurs des différentes variables au niveau du « Fin
x2 + x → b si ».
Tant que x 0 2) Quelles sont les valeurs de a et b affichées en fin d'algorithme ?
x2 + x → y 3) Que représentent a et b pour la fonction ?
Si y < b
x→a
y→b
Fin si
x + 0,1 → x
Fin tant que
Afficher a et b
Ex 25 - Soit f la fonction définie sur [–2,5 ; 1,5] par : x 2 x2 + 2 x + 1.
Écrire sur votre calculatrice un algorithme qui permette de compléter le tableau de valeurs ci-dessous :
x –2,5 –2 –1,5 –1 –0,5 0 0,5 1 1,5
f (x)
Ex 26 - Les entiers compris entre deux réels.
1) Écrire pour votre calculatrice un programme qui demande deux réels positifs (en premier le plus petit, en
second le plus grand) et qui affiche tous les entiers compris entre ces deux nombres.
2) Même exercice dans le cas où les deux nombres entrés sont de signes quelconques et pas forcément dans
l'ordre...
Ex 27 - Écrire un programme qui choisit un entier au hasard entre 0 et 100 puis demande à l'utilisateur de le
deviner en lui répondant à chaque essai « trop petit » ou « trop grand ». Le programme s'arrête quand
l'utilisateur a trouvé le bon nombre et affiche le nombre d'essais qui ont été nécessaires.
Ex 28 - PGCD de deux nombres (Plus Grand Diviseur Commun) avec l'algorithme des différences.
En classe de 3ème, vous avez rencontré l'algorithme suivant :
1 Lire a et b
2 Tant que a différent de b
3 Remplacer le plus grand des deux nombres a et b
par la différence entre ces deux nombres.
4 Fin tant que
5 Afficher a
1) Recopier le tableau ci-dessous et tester cet algorithme :
Avec 32 et 80, on a juste après l'exécution de la ligne 3 :
a 32
b 80
différence 80 – 32 = 48
Donc le plus grand diviseur commun à 32 et à 80 est :
2) Programmer cet algorithme sur calculatrice et le tester.
(Pour traduire la ligne 3 en langage « calculatrice », on peut par exemple écrire :
« Si a > b, alors a = a – b sinon, … ».)
Ex 29 - Écrire un programme qui permet à l'utilisateur d'entrer une série de notes puis qui affiche la moyenne de
ces notes. Pour déclencher le calcul de la moyenne, l'utilisateur doit entrer un nombre qui n'est pas compris
entre 0 et 20. (On ne sait pas à l'avance combien de notes vont être entrées)
Ex 30 - Même principe que le programme précédent sauf qu'au lieu de calculer la moyenne, on renvoie la
meilleure note et la moins bonne.
Ex 31 - La population de Bigcity augmente de 3% par an.
1) Par quel coefficient est multiplié chaque année cette population ?
2) Écrire un programme qui permet de déterminer dans combien d'années elle aura doublé.
Ex 32 - Lancers de dés.
1) Écrire sur votre calculatrice un algorithme qui simule des lancers de dés jusqu'à obtenir un 6 et compte
combien il a fallu de lancers de dés pour obtenir ce 6.
2) Inclure cet algorithme dans une boucle « Pour » qui permette de répéter 100 fois l'expérience ci-dessus et
d'afficher combien il a fallu de lancers « en moyenne » pour obtenir un 6.