Title: ALGORITHMIQUE
1ALGORITHMIQUE
2INTRODUCTION
- 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.
3POURQUOI 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.
4INTENTIONS
- 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.
5DE 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
6PLAN DE LEXPOSE
- I. LALGORITHMIQUE
- II. LALGORITHMIQUE AU LYCEE
- III. LE LOGICIEL ALGOBOX
- IV. ACTIVITES ALGORITHMIQUES
7PARTIE 1 LALGORITHMIQUE
8GENERALITES SUR LALGORITHMIQUE
9QUEST-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.
10PHILOSOPHIE 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.
11PROPRIETES ESSENTIELLES DUN BON ALGORITHME
- Lisibilité respecter lindentation
- Correction ou justesse
- Faible complexité, en temps et/ou en espace.
12COMPLEXITE 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.
13PROBLEME 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
-
14CONTENU DUN ALGORITHME
15ECRITURE
- 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.
16STRUCTURE 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.
17INSTRUCTIONS
- Ce sont les 4 catégories dordres utilisées en
programmation - AFFECTATION de variables
- ENTREE / SORTIE ou Lecture / Ecriture
- TESTS
- BOUCLES
18LES 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
193 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.
20TABLEAU 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)
21AFFECTATION
- 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 .
22ENTREES 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.
23TRAITEMENT
- 3 types de traitements pouvant être imbriqués les
uns dans les autres - TRAITEMENT SEQUENTIEL
- TRAITEMENT CONDITIONNEL
- TRAITEMENT ITERATIF
24TRAITEMENT 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.
25EXEMPLE 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
26TRAITEMENT 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
27CONDITIONS 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.
28THEOREME 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 -
29EXEMPLE 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
-
30TRAITEMENT ITERATIF LES BOUCLES
- Il y en a de 2 types
- ITERATIONS INCONDITIONNELLES
- ITERATIONS CONDITIONNELLES
31ITERATIONS 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
32EXEMPLE 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
33ITERATIONS CONDITIONNELLES
- Boucle Tant que
- Série dinstructions exécutée en boucle tant
qu'une condition donnée reste remplie. - TantQue condition
- Instructions
- FinTantQue
34EXEMPLECONTRÔ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
35REMARQUE 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
36FONCTIONS 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.
37FONCTIONS 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.
38POUR ALLER PLUS LOIN
39LES 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.
40EXEMPLECOMPARAISONS 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
41LE 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.
42ALGORITHME 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
43DAUTRES 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).
44EXEMPLE
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
45LES 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
46PROCEDURES 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.
47FONCTION
- 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
48PROGRAMME 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)
49LA 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
50THEOREME 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.
51RECHERCHES 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.
52RECHERCHES 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.
53RECHERCHES 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.
54RESSOURCES
- 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.
55BIBLIOGRAPHIE
- 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/