Le mot « algorithme » vient du nom de (né vers...

25

Transcript of Le mot « algorithme » vient du nom de (né vers...

Le mot « algorithme » vient du nom de l’auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850)

Une définition: « un algorithme est une suite finie de règles à appliquer dans un ordre déter-miné à un nombre fini de données pour arriver, en un nombre fini d’étapes, à un certain résultat et cela indépendamment des données.»

On considère le programme de calcul ci-dessous. Choisir un nombre de départ Ajouter 1 Calculer le carré du résultat obtenu Lui soustraire le carré du nombre de départ Écrire le résultat final.

1) a) Vérifier que lorsque le nombre de départ est 1, on obtient 3 au résultat final. b) Lorsque le nombre de départ est 2, quel résultat final obtient-on? c) Le nombre de départ étant x, exprimer le résultat final en fonction de x. 2) On considère l’expression P = (x +1)2 − x2. Développer puis réduire l’expression P. 3) Quel nombre de départ doit-on choisir pour obtenir un résultat final égal à 15 ? Ecrire l’algorithme associé à ce programme de calcul.

Entrée : N est le code à quatre chiffres.

Initialisation : Affecter à P la valeur de N ;

Affecter à S la valeur 0 ;

Affecter à K la valeur 1.

Traitement : Tant que K ≤ 4 :

Affecter à U le chiffre des unités de P ;

Affecter à K la valeur K + 1 ;

Affecter à S la valeur S + K U ;

Affecter à P la valeur (P – U)/10 ;

Fin Tant que

Affecter à R le reste dans la division euclidienne de S par 7 ;

Affecter à C la valeur 7 – R.

Sortie « la clé » : Afficher C.

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 ?

Algorithmes à l’école primaire ?

Algorithmes au collège ? ..\Algos Collège.doc

Introduction de l’algorithmique dans les programmes de lycée en Seconde durant l’année scolaire 2009 – 2010.

Evaluée au Baccalauréat pour la première fois en 2012.

On considère l’algorithme suivant, où Ent

A

N désigne la partie entière de

AN

.

A et N sont des entiers naturels Saisir A N prend la valeur 1

Tant que N A

Si AN

- Ent

A

N = 0 alors Afficher N et

AN

Fin si N prend la valeur N + 1 Fin Tant que.

Quels résultats affiche cet algorithme pour A = 12 ?

Que donne cet algorithme dans le cas général ?

(Partie d’un exercice)

Ce programme est un additif au programme de la classe de Seconde.

Il est repris tel quel dans les programmes des classes suivantes (1ère ES, 1ère S, 1ère STMG, 1ère STI2D, Terminale ES, Terminale S, Terminale STMG, Terminale STI2D).

La démarche algorithmique est, depuis les origines, une composante essentielle de l’activité mathématique.

Au collège, les élèves ont rencontré des algorithmes (algorithmes opératoires, algorithme des différences, algorithme d’Euclide, algorithmes de construction en géométrie).

Ce qui est proposé dans le programme est une formalisation en langage naturel propre à donner lieu à traduction sur une calculatrice ou à l’aide d’un logiciel. Il s’agit de familiariser les élèves avec les grands principes d’organisation d’un algorithme : gestion des entrées-sorties, affectation d’une valeur et mise en forme d’un calcul.

Dans le cadre de cette activité algorithmique, les élèves sont entraînés :

- à décrire certains algorithmes en langage naturel ou dans un langage symbolique ; - à en réaliser quelques uns à l’aide d’un tableur ou d’un petit programme réalisé sur une calculatrice ou avec un logiciel adapté ; - à interpréter des algorithmes plus complexes. Aucun langage, aucun logiciel n’est imposé. L’algorithmique a une place naturelle dans tous les champs des

mathématiques et les problèmes posés doivent être en relation avec les autres parties du programme (fonctions, géométrie, statistiques et probabilité, logique) mais aussi avec les autres disciplines ou la vie courante.

À l’occasion de l’écriture d’algorithmes et de petits programmes, il convient de donner aux élèves de bonnes habitudes de rigueur et de les entraîner aux pratiques systématiques de vérification et de contrôle.

Instructions élémentaires (affectation, calcul, entrée, sortie)

Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables :

- d’écrire une formule permettant un calcul ;

- d’écrire un programme calculant et donnant la valeur d’une fonction ;

ainsi que les instructions d’entrées et sorties nécessaires au traitement.

Boucle et itérateur, instruction conditionnelle

Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables :

- de programmer un calcul itératif, le nombre d’itérations étant donné ;

- de programmer une instruction conditionnelle, un calcul itératif, avec une fin de boucle conditionnelle.

L’enseignement de l’algorithmique ne relève pas, à ce niveau, de cours spécifiques ; au contraire, l’introduction de chaque nouvel élément (variable, boucle, itération, etc.) devrait apparaître lors de la résolution de problèmes pour lesquels les démarches habituelles sont malcommodes ou peu performantes : par exemple dans le cas de répétition d’une tâche, ou dans le cas d’un traitement trop long pour être envisagé « à la main ».

L’algorithmique a une place naturelle dans tous les champs des mathématiques et les problèmes posés doivent être en relation avec les autres parties du programme (fonctions, géométrie, statistiques et probabilité, logique) mais aussi avec les autres disciplines ou la vie courante.

– 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.

L’évaluation des pratiques en Algorithmique peut s’organiser autour d’une évaluation par compétences qui ne conduira pas nécessairement à une note spécifique chiffrée.

Les activités menées dans le cadre de la pratique de l’algorithmique peuvent servir de support d’évaluation des compétences liées, d’une part, aux trois modalités fondamentales de l’activité en algorithmique qui sont :

analyser le fonctionnement ou le but d’un algorithme existant ;

modifier un algorithme existant pour obtenir un résultat précis ;

créer un algorithme en réponse à une problème donné.

Les trois étapes: La préparation du traitement Le traitement La sortie des résultats

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€ .

L’affectation de données dans des variables La lecture (ou entrée) des données L’écriture (ou sortie) des données Les séquences d’instructions Instructions (ou structures) de contrôle

La structure « alternative »

Les structures répétitives

Si condition alors Traitement 1 Sinon Traitement 2 Fin Si

Si condition alors Traitement 1 Fin Si

Programmation d’un calcul itératif, avec un nombre d’itérations donné:

C’est la boucle « Pour I variant de … à … »

Pour I variant de I0 à N │ Traitement Fin Pour

Programmation d’un calcul itératif avec fin de boucle conditionnelle

Tant que {condition C } │Faire {instructions} Fin Tant que

OU Répète │ Traitement Jusqu’à {condition C }

Variables

a, b 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 = 10

│Sinon gain = -1

Fin Si

Sortie

Afficher gain

Variables

a, b 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

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

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