Exercices entrainement algorithmes terminale S

Il existe peu d’exercices de mathématiques traitant uniquement des algorithmes (qui devrait pourtant avoir un chapitre dédié, surtout vu la compréhension des élèves), voici donc quelques exercices de maths niveau terminale S sur les algorithmes :

L’article présente quelques exercices corrigés sur les algorithmes étant abordés en classes de première S et terminale S (ils peuvent toutefois être adaptés à d’autres filières). Si vous souhaitez reprendre des notions, Cliquez sur ce cours sur les algorithmes niveau lycée bac S.

Exercice 1

1/ Que fait l’algorithme ci-dessous ?

Variables
n, P, i, S
Algorithme
Afficher « Entrez le capital en euros : »
Lire S

Afficher « Entrez le taux : »
Lire P

Afficher « Entrez le nombre d’années : »

Lire n

Pour i de 1 jusqu’à n
S prend la valeur S*(1+P/100)
FinPour
Afficher S

2/ On a entré 1000 puis 10 puis 3. Qu’affiche l’algorithme ?

Corrigé 1

1/ L’algorithme calcule le montant final S d’une épargne définie par l’utilisateur à un taux P durant n années.

2/ 1000 x 1,103 = 1331.

Exercice 2

On considère l’algorithme suivant :

Variables
N, i, S
Algorithme
Afficher « Saisissez un nombre entier N : »
Saisir N
S reçoit la valeur 1
Pour i de 1 jusqu’à N
S reçoit S × i
FinPour
Afficher S

1) Tester cet algorithme pour N = 3 en donnant les résultats à chaque itération.
2) Indiquer à quelle ligne se fait l’initialisation et pourquoi est-elle importante.

Corrigé 2

1) Première boucle i = 1 ; S = 1

Deuxième boucle i = 2 ; S = 2

Troisième boucle i = 3 ; S = 6

Affichage final : 6

2) Ligne «S reçoit la valeur 1 », elle est importante sinon la boucle ne pourra pas se faire (la variable S ne serait pas définie).

Exercice 3

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.

Corrigé 3

Variables m, n en 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 4

Un robot-insecte se déplace aléatoirement autour d’un parc hexagonal.

Algorithmes T°S

Il se déplace segment par segment de deux lettres adjacentes (il peut faire C –> B ou C –>O mais pas C à A).

1/ Ecrire un algorithme simulant son premier déplacement.

2/ Quelle est la probabilité d’arriver en A au bout de 2 déplacements.

Corrigé 5

1/ Le plus « simple » dans ce cas est de coder chaque lettre par un chiffre (ce qui sera plus facile à traiter avec un algorithme. (C = 1 ; D = 2 ; B = 3 ; O = 4)

Variable P entier

Choisir un entier aléatoire entre 2 et 4

P prend la valeur de cet entier aléatoire

Fin algorithme

2/ Faire un arbre (p = 1/6)

Exercice 6 : jeu du plus ou du moins

1/ Ecrire l’algorithme suivant : l’ordinateur choisit un entier au hasard entre 1 et 20000. L’utilisateur doit alors entrer un nombre. S’il entre un nombre plus petit que celui choisi par l’ordinateur on affiche « Plus grand ! », s’il entre un nombre plus grand que celui choisi par l’ordinateur on affiche « Plus petit !». Si c’est le bon nombre on affiche « Gagné ! ».

2/ Ajouter à l’algorithme un compteur pour savoir en combien de coups a gagné le joueur.

3/ Donner une méthode permettant de gagner rapidement en un minimum de coups (le nombre est maintenant choisi au hasard entre 0 et 1000).

Corrigé 6

1/

Début algorithme

i, nb_choisi et nb_joueur sont des entiers

       nb_joueur prend la valeur 0

nb_choisi prend la valeur d’un entier aléatoire compris entre 1 et 20000

Tant que (nb_choisi <> nb_joueur)

Lire nb_joueur

Si (nb_joueur > nb_choisi)

Alors

Afficher « Plus grand ! »

Fin Si

Si (nb_joueur < nb_choisi)

Alors

Afficher « Plus petit !

Fin Si

Si (nb_joueur == nb_choisi)

Alors

Afficher « Gagné ! »

Fin Si

Fin Tant que

Fin algorithme

2/

Début algorithme

i, n, nb_choisi et nb_joueur sont des entiers

n prend la valeur 0

nb_joueur prend la valeur 0

nb_choisi prend la valeur d’un entier aléatoire compris entre 1 et 20000

Tant que (nb_choisi <> nb_joueur)

Lire nb_choisi

Si (nb_joueur > nb_choisi)

Alors

Afficher « Plus grand ! »

n prend la valeur n+1

Fin Si

Si (nb_joueur < nb_choisi)

Alors

Afficher « Plus petit !

n prend la valeur n+1

Fin Si

Si (nb_joueur == nb_choisi)

Alors

        n prend la valeur n+1

Afficher « Gagné en »&n&« coups »

Fin Si

Fin Tant que

Fin algorithme

3/ On va utiliser cette technique : exemple avec 417 comme nombre choisi par l’ordinateur. Le joueur entre 912, l’algorithme affiche alors « Plus petit ! ». On calcule alors la moyenne de 912 et 0 = 456. L’algorithme affiche alors « Plus petit ». On calcule la moyenne entre 456 et 0 = 228. L’algorithme affiche « Plus Grand », on calcule la moyenne de 228 et 456 = 342. L’algorithme affiche « Plus Grand », on calcule alors la moyenne de 342 et 456 = 399. Et cætera et cætera, on appelle cette méthode la dichotomie.

Exercice algorithme bac S

Un groupe de 50 coureurs, portant des dossards numérotés de 1 à 50, participe à une course cycliste qui comprend 10 étapes, et au cours de laquelle aucun abandon n’est constaté. À la fin de chaque étape, un groupe de 5 coureurs est choisi au hasard pour subir un contrôle antidopage. Ces désignations de 5 coureurs à l’issue de chacune des étapes sont indépendantes. Un même coureur peut donc être contrôlé à l’issue de plusieurs étapes.

On considère l’algorithme ci-dessous dans lequel :

– « rand(1, 50) » permet d’obtenir un nombre entier aléatoire appartenant à l’intervalle [1; 50]

– l’écriture « x := y » désigne l’affectation d’une valeur y à une variable x.

Variables a, b, c, d, e sont des variables du type entier

Initialisation a := 0 ; b := 0 ; c := 0 ; d := 0 ; e := 0

Traitement

Tant que (a = b) ou (a = c) ou (a = d) ou (a = e) ou (b = c) ou (b = d) ou (b = e) ou (c = d) ou (c = e) ou (d = e)

Début du tant que

a := rand(1, 50); b := rand(1, 50); c := rand(1, 50); d := rand(1, 50); e := rand(1, 50)

Fin du tant que

Sortie

Afficher a, b, c d, e

(a) Parmi les ensembles de nombres suivants, lesquels ont pu être obtenus avec cet algorithme : L1 = {2, 11, 44, 2, 15} ; L2 = {8, 17, 41, 34, 6} ; L3 = {12, 17, 23, 17, 50} ; L4 = {45, 19, 43, 21, 18} ? (b) Que permet de réaliser cet algorithme concernant la course cycliste ?

N’oubliez pas que les algorithmes nous « entourent » (et c’est peu de le dire), en avoir un minimum de compréhension est important et ces exercices corrigés traitant des algorithmes pouvant être abordés au bac S vous permettront de vous entraîner (ou d’entraîner vos élèves).

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.