ALGORITHMIQUE - PowerPoint PPT Presentation

About This Presentation
Title:

ALGORITHMIQUE

Description:

ALGORITHMIQUE STAGE LA REUNION INTRODUCTION CONTENU DU STAGE: Apporter aux enseignants un premier clairage sur la notion d algorithme. OBJECTIFS PEDAGOGIQUES ... – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 56
Provided by: Abou78
Category:

less

Transcript and Presenter's Notes

Title: ALGORITHMIQUE


1
ALGORITHMIQUE
  • STAGE
  • LA REUNION

2
INTRODUCTION
  • CONTENU DU STAGE
  • Apporter aux enseignants un premier éclairage sur
    la notion dalgorithme.
  • OBJECTIFS PEDAGOGIQUES
  • Rendre les enseignants à même dintégrer
    lalgorithmique dans la gestion du nouveau
    programme de Seconde.

3
POURQUOI LALGORITHMIQUE?
  • Une réflexion a été menée sur lenseignement des
    mathématiques aujourdhui, qui a notamment abouti
    à lintroduction de lalgorithmique en Seconde.
  • - Tout dabord, 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
    dalgorithmes.
  • - Enfin, au niveau purement pédagogique,
    lalgorithmique 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.

4
INTENTIONS
  • Il nest 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 dalgorithmes est supposée être
    une des diverses activités mathématiques de
    lélève.
  • Lenjeu 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 dalgorithmique pour lintégrer à la
    gestion du nouveau programme de Seconde.

5
DE LALGORITHME AU PROGRAMME
  • Le fait que lon passe de lécriture de
    lalgorithme à lécriture du programme permet de
    vérifier concrètement que lalgorithme
    fonctionne, et surtout de lutiliser pour
    résoudre le problème posé.
  • En effet, lintroduction de lalgorithmique
    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 dune tâche, ou dans le
    cas dun 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
    dun grand nombre de valeurs numériques, les
    simulations sur des échantillons de grandes
    tailles

6
PLAN DE LEXPOSE
  • I. LALGORITHMIQUE
  • II. LALGORITHMIQUE AU LYCEE
  • III. LE LOGICIEL ALGOBOX
  • IV. ACTIVITES ALGORITHMIQUES

7
PARTIE 1 LALGORITHMIQUE
8
GENERALITES SUR LALGORITHMIQUE
9
QUEST-CE QUUN ALGORITHME?
  • Le mot algorithme vient du nom de lauteur
    persan
  • Al-Khuwarizmi (né vers 780 - mort vers 850)
    qui a écrit en langue arabe le plus ancien traité
    dalgè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 dun algorithme
  • résolution dun problème algébrique, numérique ou
    décisionnel.
  • Algorithme
  • suite dinstructions 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.

10
PHILOSOPHIE GENERALE
  • Suivre le paradigme du  diviser pour régner .
  • Être méthodique et rigoureux dans lanalyse 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.

11
PROPRIETES ESSENTIELLES DUN BON ALGORITHME
  • Lisibilité respecter lindentation
  • Correction ou justesse
  • Faible complexité, en temps et/ou en espace.

12
COMPLEXITE DUN ALGORITHME
  • En temps nombre dinstructions élémentaires,
    nécessaires à sa réalisation
  • En espace nombre doctets 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é dun algorithme ne
    sera pas abordé ici.

13
PROBLEME FONDAMENTALTERMINAISON DUN ALGORITHME
  • Théorème
  • Il nexiste pas de méthode universelle pour
    décider si un algorithme termine.
  • Autrement dit
  • Il ny aucun algorithme résolvant le problème
  • Entrée Un algorithme A
  • Sortie Le booléen indiquant si A termine ou non

14
CONTENU DUN ALGORITHME
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 dautres langages.

16
STRUCTURE DUN ALGORITHME
  • DECLARATION des variables
  • ENTREE, avec éventuellement initialisation des
    variables 
  • TRAITEMENT, dont on décrit la procédure, c'est le
    corps de lalgorithme 
  • SORTIE, avec un affichage de ce que lon souhaite.

17
INSTRUCTIONS
  • Ce sont les 4 catégories dordres utilisées en
    programmation
  • AFFECTATION de variables
  • ENTREE / SORTIE ou Lecture / Ecriture
  • TESTS
  • BOUCLES

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

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

20
TABLEAU ou VARIABLE INDICEE
  • Tableau
  • Désigne une suite finie déléments de même type
    au moyen dune unique variable.
  • En dimension 1, on peut lappeler liste.
  • En général, on commence lindexation à 0.
  • Déclaration Tableau Cases(7, 7) en Numérique.
  • Tableaux dynamiques
  • Il arrive que lon ne connaisse pas à lavance 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 sappellent des tableaux dynamiques.
  • Tant quon na pas précisé son nombre déléments,
    le tableau est inutilisable.
  • Exemple Pour le calcul dune 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)

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 3x5,
  • ou, A ? 3x5 .

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.

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

24
TRAITEMENT SEQUENTIEL
  • Les instructions y sont exécutées les unes après
    les autres par ordre dapparition.
  • Faire         instruction 1        instructio
    n 2         ...         instruction n.

25
EXEMPLE VALEUR DUNE 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 3x2y²-5
  • Sortie
  • Ecrire  La valeur de f(xy)3x2y²-5 est, E

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 1
    Instructions
  • SINON FINSI
  • Instructions 2
  • FINSI

27
CONDITIONS et TESTS
  • Une condition est basée sur une comparaison.
  • Opérateurs , ltgt,lt,gt,lt,gt.
  • Conditions composés
  • 5ltxlt8 correspond à 5ltx ET xlt8
  • Pour connaître la valeur de vérité dune
    condition composée, on utilise les tables de
    vérité issues de la logique.

28
THEOREME TRANSFORMATION DE MORGAN
  • Toute condition composée faisant intervenir
    lopé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 1
    Instructions 2
  • Sinon
    Sinon
  • Instructions 2
    Instructions 1
  • Finsi
    Finsi

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 gt 10 Alors
  • Ecrire Admis
  • Sinon
  • Si Moy lt 9 Alors
  • Ecrire Refusé
  • Sinon
  • Ecrire Rattrapage
  • Finsi
  • Finsi

30
TRAITEMENT ITERATIF LES BOUCLES
  • Il y en a de 2 types
  • ITERATIONS INCONDITIONNELLES
  • ITERATIONS CONDITIONNELLES

31
ITERATIONS INCONDITIONNELLES
  • Boucle  PourSuivant 
  • Série dinstructions exécutée en boucle dune
    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

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

33
ITERATIONS CONDITIONNELLES
  • Boucle  Tant que 
  • Série dinstructions exécutée en boucle tant
    qu'une condition donnée reste remplie.
  • TantQue condition
  • Instructions
  • FinTantQue

34
EXEMPLECONTRÔLE DE SAISIE
  • Déclaration
  • Variable Rep en Caractère
  • Entrée
  • Ecrire  Voulez-vous un café? 
  • Lire Rep
  • Traitement
  • TantQue Rep ltgt  O  ET Rep ltgt  N 
  • Lire Rep
  • FinTantQue
  • Sortie
  • Ecrire  saisie acceptée 

35
REMARQUE  PourSuivant  cas particulier de
 TantQue 
  • Quand le programmeur connaît le nombre
    ditérations à lavance, il utilise la boucle
     PourSuivant  plutôt que la boucle
     TantQue .
  • Pour Truc de 1 à 15
  • Instructions
  • Truc Suivant
  • Equivaut à
  • Affecter à Truc la valeur 0
  • TantQue Truc lt15
  • Affecter à Truc la valeur Truc1
  • Instructions
  • FintantQue

36
FONCTIONS PREDEFINIES
  • Les fonctions numériques
  • Sinus, Cos,,
  • Ent donne la partie entière dun 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.

37
FONCTIONS PREDEFINIES(suite)
  • Les fonctions texte
  • Len(chaîne) donne le nombre de caractères de la
    chaîne
  • Et bien dautres
  • Les fonctions de conversion entre chaînes de
    caractères et variables numériques, et
    inversement.

38
POUR ALLER PLUS LOIN
39
LES ALGORITHMES DE TRI
  • De nombreuses méthodes existent pour trier les
    éléments dune liste, par exemple pour les
    classer dans lordre 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.

40
EXEMPLECOMPARAISONS ET ECHANGES
Vecteur à trier 45 122 12 3 21
échange 45 3
vecteur 3 122 12 45 21
échange 122 12
vecteur 3 12 122 45 21
échange 122 21
vecteur 3 12 21 45 122
Aucun échange Vect trié 3 12 21 45 122
41
LE TRI PAR SELECTION
  • STRUCTURE DE LALGORITHME
  • Boucle principale
  • Prendre comme point de départ le 1ier élément,
    puis le 2ième, jusquà lavant 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.

42
ALGORITHME EXPLIQUE
  • On considère un vect0N
  • 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) lt 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

43
DAUTRES METHODES DE TRI
  • Le tri à bulles
  • Son principe consiste à comparer deux à deux les
    éléments ei et ei1 dun tableau et à effectuer
    une permutation si ei gt ei1.
  • On continue à trier jusquà ce quil ny 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 dentre 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).

44
EXEMPLE
1 liste à trier 16 13 5 12 19 2
2 listes (16 5 19) (13 12 2)
4 listes (16 19) (5) (13 2) (12)
6 listes (16) (19) (5) (13) (2) (12)
4 listes triées (16 19) (5) (2 13) (12)
2 listes triées (5 16 19) (2 12 13)
1 liste triée 2 5 12 13 16 19
Animation
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 daccès
  • Organisation

46
PROCEDURES ET FONCTIONS
  • Lanalyse 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.

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ésu
    ltat

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 gt y
  • alors res lt- x
  • sinon res lt- y
  • finsi
  • retourne res
  • fin
  • Algorithme
  • début
  • maximum lt- lire()
  • pour i de 2 à 4 faire
  • nombre lt- lire()
  • maximum lt- calculerMax2Réels(nombre, maximum)
  • finpour
  • écrire(maximum)

49
LA PROGRAMMATION RECURSIVE
  • Elle consiste à créer des sous-programmes qui
    sappellent eux-mêmes.
  • Exemple calcul de factorielle n n!
  • Fonction Fact ( n en Numérique)
  • Si n0 Alors
  • Renvoyer 1
  • Sinon
  • Renvoyer Fact(n-1) n
  • Finsi
  • Fin Fonction

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.

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 dimage et de son,
  • les codes correcteurs,
  • Internet,
  • la recherche en bio-informatique sur
    lidentification 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.

52
RECHERCHES ET COLLOQUES
  • Août 2009 en Autriche Colloque sur
     Computational Topology in Image
    Context .Invariants topologiques et leurs
    applications calcul, groupes, optimisation
    dalgorithmes pour des application à limage,
    utilisation dinformation topologique dans les
    applications à limage, 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 limage analyse
    et traitement de limage, authentification et
    codage des multimédia vidéo, traitement du
    signal, modélisation géométrique et
    reconstruction 3D.

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.

54
RESSOURCES
  • Actuellement, les principales ressources
    concernant la classe de seconde sont les
    documents officiels fournis par lInspection
    Générale
  • - Le nouveau programme de la classes de seconde
  • - Les documents  Ressources pour la classe de
    seconde  sur
  • Lalgorithmique Les probabilités et
    statistiques Les fonctions Les notations et
    raisonnement mathématiques.
  • Le site de mathématiques de lacadémie de la
    Réunion  maths.ac-reunion.fr  contient
    actuellement peu de ressources concernant
    lalgorithmique, il fournit toutefois un lien
    avec lancien site de mathématiques de la Réunion
     Icosaweb.ac-reunion.fr  qui nest 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.

55
BIBLIOGRAPHIE
  • Cours dalgorithmique et de programmation,
    Christophe Darmangeat, Université Paris 7.
  •  Les bases de lalgorithmique  instructions et
    types élémentaires, Julp.
  • Initiation à lalgorithmique, Denis Lapoire.
  • Algorithme et Programmation, cours CNAM, Pascal
    Lowenerth.
  • Cours dalgorithmique DEUG MIAS.Pierre Liardet.
  • Site Internet http//lwh.free.fr/
Write a Comment
User Comments (0)
About PowerShow.com