Dans un lycée, un code d’accès à la photocopieuse est attribué à chaque professeur. Ce code est un nombre à quatre chiffres choisis dans la liste {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, chaque chiffre pouvant être répété à l’intérieur d’un même code. Ce code permet aussi de définir un identifiant pour l’accès au réseau informatique. L’identifiant est constitué du code à quatre chiffres suivi d’une clé calculée à l’aide de l’algorithme suivant :
Faire fonctionner l’algorithme avec N = 2 282 et vérifier que la clé qui lui correspond est 3. Un professeur s’identifie sur le réseau informatique en entrant le code 4 732 suivi de la clé 7. L’accès au réseau lui est refusé. Le professeur est sûr des trois derniers chiffres du code et de la clé, l’erreur porte sur le premier chiffre du code. Quel est ce premier chiffre ? |
Un exemple de sujet 2012 au bac S On considère l’algorithme suivant, où Ent(A/N) désigne la partie entière de A/N.
♣ Que donne cet algorithme dans le cas général ? |
Compétance à travailler –Comprendre et analyser un algorithme préexistant ; –Modifier un algorithme pour obtenir un résultat particulier ; –Analyser la situation : identifier les données d’entrée, de sortie, le traitement...; –Mettre au point une solution algorithmique : comment écrire un algorithme en « langage courant » en respectant un code, identifier les boucles, les tests, des opérations d’écriture, d’affichage... ; –Valider la solution algorithmique par des traces d’exécution et des jeux d’essais simples ; –Adapter l’algorithme aux contraintes du langage de programmation : identifier si nécessaire la nature des variables... ; –Valider un programme simple. |
Evaluation
|
les elements de base d'un algorithme simple
les elements de base d'un algorithme simple Les trois étapes :
|
Les instructions Un exemple progressif Un joueur lance deux dés et fait la somme des points obtenus. S’il obtient 8, il gagne 10€, sinon il perd 1€. Variante : le joueur rejoue 10 fois (et cumule ses gains et pertes). Autre variante : le joueur rejoue jusqu’à avoir un gain cumulé de 5€ . |
Instructions pour traiter les données L’affectation de données dans des variables
|
Les structures de controle
|
Les structures alternatives
Traitement 1 Sinon Traitement 2 Fin Si
Traitement 1 Fin Si |
Les structures répétiives
C’est la boucle « Pour I variant de … à … »
│ Traitement Fin Pour |
Tant que {condition C } │Faire {instructions} Fin Tant que OU Répète │ Traitement Jusqu’à {condition C } |
Algorithme cas 1 Variables a, b, coup sont des entiers naturels gain est un entier
Initialisation a prend une valeur aléatoire entière entre 1 et 6 b prend une valeur aléatoire entière entre 1 et 6 Traitement Si a + b = 8 │Alors gain = gain + 10 │Sinon gain = gain -1 Fin Si Sortie Afficher gain |
Algorithme cas 2 Variables a, b, coup sont des entiers naturels gain est un entier i est un compteur de boucle Initialisation a prend une valeur aléatoire entière entre 1 et 6 b prend une valeur aléatoire entière entre 1 et 6 gain prend la valeur 0 Traitement Pour i allant de 1 à 10 Si a + b = 8 │Alors gain = gain + 10 │Sinon gain = gain -1 Fin Si Fin Pour Sortie Afficher gain |
Algorithme cas 3 Variables a, b, coup sont des entiers naturels gain est un entier Initialisation a prend une valeur aléatoire entière entre 1 et 6 b prend une valeur aléatoire entière entre 1 et 6 gain prend la valeur 0 coup prend la valeur 0 Traitement Tant que gain ± 5 Pour i allant de 1 à 10 coup prend la valeur coup + 1 Si a + b = 8 │Alors gain = gain + 10 │Sinon gain = gain -1 Fin Si Fin Tant que Sortie Afficher coup |
Documentation des algorithmes Quelques habitudes de rigueur permettent de se simplifier la vie quand les algorithmes deviennent longs et/ou nombreux :
|