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

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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