INTRODUCTION A L`ALGORITHMIQUE

publicité
INTRODUCTION A L’ALGORITHMIQUE
INTRODUCTION A
L’ALGORITHMIQUE
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
PLAN DE LA PRESENTATION
INTRODUCTION
Terminologie et Nécessité.
LES VARIABLES
Définition d’une variable, Portée d’une variable
Les types
LES INSTRUCTIONS
Lecture, écriture, assignation
Les opérateurs
Les structures
LES FONCTIONS ET PROCEDURES
Définitions et Exemples
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Et enfin un exemple : Afficher une pyramide paramétrable de chiffres
Annexe : Complexité d’un algorithme
INTRODUCTION A L’ALGORITHMIQUE
INTRODUCTION 1/4
A QUOI CA SERT L’ALGORITHMIQUE ???
Problème = Son énoncé est sans ambiguïté. Les limites sont bien
définies.
Ex : Déterminer UN élément de valeur minimum parmi un
ensemble d’ ENTIERS.
Programme caractérisé par :
 Un ensemble de données (instance) et un ensemble de résultats.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
 Une solution informatique : description d’un ensemble d’actions à
exécuter dans un ordre précis et dans un certain langage.
INTRODUCTION A L’ALGORITHMIQUE
INTRODUCTION 2/4
PRINCIPES METHODOLOGIQUES
 ABSTRAIRE
 Retarder le plus possible l’instant du codage;
A partir de la spécification du problème, décrire des actions à exécuter
dans un langage simple appelé pseudo-code.
 DECOMPOSER
 « Diviser chacune des difficultés que j’examinerais en autant de
parties qu’il se pourrait et qu’il serait requis pour les mieux résoudre »
 COMBINER
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
 Résoudre le problème global par combinaisons successives de
solutions de sous problèmes déjà résolus.
INTRODUCTION A L’ALGORITHMIQUE
INTRODUCTION 3/4
L’ ALGORITHME
 Description précise du processus de résolution d’un problème bien
spécifié.
 Lisible sans pour autant connaître la syntaxe du langage cible.
 Séquence ordonnée d’actions qui vont agir sur les données du
problème (instance) pour produire le résultat escompté.
 Quand on additionne 2 entiers, on déroule un algorithme.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
INTRODUCTION 4/4
Exemple d’algorithme : Saisir des entiers et afficher que les entiers pairs
ALGORITHME
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
PROGRAMME
INTRODUCTION A L’ALGORITHMIQUE
LES VARIABLES 1/3
DEFINITION D’UNE VARIABLE
Ce sont les objets manipulés et modifiables par l’algorithme.
VARIABLES GLOBALES OU LOCALES ?
 Variables Globales : Ce sont les variables d’entrées et ou de
sorties d’une fonction ou procédure. Ces variables ne doivent
être utilisées qu’une seule fois.
 Variables locales : Elles servent à l’intérieur d’une fonction
ou d’une procédure. Elles peuvent être réutilisées à volonté, et
changent de valeur à chaque utilisation.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES VARIABLES 2/3
Une variable possède nécessairement un nom et un type :
 Numérique :
Type Numérique
Plage
Codage
Byte (octet)
0 à 255
8 bits (octet)
Entier simple
-32 768 à 32 767
16 bits signé
Entier long
-2 147 483 648 à 2 147 483 647
32 bits signé
-3,40x1038 à -1,40x10-45 pour les valeurs négatives
1,40x10-45 à 3,40x1038 pour les valeurs positives
-1,79x10308 à -4,194x10-324 pour valeurs négatives
4,194x10-324 à 1,79x10308 pour les valeurs positives
Virgule flottante
Réel simple
Réel double
Virgule flottante
 Alphanumérique :
Egalement appelé caractère ou Chaîne de caractère.
En pseudo-code, une chaîne de caractères est toujours notée
entre guillemets. Ex : “toto“
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
 Booléen : VRAI / FAUX ou TRUE / FALSE ou 0 / 1
INTRODUCTION A L’ALGORITHMIQUE
LES VARIABLES 3/3
Le type d’une variable globale doit OBLIGATOIREMENT
être définie.
En général, avant toute instruction !!!!!
Ex : n : Entier
L’initialisation n’est pas obligatoire.
Ex : x, y = 3 : Réel
Il existe beaucoup d’autres types de variables tels que les
tableaux, …
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Une variable est un contenant dont le contenu
(valeur) va changer au cours de l’algorithme.
INTRODUCTION A L’ALGORITHMIQUE
LES INSTRUCTIONS 1/2
AFFICHAGE, SAISIE ET ASSIGNATION
 Affichage : afficher(x+1)
 Saisie : saisir(n)
 Assignation :
 n ← 1 // n prend la valeur 1
 i ← i+1 // i prend le valeur précédente incrémenté de 1
 y ← x // y prend la valeur de la variable x
Remarque : Il va de soi que l’ordre dans lequel les instructions sont écrites va
jouer un rôle essentiel dans le résultat final. Considérons les deux algorithmes
suivants :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Variable A en Numérique
Début
A ← 34
A ← 12
Fin
Variable A en Numérique
Début
A ← 12
A ← 34
Fin
INTRODUCTION A L’ALGORITHMIQUE
LES INSTRUCTIONS 2/2
LES OPERATEURS :
 sur des variables numériques :
+ : addition
- : soustraction
* : multiplication
/ : division (ATTENTION !!!!!!!)
 sur des variables alphanumériques :
& : permet de concaténer 2 chaînes de caractères
Ex :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Variables A, B, C en Caractère
Début
A ← "Mr"
C prend la « valeur »
B ← "CID"
"MrCID"
C←A& B
Fin
 sur des variables booléennes :
ET , OU, NON, OU EXCUSIF, …
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE SEQUENTIELLE
Il existe 3 structures de base :
 Séquentielle;
 Alternative;
 Itérative.
Remarque : Pour résoudre un « problème complexe », les différentes structures
peuvent coexister.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE SEQUENTIELLE
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
TRES SIMPLE ET PAS BEAUCOUP D’ INTERÊT SEULE
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ALTERNATIVE
PERMET D’ EXPRIMER DES DECISIONS
ACTION(S) CONDITIONNEE(S) PAR LE TEST D’UNE
EXPRESSION BOOLEENNE APPELEE CONDITION
CONDITION = COMPARAISON (composée de 3 éléments)
- une variable
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
- un opérateur de comparaison (=, <>, <, >, =<,=>, …)
- une autre variable
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ALTERNATIVE
STRUCTURE ALTERNATIVE IMBRIQUEE
Variable Temp : Entier
Début
Ecrire "Entrez la température de l’eau :"
Lire Temp
Si Temp =< 0 Alors
Ecrire "C’est de la glace"
Sinon
Si Temp < 100 Alors
Ecrire "C’est du liquide"
Sinon
Ecrire "C’est de la vapeur"
Finsi
Finsi
Fin
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ALTERNATIVE
STRUCTURE ALTERNATIVE GENERALISEE
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ITERATIVE 1/3
PERMET DE REPETER UNE ACTION UN
CERTAINS NOMBRE DE FOIS
Remarque : L’action peut ne
jamais être réalisée.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ITERATIVE 2/3
Remarque : L’action est
réalisée au moins une fois.
Le nombre d’itération n’est
pas forcément spécifié à
l’avance.
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
STRUCTURE ITERATIVE 3/3
LE SCHEMA ITERATIF « POUR »
Exemples 1 : SOMME DES ENTIERS COMPRIS ENTRE 1 ET n
Exemples 2 : SOMME DES ENTIERS PAIRS COMPRIS ENTRE 2 ET n
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES PROCEDURES ET FONCTIONS
DECOMPOSER POUR MIEUX RESOUDRE
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES PROCEDURES 1/2
UNE PROCEDURE EST UNE ACTION
PARAMETRABLE
COMPOSITION :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES PROCEDURES 2/2
Exemple :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES FONCTIONS 1/2
UNE FONCTION EST UNE ACTION
PARAMETRABLE QUI PRODUIT UNE VALEUR
UNIQUE
COMPOSITION :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
LES FONCTIONS 2/2
Exemple :
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
EXEMPLE 1/4
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
EXEMPLE 2/4
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
EXEMPLE 3/4
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
EXEMPLE 4/4
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
ANNEXE 1/5
COMPLEXITE D’UN ALGORITHME
Machine = Microprocesseur
Langage Machine = suite ou série de 0 et de 1
Remarque : On parle souvent du langage assembleur comme langage machine.
Ceci est une erreur !!!!! L’assembleur est déjà un langage évolué.
Certes moins évolué, que le C, C++, Pascal, TurboPascal, …
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
ANNEXE 2/5
CARACTERISTIQUES D’UN
MICROPROCESSEUR
Son architecture : RISC ou CISC ?
RISC (Reduced Instruction Set
Computer)
CISC (Complex
Instruction Set Computer)
Jeu d'instructions
Jeu d’instructions réduit
Typiquement moins de 100
instructions
Typiquement plus de 200
instructions
Implémentation
des instructions
Seules les instructions simples
sont gravées sur le silicium.
La plupart des instructions
sont gravées sur le silicium.
Architecture
Typiquement une instruction par
Vitesse d'exécution
cycle d'horloge
Typiquement une
instruction pour 3 à 10
cycles d'horloge
Le nombre d’instructions réalisée par seconde : exprimée en
MIPS (Million Instruction Per Second) ou GIPS
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Remarque : Le nombre de MIPS est TRES souvent
différent de la fréquence de l’horloge ( environ 2GHz)
INTRODUCTION A L’ALGORITHMIQUE
ANNEXE 3/5
On définit 3 évaluations de la complexité d’un algorithme :
 Evaluation au pire : C’est une garantie de performance.
Elle est notée O(T(n));
 Evaluation en moyenne : RAS, c’est assez clair ! Elle est
notée θ(T(n));
 Evaluation au mieux : Meilleur algorithme connu ou
encore inconnu. Elle est notée (T(n)).
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
ANNEXE 4/5
EXEMPLE DE TEMPS D’ EXECUTION
 1GIPS
 n = nombre de données à traiter
 T(n) = complexité de l‘algorithme
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
INTRODUCTION A L’ALGORITHMIQUE
ANNEXE 5/5
EXEMPLE D’ ALGORITHME DE BASE
Sébastien
GERGADIER
Math Sup TSI
L. Richelieu
Téléchargement