Post on 11-Jan-2016
description
Par: Melle Najlae KORIKACHE
Algorithmique et structure de données
Syllabus du cours ...Objectif : se familiariser avec les méthodes de résolution de
problèmes avec l'outil informatique ; apprendre les principes de l'algorithmique ; acquérir un début de maîtrise des techniques et langages
de programmation.
Bibliographie : Introduction a l'algorithmique, Thomas H. Cormen, Charles
E. Leiserson, Ronald L. Rivest et Cliord Stein, Dunod, Paris, 2004.
Algorithmique Application en C, Jean-Michel Lery, Pearson Education, 2005.
Algorithmique et programmation en Java, Vincent Granet, Dunod, Paris, 2000.
Débuter en programmation, Greg Perry, CampusPress, 2003.
Plan du cours1. Introduction à l'algorithmique2. Environnement algorithmique3. Structure de données4. Structures de contrôle5. Structures itératives6. Sous-programmes7. Mode de passage de paramètres8. Tableaux
Structure de donnéesA quoi servent les variables ?
Dans un programme informatique, on a, en permanence, besoin de stocker provisoirement des valeurs :
données issues du disque dur ;données fournies par l’utilisateur (frappées au
clavier) ;résultats (intermédiaires ou définitifs) obtenus
par le programme.Pour stocker une valeur au cours d’un
programme, on utilise une variable.
Signification physique d’une variableDans la mémoire vive de l’ordinateur,
physiquement, une variable correspond à un emplacement de mémoire, repéré par une adresse binaire.
Structure de donnéesLes types de variables
En employant une imageUne variable est un récipient, que l’ordinateur
va repérer par une étiquette (un nom). Pour avoir accès au contenu du récipient, il suffit de le désigner par son étiquette.
Il existe plusieurs types de récipients !De la même manière, il existe plusieurs
types de variables ...
Structure de donnéesLes types de variables
ImportantLorsqu’on déclare une variable, il ne suffit pas
de créer un récipient (réserver un emplacement mémoire). Il faut encore préciser ce que l’on voudra mettre dedans, car de cela dépendent la taille et la nature du récipient.
Structure de donnéesLes types de variables
Les types de variables les plus courants en algorithmique:Type numérique
Entier
RéelType alphanumérique
Chaine de caractères
Type booléenBooléen
Structure de donnéesLes types de variables
Type numérique :Entier :
ensemble des entiers relatifs Z; valeurs non décimales.
Réel : ensemble des nombres réels IR; valeurs décimales.
Structure de donnéesLes types de variables
Exemple :Algorithme Algo Exemple
Var : Prix HT : réel ; Nombre Mois : entier ;Début...Prix HT := 245,550 ‘Affectation d’une valeur réelleNombre Mois := 12 ‘Affectation d’une valeur entière
...Fin
Structure de donnéesLes types de variables
Type alphanumérique : Chaîne de caractères :
stocke des caractères : des lettres, des signes de ponctuation, des espaces, ou même des chiffres ;
le nombre maximal de caractères pouvant être stockés dans une seule variable chaîne de caractères dépend du langage utilisé ;
en pseudo-code (en algorithmique), une chaîne de caractères est toujours notée entre guillemets.
Structure de donnéesLes types de variables
Exemple :Algorithme Algo_Exemple
Var : Prix HT : réel ; Nombre Mois : entier ;
Fournisseur : chaîne ;
Début...
Prix HT := 245,550 ‘Affectation d’une valeur réelle
Nombre Mois := 12 ‘Affectation d’une valeur entière
Fournisseur := “Smith & Co” ‘Affectation d’une chaîne de caractère
...
Fin
Structure de donnéesLes types de variables
Type booléen :Booléen :
stocke uniquement les valeurs logiques VRAI et FAUX;
le type booléen la présence ou l’absence d’un caractère.
Structure de donnéesLes types de variables
Exemple :Algorithme Algo_Exemple
Var : Fournisseur : chaîne ; Etranger : booléen ;
Début...
Fournisseur := “Smith & Co” ‘Affectation d’une chaîne de caractères
Etranger := VRAI ‘Affectation d’une valeur booléenne
...
Fin
Structure de donnéesL’instruction d’affectation
Qu’est ce qu’on peut faire avec une variable ?
RéponseLa seule chose qu’on peut faire avec une
variable, c’est l’affecter, c’est-à-dire lui attribuer une valeur.
En reprenant l’image des récipients :La variable = Le récipient (Thermos du café)
Structure de donnéesL’instruction d’affectation
Qu’est ce qu’on peut faire avec une variable ?RéponseLa seule chose qu’on peut faire avec une variable,
c’est l’affecter, c’est-à-dire lui attribuer une valeur.En reprenant l’image des récipients :
ConventionEn pseudo-code, l’instruction d’affectation se
note avec le signe :=
La valeur de la variable = Le contenu du récipient (le café)
La variable = Le récipient (Thermos du café)
Structure de donnéesL’instruction d’affectation
Exemple :Toto := 24,5 On attribue la valeur 24,5 à la variable Toto.Cette affectation sous-entend que Toto est
une variable de type réel ... On ne peut pas affecter à Toto une
variable de type alphanumérique ou booléen.
Structure de donnéesL’instruction d’affectation
Exemple :Toto := 24,5 On attribue la valeur 24,5 à la variable Toto.Cette affectation sous-entend que Toto est
une variable de type réel ... On ne peut pas affecter à Toto une
variable de type alphanumérique ou booléen.
Structure de donnéesL’instruction d’affectation
Exemple :Toto := 24,5 On attribue la valeur 24,5 à la variable Toto.Cette affectation sous-entend que Toto est
une variable de type réel ... On ne peut pas affecter à Toto une
variable de type alphanumérique ou booléen.
Structure de donnéesL’instruction d’affectation
Exemple :Toto := 24,5 On attribue la valeur 24,5 à la variable Toto.Cette affectation sous-entend que Toto est
une variable de type réel ... On ne peut pas affecter à Toto une
variable de type alphanumérique ou booléen.
On peut toujours verser dans une coupe du sirop, sauf que ce n’est pas logique !
Structure de donnéesL’instruction d’affectationOn peut affecter à une variable la valeur
d’une autre variable.Exemple :
Toto := 24,5Tutu := Toto
La valeur de Tutu est maintenant celle de Toto. Tutu contient donc la valeur 24,5.
La valeur de Toto n’est pas modifiée.ImportantUne instruction d’affectation ne modifie que ce
qui est situé à gauche de l’affectation :=
Structure de donnéesL’instruction d’affectationOn peut affecter à une variable le résultat d’une
opération en fonction d’autres variables.Exemple 1 :
Toto := 24,5Tutu := Toto + 5,5
La valeur de Tutu est maintenant égale à celle de Toto + 5,5. Tutu contient donc la valeur 30.
La valeur de Toto n’est pas modifiée. Elle vaut toujours 24,5.
Exemple 2 :Tutu := Tutu + 3
Si Tutu valait 30, il vaut maintenant 33.La valeur de Tutu est modifiée, puisque Tutu est
la variable située à gauche de l’affectation.
Structure de donnéesL’instruction d’affectationConfusion possible entre le nom d’une variable et la
valeur d’une variable!
Début
Riri := “Loulou”
Fifi := “Riri”
Fin Fifi contient la suite de caractères R - i - r - i. A la fin de l’algorithme, la variable Fifi est donc égale à “Riri”.
Début
Riri := “Loulou”
Fifi := Riri
Fin Riri, étant dépourvu de guillemets, n’est pas considéré comme
une suite de caractères, mais comme un nom de variable. A la fin de l’algorithme, la variable Fifi est donc égale à
“Loulou”.
Structure de donnéesL’instruction d’affectationL’ordre des instructions joue un rôle essentiel dans le
résultat final !
Var : A : entier ;
Début
A := 34
A := 12
Fin la fin de l’algorithme, la variable A est égale à 12.
Var : A : entier ;
Début
A := 12
A := 34
Fin A la fin de l’algorithme, la variable A est égale à 34.
Structure de donnéesLes expressions et les opérateurs
Une instruction d’affectation doit respecter trois conditions:
À gauche de l’affectation, on doit trouver un nom de variable, et uniquement cela. Dans le cas contraire, il s’agit certainement d’une erreur !
À droite de l’affectation, on doit trouver une expression ;
l’expression (située à droite de l’affectation) doit être du même type que la variable (située à gauche de l’affectation).
Définition d’une expressionUne expression est un ensemble de valeurs, reliées
par des opérateurs, et équivalent à une seule valeur.
Structure de donnéesLes expressions et les opérateurs
Définition d’une expressionUne expression est un ensemble de valeurs,
reliées par des opérateurs, et équivalent à une seule valeur.
Exemple d’expressions de type numérique :A := 7B := 5 + 4C := 123 – 45 + 844D := Toto – 12 + 5 – Riri
Structure de donnéesLes expressions et les opérateurs
Définition d’un opérateurUn opérateur est un signe qui relie deux
valeurs, pour produire un résultat.
Les opérateurs possibles dépendent du type des valeurs qui sont en jeu : Opérateurs numériques Opérateur alphanumérique Opérateurs logiques
Structure de donnéesLes expressions et les opérateurs Opérateurs numériques :
+ : l’addition ;– : la soustraction ;* : la multiplication ;/ : la division ;^ : la puissance.
On peut utiliser les parenthèses. La multiplication et la division ont naturellement la priorité sur l’addition et la soustraction.
Les parenthèses ne sont ainsi utiles que pour modifier cette priorité naturelle.
Exemple :
A := 12 * 3 + 5
B := (12 * 3) + 5 ‘A et B valent 41
C := 12 * (3 + 5) ‘C vaut 12 * 8, soit 96
Structure de donnéesLes expressions et les opérateursOpérateur alphanumérique :
& : la concaténation.Cet opérateur permet de concaténer
(agglomérer) deux chaines de caractères.
Exemple :A := “Buvons”B := “ un café”C := A & B ‘C vaut “Buvons un café”
Structure de donnéesLes expressions et les opérateurs
Opérateurs logiques :ET : la conjonction ;OU : la disjonction ;NON : la négation.
À garder sous le coude pour le moment. Nous y reviendrons une autre fois !
Structure de donnéesLa lecture et l’écriture
Algorithme Carre De DouzeVar : A : entier ;DébutA := 12 ^ 2Fin
1.Pour calculer le carré d’un autre nombre que 12, il faut réécrire le programme.
2.L’utilisateur ne saura jamais le résultat. La machine le garde pour elle. Il existe des instructions pour permettre à la
machine de dialoguer avec l’utilisateur. Instruction de lecture et instruction
d’écriture.
Structure de donnéesLa lecture et l’écriture
Instruction de lectureUne instruction de lecture permet à
l’utilisateur de rentrer des valeurs au clavier pour qu’elles soient utilisées par le programme.
Exemple : pour que l’utilisateur entre une nouvelle valeur d’une variable Titi :Lire (“Donnez la valeur de Titi” ; Titi)
RemarqueDès que le programme rencontre une
instruction Lire, l’exécution s’interrompt et attend la frappe d’une valeur au clavier.
Structure de donnéesLa lecture et l’écriture
Instruction d’écritureUne instruction d’écriture permet au
programme de communiquer des valeurs à l’utilisateur en les affichant à l’écran.
Exemple : Pour que le programme affiche à l’utilisateur la valeur d’une variable Toto :
Ecrire (“La valeur de Toto est :” ; Toto)
Plan du cours1. Introduction à l'algorithmique2. Environnement algorithmique3. Structure de données4. Structures de contrôle5. Structures itératives6. Sous-programmes7. Mode de passage de paramètres8. Tableaux