Formation

publicité
Algorithmique
Introduction
1.
Qu’est-ce que l’algorithme ?
2.
Définissons l’algorithmique
3.
Faut-il être matheux pour être bon en algorithmique ?
4.
Où se situe l ’algorithmique ?
5.
Les Shadoks et les ordinateurs
6.
Algorithme et langage
7.
Java
8.
Notion d'objet
1
http://www.doc.cs.univ-paris8.fr/programmation/algo-programmation/
Algorithme : méthode de résolution d'un problème suivant un
enchaînement déterminé de règles opératoires.
Le mot "algorithme" est dérivé du nom du mathématicien persan :
al Khuwarizmi (825) à qui l'on doit un traité d'algèbre.
1. Qu’est-ce que l’algorithme ?
Avez-vous déjà ouvert un livre de recettes de cuisine ?
Avez-vous déjà indiqué un chemin à un touriste égaré ?
Avez vous fait chercher un objet à quelqu’un par téléphone ?
Si oui, vous avez déjà réalisé et fait exécuter des algorithmes. Comme
quoi, l’algorithmique n’est pas un savoir ésotérique réservé à quelques
rares initiés, mais une aptitude partagée par la totalité de l’humanité.
2
2. Définissons l’algorithmique
Dans le domaine des mathématiques, les algorithmes furent utilisés dès
l'Antiquité pour traiter des problèmes d'arithmétique ou de géométrie.
Le calcul du plus grand commun diviseur de deux nombres par la
méthode d'Euclide (300 av. J.-C.) en constitue un exemple célèbre.
En informatique, un algorithme désigne un procédé de calcul que l'on
peut confier à un ordinateur, et qui est répété autant de fois qu'il est
nécessaire pour parvenir au résultat.
Il se présente alors comme une liste d'instructions de nature
mathématique ou logique pouvant être programmées.
Pour fonctionner, un algorithme doit donc contenir uniquement des
instructions compréhensibles par celui qui devra l’exécuter.
3
3. Faut-il être matheux pour être bon en algorithmique ?
Cette opinion aussi fortement affirmée que faiblement fondée sert
régulièrement d’excuse : " moi, de toute façon, je suis mauvais(e) en
algo, j’ai jamais rien pigé aux maths ". Faut-il être " bon en maths " pour
expliquer correctement son chemin à quelqu’un ? Je vous laisse juge.
La maîtrise de l’algorithmique requiert deux qualités :
Il faut être rigoureux. Car chaque fois qu’on écrit une série
d’instructions qu’on croit justes, il faut se mettre à la place de la
machine qui va les exécuter, pour vérifier si le résultat obtenu est bien
celui que l’on voulait. Cette opération ne requiert pas de l’intelligence,
uniquement de la méthode.
Il faut avoir une certaine intuition, car aucune recette ne permet de
savoir a priori quelles instructions permettront d’obtenir le résultat
voulu. C’est là qu’intervient la forme " d’intelligence " requise pour
l’algorithmique.
4
4. Où se situe l ’algorithmique
ANALYSE
Définir précisément le problème à
résoudre.
ALGORITHME
Définir
clairement
la
méthode
amenant à la solution du problème.
PROGRAMME
Transcrire la méthode dans le langage
de programmation.
55
5. Les Shadoks et les ordinateurs
Quel rapport me direz-vous ? Eh bien le point commun est : quatre mots de
vocabulaire. L’univers lexical Shadok, c’est bien connu, se limite aux termes
" Ga ", " Bu ", " Zo ", et " Meu ". Ce qui leur a tout de même permis de
formuler quelques fortes maximes, telles que :
"Mieux vaut pomper et qu’il ne se passe rien, plutôt qu’arrêter de pomper
et risquer qu’il se passe quelque chose de pire " .
L’algorithme à la base de la construction de tous programmes, est une chaîne
construite à partir de cinq éléments invariables. Ce n’est que le nombre de ces
éléments, et l’ordre dans lequel ils sont arrangés, qui va déterminer ce que
l'on va obtenir.
Les ordinateurs, quels qu’ils soient, ne sont fondamentalement capables
d’exécuter que cinq opérations :
•
•
•
•
•
l’affectation de variables
les calculs (arithmétiques et logiques)
la lecture / écriture
les tests
les itérations
6
6. Algorithme et langage
Historiquement, plusieurs types de notations ont représenté des algorithmes.
Il y a eu notamment une représentation graphique, avec des carrés, des
losanges, etc. qu’on appelait des organigrammes.
Aujourd’hui, cette représentation est quasiment abandonnée, pour deux
raisons. D’abord, parce que dès que l’algorithme commence à grossir un peu, ce
n’est plus pratique du tout du tout. Ensuite parce que cette représentation
favorise le glissement vers un certain type de programmation, dite non
structurée, que l’on tente en général d’éviter.
Nous passerons tout de suite à un langage que nous utiliserons au cours de ces
deux années :
Le java
7
7. Java
Java est un langage objet ressemblant au langage C++. Il a été mis au point en
1991 par la firme Sun Microsystems.
Le but de Java à l'époque était de constituer un langage de programmation
pouvant être intégré dans les appareils électroménagers, afin de pouvoir les
contrôler, de les rendre interactifs, et surtout de permettre une
communication entre les appareils.
Etant donné que le langage C++ comportait trop de difficultés, James Gosling,
considéré comme le père de Java, décida de créer un langage orienté objet
reprenant les caractéristiques principales du C++, en éliminant ses points
difficiles, et en le rendant moins encombrant et plus portable.
8
7. Notion d'objet
La programmation orientée objet consiste à modéliser informatiquement un
ensemble d'éléments d'une partie du monde réel en un ensemble d'entités
informatiques.
Ces entités informatiques sont appelées objet.
La difficulté de cette modélisation consiste à créer une représentation
abstraite, sous forme d'objets, d'entités ayant une existence matérielle
(chien, voiture, ampoule, ...) ou bien virtuelle (sécurité sociale, temps, ...).
Un objet est caractérisé par plusieurs notions:
•
les attributs : Il s'agit des données caractérisant l'objet.
•
Les méthodes : Elles caractérisent son comportement, c'est-à-dire
l'ensemble des actions que l'objet est à même de réaliser.
9
On appelle classe la structure d'un objet, c'est-à-dire la déclaration de
l'ensemble des entités qui composeront un objet.
Un objet est donc "issu" d'une classe. On dit qu'un objet est une instanciation
d'une classe, c'est la raison pour laquelle on pourra parler indifféremment
d'objet ou d'instance.
Une classe est composée de deux parties:
•
Les attributs (parfois appelés données membres): il s'agit des
données représentant l'état de l'objet
•
Les méthodes (parfois appelées fonctions membres): il s'agit des
opérations applicables aux objets
Si on définit la classe animaux, les objets chien et chat seront des
instanciations de cette classe. Il pourra éventuellement exister plusieurs
objets chien, différenciés par leur race.
10
Téléchargement