Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié...

22
Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière : C4 - DU

Transcript of Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié...

Page 1: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algorithmique et Analyse :

Introduction

Mathieu RocheJérôme Azé

Fondé sur le polycopié de J.P Chevillard

2003 - 2004 Université Paris-Sud

Filière : C4 - DU

Page 2: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 2

1. Langage

Un langage doit servir d’interface entre le raisonnement humain et la machine

Spécificités d’un langage informatique– Non ambiguïté– Lisibilité– Simplicité

Page 3: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 3

1. Langage Spécificités d’un langage

informatique (suite)– Conformité avec habitudes intellectuelles– Souplesse– Cohérence– Abstraction– Expressivité– Modularité– Encapsulation

Page 4: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 4

2. Structures de données : les types de données

Objets atomiques– Numériques (réels et entiers)– Logiques (ou booléennes)– Textuels– Types définis (par exemple,

énumérations)– Adresses ou pointeurs

EXEMPLES…

Page 5: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 5

2. Structures de données : les types de données

Objets « poly-atomiques »– objets composés

• tableaux• agrégats (structures)

EXEMPLES…

– collection d’objets• linéaires : listes, files, piles• ramifiées : arbres, graphes• informes : tas

EXEMPLES…

Page 6: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 6

2. Structures de données : les données

Caractéristiques des données :– Désignateur (identificateur ou

pointeur)

– Type

– Statut (entrée, sortie, locale, globale, etc.)

– Rôle

Page 7: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 7

3. Structures de Contrôle

Structures de base :– Séquence

– Choix

– Répétition

Page 8: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 8

3. Structures de Contrôle : Exécution séquentielle

Action 1

Action 2

Action n

.

.

.

Page 9: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 9

3. Structures de Contrôle : Exécution alternative et

conditionnelle

Action F Action V

conditionfausse vraie

Exécution alternative

Action V

condition

fausse

vraie

Exécution conditionnelle

Page 10: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 10

3. Structures de Contrôle : Exécution à choix multiples

Action c_1

Action c_2

Action c_n

.

.

.

Cas 1

Cas 2

Cas n

.

.

.

Choisir selon le cas

Structure

« case »

de Pascal

EXEMPLE…

Page 11: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 11

3. Structures de Contrôle : Exécution répétitive ou boucle

Répéter tant que (Condition logique)

Action

Page 12: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 12

3. Structures de Contrôle : Exécution de sous programmes

Action 2

Appel de SP

Action 1

Appel de SP

Sous programme SP

Action SP_1

Action SP_n

.

.

.

Retourner au Programme appelant

Page 13: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 13

4. Notations algorithmiques

Les commentaires Ecrire les commentaires en même temps

ou mieux avant le reste du programme (jamais après !).

– Exemples : /* … */ , { }, …

Page 14: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 14

4. Notations algorithmiques Les déclarations

– variables numériques : x, y, z ;

– variable textuelle : nom_d_etudiants ;

– variables tableau numérique indice [1..15] : x, y, z ;

– constante : PI = 3.14 ;

Page 15: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 15

4. Notations algorithmiques Les déclarations

– type : fiche_étud = agrégat_denom, prenom : textuel ; /* type des composantes */age : numérique ;

fin_agrégat fiche_étud

– variable p : pointeur_sur fiche_étud ;

– variable lauréat, candidat : fiche_étud ;

Remarque : pour désigner un champ d’un agrégat on utilisera la notation nom(candidat)

– type énumérés : type état_de_file = (vide, pleine, normale)

Page 16: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 16

4. Notations algorithmiques Les instructions exécutables et de contrôle

– Affectation : <--• Exemple affectation de pointeurs : pA <-- pB

– Les choix (exécution conditionnelle, alternative) :

si condition _logique alors action « vraie » sinon /* clause optionnelle */ action « fausse » fin_si

EXEMPLE…

Page 17: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 17

4. Notations algorithmiques

Les instructions exécutables et de contrôle

– Les choix (exemple de construction à choix multiples) :

si condition _logique_1 alors action_1 sinon_si condition _logique_2 /* clause optionnelle */ action_2 sinon_si condition _logique_3 /* clause optionnelle */ action_3 … fin_si

Page 18: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 18

4. Notations algorithmiques

Les instructions exécutables et de contrôle

– Les boucles : 3 types de boucles (Attention : notations légèrement différentes du polycopié de J.P. Chevillard)

tant que (condition_logique) faire action

fin_tant_que

répéter action

jusqu’à_ce_que (condition_logique)

Remarque : boucle « répéter » équivalente à la boucle « tant que » mais les actions sont exécutées au moins une fois

EXEMPLE…

Page 19: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 19

4. Notations algorithmiques

Les instructions exécutables et de contrôle

– Les boucles : 3 types de boucles (suite)

pour (compteur) variant_de départ à fin action

fin_pour

Remarque : utiliser lorsque l’on connaît exactement le nombre d´itérations à effectuer.

EXEMPLE…

Page 20: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 20

4. Notations algorithmiques

Les instructions exécutables et de contrôle : les sous-programmes

– La communication des donnée est spécifiée par une liste d’arguments

– Les arguments d’un sous programme servent à • Passer des informations du programme appelant vers le sous

programme (argument d’Entrée)

• Renvoyer des informations du sous-programme vers le programme appelant (argument de Sortie)

• Passer des informations du programme appelat vers le sous-programme, informations que celui-ci modifie et retourne modifiées au programme appelant (argument d’Entrée/Sortie)

EXEMPLES…

Page 21: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 21

4. Notations algorithmiques

Deux types de sous-progammes : les procédures et les fonctions.

Seules les fonctions renvoient un résultat Attention : différences selon les langages

EXEMPLES …

Le cas de la récursion sera traité ultérieurement

Page 22: Cours Algorithmique et Analyse : Introduction Mathieu Roche Jérôme Azé Fondé sur le polycopié de J.P Chevillard 2003 - 2004 Université Paris-Sud Filière.

Cours Algo - C4-DU 22

Annexe : bibliographie

Polycopié des cours de J.P. Chevillard

Types de données et algorithmes, Christine Froidevaux, Marie-Claude Gaudel et Michèle Soria McGraw-Hill, Collection Informatique,1990.