La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ALGORITHMIQUE STAGE LA REUNION Isabelle ABOU.

Présentations similaires


Présentation au sujet: "ALGORITHMIQUE STAGE LA REUNION Isabelle ABOU."— Transcription de la présentation:

1 ALGORITHMIQUE STAGE LA REUNION Isabelle ABOU

2 INTRODUCTION CONTENU DU STAGE:
Apporter aux enseignants un premier éclairage sur la notion d’algorithme. OBJECTIFS PEDAGOGIQUES: Rendre les enseignants à même d’intégrer l’algorithmique dans la gestion du nouveau programme de Seconde. Isabelle ABOU

3 POURQUOI L’ALGORITHMIQUE?
Une réflexion a été menée sur l’enseignement des mathématiques aujourd’hui, qui a notamment abouti à l’introduction de l’algorithmique en Seconde. - Tout d’abord, les mathématiques fondamentales ont permis l’émergence des mathématiques « appliquées » qui elles-mêmes ont profondément modifié la pratique des chercheurs (par le biais du calcul automatisé). - Ensuite, nous baignons dans un univers technologique sous-tendu par la présence d’algorithmes. - Enfin, au niveau purement pédagogique, l’algorithmique permet de travailler la logique. Il a donc semblé nécessaire de faire prendre conscience aux élèves de leur utilisation permanente dans la vie courante. Isabelle ABOU

4 INTENTIONS Il n’est nullement question, de transformer les enseignants de mathématiques en ingénieurs programmeurs ayant une connaissance exhaustive des langages de programmation, ni de faire uniquement de la programmation aux élèves. La mise en œuvre d’algorithmes est supposée être une des diverses activités mathématiques de l’élève. L’enjeu est de rendre cette activité ‘naturelle’ pendant le cours de mathématiques quand elle est appropriée au type de problème posé. Le présent travail tente de permettre aux enseignants de pouvoir aborder plus facilement la notion d’algorithmique pour l’intégrer à la gestion du nouveau programme de Seconde. Isabelle ABOU

5 DE L’ALGORITHME AU PROGRAMME
Le fait que l’on passe de l’écriture de l’algorithme à l’écriture du programme permet de vérifier concrètement que l’algorithme fonctionne, et surtout de l’utiliser pour résoudre le problème posé. En effet, l’introduction de l’algorithmique 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 ». On peut donner comme exemples justificatifs, la recherche du pgcd de très grands nombres, le tri d’un grand nombre de valeurs numériques, les simulations sur des échantillons de grandes tailles… Isabelle ABOU

6 PLAN DE L’EXPOSE I. L’ALGORITHMIQUE II. L’ALGORITHMIQUE AU LYCEE
III. LE LOGICIEL ALGOBOX IV. ACTIVITES ALGORITHMIQUES Isabelle ABOU

7 PARTIE 1: L’ALGORITHMIQUE
Isabelle ABOU

8 GENERALITES SUR L’ALGORITHMIQUE
Isabelle ABOU

9 QU’EST-CE QU’UN ALGORITHME?
Le mot « algorithme » vient du nom de l’auteur persan Al-Khuwarizmi (né vers mort vers 850) qui a écrit en langue arabe le plus ancien traité d’algèbre « abrégé de calcul par la complétion et la simplification » dans lequel il décrivait des procédés de calcul à suivre étape par étape pour résoudre des problèmes ramenés à des équations. But d’un algorithme : résolution d’un problème algébrique, numérique ou décisionnel. Algorithme : suite d’instructions qui, une fois exécutée, conduit à un résultat. Intérêt : explicite clairement les idées de solutions d'un problème indépendamment d'un langage de programmation. Le programme sert ensuite à automatiser un calcul. Isabelle ABOU

10 PHILOSOPHIE GENERALE Suivre le paradigme du « diviser pour régner ».
Être méthodique et rigoureux dans l’analyse puis la résolution du problème. Manier la structure logique propre au langage de programmation. Faire des vérifications de contrôle systématiques. Isabelle ABOU

11 PROPRIETES ESSENTIELLES D’UN BON ALGORITHME
Lisibilité : respecter l’indentation Correction ou justesse Faible complexité, en temps et/ou en espace. Isabelle ABOU

12 COMPLEXITE D’UN ALGORITHME
En temps : nombre d’instructions élémentaires, nécessaires à sa réalisation En espace : nombre d’octets utilisés, nécessaires à sa réalisation La complexité est « complexe » à calculer. Elle doit être au pire polynomiale de degré inférieur ou égal à 4. Le calcul de la complexité d’un algorithme ne sera pas abordé ici. Isabelle ABOU

13 PROBLEME FONDAMENTAL: TERMINAISON D’UN ALGORITHME
Théorème: Il n’existe pas de méthode universelle pour décider si un algorithme termine. Autrement dit: Il n’y aucun algorithme résolvant le problème: Entrée: Un algorithme A Sortie: Le booléen indiquant si A termine ou non Isabelle ABOU

14 CONTENU D’UN ALGORITHME
Isabelle ABOU

15 ECRITURE Les algorithmes présentés ici sont écrits en :
- Langage naturel - Pseudo-code, proche du langage naturel. Les programmes présentés ici sont écrits avec le Logiciel ALGOBOX. Les programmes extraits des textes officiels peuvent être écrits dans d’autres langages. Isabelle ABOU

16 STRUCTURE D’UN ALGORITHME
DECLARATION des variables ENTREE, avec éventuellement initialisation des variables  TRAITEMENT, dont on décrit la procédure, c'est le corps de l’algorithme  SORTIE, avec un affichage de ce que l’on souhaite. Isabelle ABOU

17 INSTRUCTIONS Ce sont les 4 catégories d’ordres utilisées en programmation: AFFECTATION de variables ENTREE / SORTIE ou Lecture / Ecriture TESTS BOUCLES Isabelle ABOU

18 LES VARIABLES Elles servent à stocker des informations.
DECLARATION de variable: la machine réserve la place mémoire nécessaire à cette variable. Variable n, i en Entier Isabelle ABOU

19 3 TYPES DE VARIABLES Type numérique : type entier, réel,…, et aussi, type monétaire, type date. Type alphanumérique: type caractère, et type chaîne, séquence de caractères classés dans l’ordre lexicographique. En pseudo-code, une chaîne de caractères est notée entre guillemets. Type booléen: on y stocke uniquement les valeurs logiques Vrai et Faux. Isabelle ABOU

20 TABLEAU ou VARIABLE INDICEE
Désigne une suite finie d’éléments de même type au moyen d’une unique variable. En dimension 1, on peut l’appeler liste. En général, on commence l’indexation à 0. Déclaration: Tableau Cases(7, 7) en Numérique. Tableaux dynamiques: Il arrive que l’on ne connaisse pas à l’avance le nombre d’éléments du tableau. On a la possibilité de déclarer un tableau sans préciser au départ son nombre d’éléments. On pourra fixer ce nombre dans un second temps via une instruction de redimensionnement : Redim. Ces tableaux s’appellent des tableaux dynamiques. Tant qu’on n’a pas précisé son nombre d’éléments, le tableau est inutilisable. Exemple :Pour le calcul d’une moyenne, si on ne connaît pas le nombre de notes à saisir, Tableau Note() en Numérique Variable nb en Numérique Début Ecrire ‘’Combien y a-t-il de notes à saisir ?’’ Lire nb Redim Note(nb-1) Isabelle ABOU

21 AFFECTATION Le programme attribue à la variable une valeur, ou une expression. Une expression est un ensemble de valeurs reliées par des opérateurs logiques et équivalente à une seule valeur. Instruction : Affecter (ou Donner) à A la valeur 3x+5, ou, A  3x+5 . Isabelle ABOU

22 ENTREES ET SORTIES ENTREES :
Instruction Lire ou Saisir : la machine lit ce qui est tapé à l’écran. SORTIES : Instruction Ecrire ou Afficher : la machine écrit le résultat à l’écran. Isabelle ABOU

23 TRAITEMENT 3 types de traitements pouvant être imbriqués les uns dans les autres: TRAITEMENT SEQUENTIEL TRAITEMENT CONDITIONNEL TRAITEMENT ITERATIF Isabelle ABOU

24 TRAITEMENT SEQUENTIEL
Les instructions y sont exécutées les unes après les autres par ordre d’apparition. Faire :         instruction 1;         instruction 2;          ... ;         instruction n. Isabelle ABOU

25 EXEMPLE: VALEUR D’UNE FONCTION DE 2 VARIABLES EN UN POINT
Déclaration Variable x, y, E, en Réel Entrée Ecrire    «Entrer la valeur de x » Lire x Ecrire    «Entrer la valeur de y » Lire y Traitement Affecter à E la valeur 3x+2y²-5 Sortie Ecrire « La valeur de f(x;y)=3x+2y²-5 est:», E Isabelle ABOU

26 TRAITEMENT CONDITIONNEL: LES TESTS
Pour représenter une alternative ou une instruction conditionnelle, on utilise un test. Forme classique: Forme simplifiée: SI condition ALORS SI condition ALORS Instructions Instructions SINON FINSI Instructions 2 FINSI Isabelle ABOU

27 CONDITIONS et TESTS Une condition est basée sur une comparaison.
Opérateurs: =, <>,<,>,<=,>=. Conditions composés: 5<x<8 correspond à 5<x ET x<8 Pour connaître la valeur de vérité d’une condition composée, on utilise les tables de vérité issues de la logique. Isabelle ABOU

28 THEOREME: TRANSFORMATION DE MORGAN
Toute condition composée faisant intervenir l’opérateur ET, peut être exprimée de manière équivalente avec un opérateur OU, et réciproquement: Si A ET B Alors Equivaut à Si NON A OU NON B Alors Instructions Instructions 2 Sinon Sinon Instructions Instructions 1 Finsi Finsi Isabelle ABOU

29 EXEMPLE DE TESTS IMBRIQUES: AFFICHAGE RESULTAT EXAMEN
Déclaration Variable Moy en Réel Entrée Ecrire ‘’Entrer la moyenne de l’élève ‘’ Lire Moy Traitement et Sortie Si Moy > 10 Alors Ecrire ‘’Admis’’ Sinon Si Moy < 9 Alors Ecrire ‘’Refusé’’ Ecrire ‘’Rattrapage’’ Finsi Isabelle ABOU

30 TRAITEMENT ITERATIF : LES BOUCLES
Il y en a de 2 types: ITERATIONS INCONDITIONNELLES ITERATIONS CONDITIONNELLES Isabelle ABOU

31 ITERATIONS INCONDITIONNELLES
Boucle « Pour…Suivant » : Série d’instructions exécutée en boucle d’une valeur initiale de la variable entière, appelée itérateur, à une valeur finale (incrémentation de 1 implicite). Pour Variable K de val initiale à val finale Instructions K Suivant Isabelle ABOU

32 EXEMPLE: SOMME DES CARRES DES n PREMIERS ENTIERS
Déclaration Variable n, S, i en Entier Entrée Ecrire « Entrer la valeur de n » Lire n Affecter à S la valeur 0 Traitement Pour i de 1 à n Affecter à S la valeur S + i² i Suivant Sortie Ecrire  « La somme des carrés de n premiers entiers est: », S Isabelle ABOU

33 ITERATIONS CONDITIONNELLES
Boucle « Tant que »: Série d’instructions exécutée en boucle tant qu'une condition donnée reste remplie. TantQue condition … Instructions FinTantQue Isabelle ABOU

34 EXEMPLE:CONTRÔLE DE SAISIE
Déclaration Variable Rep en Caractère Entrée Ecrire « Voulez-vous un café? » Lire Rep Traitement TantQue Rep <> « O » ET Rep <> « N » FinTantQue Sortie Ecrire « saisie acceptée » Isabelle ABOU

35 REMARQUE: « Pour…Suivant » cas particulier de « TantQue »
Quand le programmeur connaît le nombre d’itérations à l’avance, il utilise la boucle « Pour…Suivant » plutôt que la boucle « TantQue ». Pour Truc de 1 à 15 Instructions Truc Suivant Equivaut à Affecter à Truc la valeur 0 TantQue Truc <15 Affecter à Truc la valeur Truc+1 FintantQue Isabelle ABOU

36 FONCTIONS PREDEFINIES
Les fonctions numériques: Sinus, Cos,…, Ent: donne la partie entière d’un nombre, Mod ou Reste: donne le reste de la division euclidienne de 2 entiers, Alea: fournit un nombre aléatoire supérieur ou égal à 0 et strictement inférieur à 1. Isabelle ABOU

37 FONCTIONS PREDEFINIES (suite)
Les fonctions texte Len(chaîne): donne le nombre de caractères de la chaîne Et bien d’autres… Les fonctions de conversion entre chaînes de caractères et variables numériques, et inversement. Isabelle ABOU

38 POUR ALLER PLUS LOIN Isabelle ABOU

39 LES ALGORITHMES DE TRI De nombreuses méthodes existent pour trier les éléments d’une liste, par exemple pour les classer dans l’ordre croissant. Parmi les tris « élémentaires »: Le tri par sélection: Aller chercher le plus petit élément du vecteur (à n éléments) pour le mettre en premier, puis repartir du second élément, et aller chercher le plus petit élément du vecteur (à n-1 éléments) pour le mettre en second, et ainsi de suite. La complexité du tri par sélection est en O(n2) dans tous les cas, le nombre d'exécutions de la boucle interne étant n(n-1)/2. Isabelle ABOU

40 EXEMPLE: COMPARAISONS ET ECHANGES
Vecteur à trier 45 122 12 3 21 échange vecteur Aucun échange Vect trié Isabelle ABOU

41 LE TRI PAR SELECTION STRUCTURE DE L’ALGORITHME Boucle principale:
Prendre comme point de départ le 1ier élément, puis le 2ième, jusqu’à l’avant dernier. Boucle secondaire: A partir du point de départ mouvant, rechercher jusqu’à la fin du tableau quel est le plus petit élément. Une fois trouvé l’échanger avec le point de départ. Isabelle ABOU

42 ALGORITHME EXPLIQUE On considère un vect[0;N]
Boucle principale : le point de départ se décale à chaque tour. Pour i de 0 à N-1 On considère provisoirement que t(i) est le plus petit élément Affecter à Posmini la valeur i On examine tous les éléments suivants Pour j de i + 1 à N Si t(j) < t(Postmini) Alors Affecter à Posmini la valeur j Finsi j Suivant A cet endroit, on sait maintenant où est le plus petit élément, on fait la permutation. Affecter à Temp la valeur t(Posmini) Affecter à t(Posmini) la valeur t(i) Affecter à t(i) la valeur Temp On a placé correctement l’élément numéro i, on passe au suivant. i Suivant animation tri sélection Isabelle ABOU

43 D’AUTRES METHODES DE TRI
Le tri à bulles: Son principe consiste à comparer deux à deux les éléments ei et ei+1 d’un tableau et à effectuer une permutation si ei > ei+1. On continue à trier jusqu’à ce qu’il n’y ait plus de permutation. La complexité dans le pire des cas du tri bulle est en O(n2). Animation Le tri fusion (tri avancé) On divise en deux moitiés la liste à trier (en prenant par exemple un élément sur deux pour chacune des listes). On trie chacune d’entre elles On fusionne les deux moitiés obtenues pour reconstituer la liste triée. La complexité dans le pire des cas du tri fusion est en log2(n). Isabelle ABOU

44 EXEMPLE 1 liste à trier 16 13 5 12 19 2 2 listes (16 19) (13 2)
(5) (12) 6 listes (16) (19) (13) (2) 4 listes triées (2 13) 2 listes triées (5 1 liste triée Animation Isabelle ABOU

45 LES FICHIERS Ils servent à stocker des informations de manière permanente entre deux exécutions de programme. Les problèmes inhérents aux fichiers ne seront pas traités ici: Types de fichiers Types d’accès Organisation Isabelle ABOU

46 PROCEDURES ET FONCTIONS
L’analyse fonctionnelle consiste à découper un problème en sous problèmes plus simples. Les sous-procédures et les fonctions sont des sous-programmes indépendants qui permettent de résoudre une partie du problème, et qui sont intégrés au programme principal. Une fonction est une sous-procédure particulière qui renvoie une valeur en sortie. Isabelle ABOU

47 FONCTION L'entête d'une fonction spécifie son nom, le type de son résultat, et les paramètres (avec leurs types). Ces paramètres sont considérés comme les données transmises à la fonction, c'est à dire l'entrée de la fonction. Il peut arriver que la fonction modifie les paramètres lors de l'exécution de son algorithme. On parle alors de paramètre modifiable : il s'agit à la fois d'une entrée et d'une sortie de l'algorithme. La déclaration d'un tel paramètre dans la liste des paramètres se fait, en pseudo-code de la manière suivante : fonction nom(nom_param InOut type_param):type_résultat Isabelle ABOU

48 PROGRAMME FAISANT INTERVENIR UNE FONCTION
Décrire un algorithme qui calcule le maximum de 4 réels saisis au clavier. Le calcul du maximum de deux valeurs sera décrit par une fonction. fonction calculerMax2Réels(x : réel, y : réel):réel début si x > y alors res <- x sinon res <- y finsi retourne res fin Algorithme maximum <- lire() pour i de 2 à 4 faire nombre <- lire() maximum <- calculerMax2Réels(nombre, maximum) finpour écrire(maximum) Isabelle ABOU

49 LA PROGRAMMATION RECURSIVE
Elle consiste à créer des sous-programmes qui s’appellent eux-mêmes. Exemple: calcul de factorielle n: n! Fonction Fact ( n en Numérique) Si n=0 Alors Renvoyer 1 Sinon Renvoyer Fact(n-1) * n Finsi Fin Fonction Isabelle ABOU

50 THEOREME FONDAMENTAL Tout problème formulé en termes récursifs peut l’être en termes itératifs, et inversement. Avantage du récursif: très économique pour le programmeur. Inconvénient du récursif: utilise beaucoup de variables temporaires. Isabelle ABOU

51 RECHERCHES ACTUELLES EN ALGORITHMIQUE
De nombreuses recherches et problèmes mathématiques sont en inter-relation avec les recherches en algorithmique. Celles-ci concernent la complexité en moyenne et de nombreuses applications en ingénierie comme: la téléphonie mobile, le cryptage, la compression d’image et de son, les codes correcteurs, Internet, la recherche en bio-informatique sur l’identification et l’étude de codes dans les génomes et leur modélisation évolutive stochastique. De nombreux colloques concernent les recherches de pointe en algorithmique. Isabelle ABOU

52 RECHERCHES ET COLLOQUES
Août en Autriche: Colloque sur « Computational Topology in Image Context ». Invariants topologiques et leurs applications: calcul, groupes, optimisation d’algorithmes pour des application à l’image, utilisation d’information topologique dans les applications à l’image, topologie discrète et calculatoire. Septembre 2009 en Italie : Colloque de GAMES sur la conception et la vérification de programmes de jeu. GAMES est un réseau européen dont le but est la recherche et la formation sur la conception et la vérification des systèmes informatiques. Octobre 2009 à Fréjus : Les Journées "Codage et Cryptographie" L'objet de ces journées nationales est de réunir la communauté scientifique française s'impliquant dans le codage, la cryptographie, et plus généralement la théorie de l'information. Novembre Décembre 2009 au Maroc: La 5ième conférence internationale « Signal Image Technology & Internet Based Systems » concernant les technologies du signal et de l’image: analyse et traitement de l’image, authentification et codage des multimédia vidéo, traitement du signal, modélisation géométrique et reconstruction 3D. Isabelle ABOU

53 RECHERCHES ET COLLOQUES
Janvier Février 2010Journées Francophones des Langages Applicatifs organisées par l'INRIA, centrées sur l'approche fonctionnelle de la programmation, portent également sur les techniques et outils complémentaires qui élèvent le niveau de qualité des logiciels (systèmes d'aide à la preuve, réécriture, tests, démonstration automatique, vérification). Mars 2010 à Nancy: Le 27ième colloque international « Theoretical Aspects of Computer Science », et qui traite des aspects théoriques de la science informatique: algorithmes et structures de données, automates et langages formels, complexité, logique, et vérification. Mai 2010 au CIRM à Marseille : Les Journées Nationales de Calcul Formel, calcul formel entendu au sens large comme « algorithmiques à objets ou moyens mathématiques »: arithmétique exacte, arithmétique d'intervalles, théorie algorithmique des nombres, résolution des systèmes polynomiaux et applications, géométrie algébrique réelle, aspects formels en automatique, cryptologie et théorie des codes, aspects symboliques en géométrie algorithmique. Isabelle ABOU

54 RESSOURCES Actuellement, les principales ressources concernant la classe de seconde sont les documents officiels fournis par l’Inspection Générale: - Le nouveau programme de la classes de seconde - Les documents « Ressources pour la classe de seconde » sur : L’algorithmique; Les probabilités et statistiques; Les fonctions; Les notations et raisonnement mathématiques. Le site de mathématiques de l’académie de la Réunion « maths.ac- reunion.fr » contient actuellement peu de ressources concernant l’algorithmique, il fournit toutefois un lien avec l’ancien site de mathématiques de la Réunion « Icosaweb.ac-reunion.fr » qui n’est plus actualisé mais qui contient des ressources très intéressantes en algorithmique. Les sites des IREM, en particulier celui de la Réunion, contiennent également des documents et des tutoriels. Les fichiers Power Point de ce stage seront mis en ligne. Isabelle ABOU

55 BIBLIOGRAPHIE «Cours d’algorithmique et de programmation», Christophe Darmangeat, Université Paris 7. « Les bases de l’algorithmique : instructions et types élémentaires», Julp. «Initiation à l’algorithmique», Denis Lapoire. «Algorithme et Programmation», cours CNAM, Pascal Lowenerth. Cours d’algorithmique DEUG MIAS.Pierre Liardet. Site Internet: Isabelle ABOU


Télécharger ppt "ALGORITHMIQUE STAGE LA REUNION Isabelle ABOU."

Présentations similaires


Annonces Google