280 likes | 764 Views
Algorithmique. L’algorithmique. Objectifs pour le lycée Préciser et formaliser la notion d’algorithme Étudier certaines notions sous un angle nouveau. 2. Présence des algorithmes dès l’école primaire dans l’enseignement des mathématiques dans beaucoup « d’objets » usuels .
E N D
L’algorithmique • Objectifs pour le lycée • Préciser et formaliser la notion d’algorithme • Étudier certaines notions sous un angle nouveau 2 Présence des algorithmes • dès l’école primaire dans l’enseignement des mathématiques • dans beaucoup « d’objets » usuels
Algorithmique(objectifs pour le lycée) 3 • familiariser les élèves avec les grands principes d’organisation d’un algorithme : • gestion des entrées-sorties • affectation d’une valeur • mise en forme d’un calcul. • formaliser des algorithmes simples en langage naturel • traduire des algorithmes sur tableur ou dans un langage de programmation (calculatrice ou logiciel)
Les idées importantes • Il faut distinguer l’algorithmique de la programmation : il n’est pas judicieux de commencer sur ordinateur. • L’apprentissage doit être étalé sur l’année. Il serait souhaitable d’intégrer l’écriture d’algorithmes dans tous les domaines du programme. • L’algorithmique n’est pas un chapitre à part. 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. 4
Les instructions en algorithmique Instructions élémentaires entrée, sortie, affectation, calcul Instructions conditionnelles Si….alors……(sinon….) Instructions itératives la boucle « tant que ….faire » la boucle « pour (variable) de ….à … faire » 5
Algorithmes et langages Écrire un algorithme qui donne la somme des entiers de 1 à n Le langage naturel Pour calculer la somme des entiers de 1 à n , on part de 1 puis on calcule 1+2, puis 1+2+3, et on continue ainsi jusqu’à 1+2+3+….+n. Le langage algorithmique Entrée : Saisir n Traitement : Affecter à S la valeur 0 Pour i variant de 1 à n Affecter à S la valeur S+i Sortie: Afficher S Le langage de programmation
Algorithmes et langages Écrire un algorithme qui donne la somme des entiers de 1 à n Algobox Python n=int(input("Saisir le nombre n ")) S=0 for i in range(n+1): S=S+i print("La somme des entiers de 1 à ",n, " est égale à ",S)
Le langage « naturel » 8 L’instruction d’affectation : - on préférera les formulations Affecter à x la valeur 12 Affecter à x la valeur x+1 (la variable x reçoit la valeur de l’expression de l’expression x+1 - on réservera aux langages de programmation x := 12 x:=x+1 x = 12 x =x+1 x 12 x x+1 12 x x+1 x
L’algorithmique Ressources : Le sitede Jean-Pierre Ferrier Accessible à partir du site académique, rubrique « espace de l’inspection/dossiers et animation : Algorithmique en terminale L Le document d’accompagnement du cycle terminal de la série L (août 2005) En téléchargement sur le site académique, rubrique « BO, programmes/programmes puis paragraphe « les programmes en place au lycée)
L’évaluation (document ressource) Les modalités fondamentales de l’activité algorithmique : • 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 à un problème donné. 10
Les compétences visées (document ressource) • 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. 11
Les compétences visées (document ressource) Être capable de … • 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. Entrée : Saisir trois nombres a, b et c Traitement : Calculer (a+b+c)/3 Affecter à M la valeur trouvée Sortie : Afficher M Expliquer en une phrase ce que fait cet algorithme 12
Les compétences visées (document ressource) Être capable de … • 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. Entrée : Saisir trois nombres a, b et c Traitement : Calculer (a+b+c)/3 Affecter à M la valeur trouvée Sortie : Afficher M Modifier cet algorithme afin qu’il permette de calculer la moyenne de trois notes a, b et c affectées des coefficients 1,2 et 3 et qu’il signale si le résultat est ou non supérieur à 10. 13
Les compétences visées (document ressource) Être capable de … • 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. On veut écrire un algorithme qui permette de calculer la moyenne de trois notes a, b et c affectées des coefficients 1,2 et 3. et qui signale si le résultat est ou non supérieur à 10. Compléter : Entrée : Traitement : Sortie : 14
Les compétences visées (document ressource) Être capable de … • 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. Un examen comporte trois épreuves de coefficients respectifs 1, 2 et 3. Un étudiant est reçu à l’examen si sa moyenne est supérieure ou égale à 10. Écrire un algorithme qui renvoie l’information « l’étudiant est reçu » ou l’information « l’étudiant n’est pas reçu » à la saisie des trois notes. 15
Les compétences visées (document ressource) Un examen comporte trois épreuves de coefficients respectifs 1, 2 et 3. Un étudiant est reçu s’il obtient une moyenne supérieure ou égale à 10, il est recalé s’il obtient strictement moins de 8 et il doit passer un oral si sa moyenne est comprise entre 8 et 10. On veut écrire un algorithme qui renvoie le résultat de l’examen à la saisie des trois notes. L’algorithme suivant convient-il ? Entrée : saisir a,b,c Traitement : M= a+2*b+3*c/6 si (M-8)*(M-10)<=0 afficher « oral » si M>=10 afficher « reçu » sinon afficher « recalé » Être capable de … • 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. 16
Les compétences visées (document ressource) Être capable de … • 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. Un examen comporte trois épreuves de coefficients respectifs 1, 2 et 3. Un étudiant est reçu s’il obtient une moyenne supérieure ou égale à 10, il est recalé s’il obtient moins de 8 et il doit passer un oral si sa moyenne est comprise entre 8 et 10. On veut écrire un algorithme qui renvoie le résultat de l’examen à la saisie des trois notes. Exécuter l’algorithme suivant en utilisant Algobox. Entrée : saisir a,b,c Traitement : M= (a+2*b+3*c)/6 si M<8 afficher « recalé» si M>=10 afficher « reçu » sinon afficher « oral » 17
Évaluation d’une production d’élève (document ressource) 18
Déterminer tous les nombres entiers naturels égaux à la somme des cubes de leurs chiffres. 19
Déterminer tous les nombres entiers naturels égaux à la somme des cubes de leurs chiffres. 1 ) Ecrire un algorithme permettant de trouver tous les nombres inférieurs à 9999 solutions du problème. 2) Calculer 5 x 93 .En déduire qu’il n’existe pas de nombre N à 5 chiffres qui soit égal à la somme des cubes de ses chiffres. Existe-t-il des nombres de plus de 5 chiffres solutions du problème ? 3) A l’aide d’une calculatrice ou d’un logiciel déterminer tous les nombres solutions du problème. 4) Déterminer tous les nombres égaux à la somme des puissances quatrièmes de leurs chiffres.
Compétences visées • 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.
Variables m, c, d, u, N, S nombres entiers naturels Traitement pour m allant de 0 à 9 pour c allant de 0 à 9 pour d allant de 0 à 9 pour u allant de 0 à 9 affecter la valeur 1000m+100n+10d+u à N affecter la valeur m3+c3+d3+u3 à S Si N=S Afficher N
Version python Version scilab