algorithmique et structure de données

33
Par: Melle Najlae KORIKACHE Algorithmique et structure de données

Upload: denise

Post on 11-Jan-2016

55 views

Category:

Documents


4 download

DESCRIPTION

Algorithmique et structure de données. Par: Melle Najlae KORIKACHE. 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 ; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algorithmique et structure de données

Par: Melle Najlae KORIKACHE

Algorithmique et structure de données

Page 2: 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.

Page 3: Algorithmique et structure de données

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

Page 4: Algorithmique et structure de données

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.

Page 5: Algorithmique et structure de données

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

Page 6: Algorithmique et structure de données

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.

Page 7: Algorithmique et structure de données

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

Page 8: Algorithmique et structure de données

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.

Page 9: Algorithmique et structure de données

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

Page 10: Algorithmique et structure de données

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.

Page 11: Algorithmique et structure de données

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

Page 12: Algorithmique et structure de données

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.

Page 13: Algorithmique et structure de données

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

Page 14: Algorithmique et structure de données

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é)

Page 15: Algorithmique et structure de données

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é)

Page 16: Algorithmique et structure de données

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.

Page 17: Algorithmique et structure de données

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.

Page 18: Algorithmique et structure de données

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.

Page 19: Algorithmique et structure de données

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 !

Page 20: Algorithmique et structure de données

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 :=

Page 21: Algorithmique et structure de données

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.

Page 22: Algorithmique et structure de données

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

Page 23: Algorithmique et structure de données

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.

Page 24: Algorithmique et structure de données

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.

Page 25: Algorithmique et structure de données

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

Page 26: Algorithmique et structure de données

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

Page 27: Algorithmique et structure de données

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

Page 28: Algorithmique et structure de données

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é”

Page 29: Algorithmique et structure de données

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 !

Page 30: Algorithmique et structure de données

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.

Page 31: Algorithmique et structure de données

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.

Page 32: Algorithmique et structure de données

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)

Page 33: Algorithmique et structure de données

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