17
2.Les bases de 2.Les bases de l’algorithmique l’algorithmique P. Costamagna – ISEN N1

2.Les bases de lalgorithmique P. Costamagna – ISEN N1

Embed Size (px)

Citation preview

Page 1: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

2.Les bases de l’algorithmique2.Les bases de l’algorithmique

P. Costamagna – ISEN N1

Page 2: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 2

A. Décomposition en sous-problèmesA. Décomposition en sous-problèmes

Exemple :

Page 3: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 3

B. Langage intermédiaireB. Langage intermédiaire

Son rôle

Notion de blocExemple :

Séquence

Page 4: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 4

B. Langage intermédiaire B. Langage intermédiaire (suite1)(suite1)

Alternative

La condition énoncée doit être décidable sans ambiguïté par l’exécutant

si une condition est remplie, alors telle action sera exécutée (sinon telle autre action sera exécutée).

Exemple :

Page 5: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 5

B. Langage intermédiaire B. Langage intermédiaire (suite2)(suite2)

Répétition ou itération

Pour chaque poche faire la recherche de la clé.

Tant que la clé n’a pas été trouvée fouiller une autre poche.

Répéter la fouille de chaque poche l’une après l’autre jusqu’à ce que la clé soit trouvée.

Exemple :

Page 6: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 6

C. Exemple : C. Exemple :

Environnement

Fournir au robot la marche à suivre qui va lui permettre de peler la quantité de pommes de terre suffisante pour remplir la marmite.

Le robot peleur de pommes de terre Le robot peleur de pommes de terre

But

Les instructions d’action élémentaire - REMPLIS = le robot remplit le panier

- PELE = il prend une pomme de terre dans le panier,

la pèle et la place dans la marmite.

Page 7: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 7

C. Exemple C. Exemple (suite1)(suite1)

Les conditions que l’exécutant peut tester - La marmite est remplie ? oui / non

- Le panier est vide ? oui / non

Possibilité de former des conditions plus complexes :

        - en énonçant le contraire des conditions précédentes

        - en les liant par les mots ET et OU

Précisions - Aucune supposition quant à l’état initial du panier

- Aucune indication sur la taille du panier

- Idem pour la marmite

Page 8: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 8

C. Exemple C. Exemple (suite2)(suite2)

Première propositionSI le panier est vide ALORS

Remplis

TANT QUE la marmite n’est pas remplie

Pèle

1ère situation :

Page 9: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 9

C. Exemple C. Exemple (suite3)(suite3)

SI le panier est vide ALORS

Remplis

TANT QUE la marmite n’est pas remplie

Pèle

2ème situation :

Tester un programme peut éventuellement montrer qu’il ne fonctionne pas mais jamais

prouver qu’il est correct.

Page 10: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 10

C. Exemple C. Exemple (suite4)(suite4)

SI le panier est vide ALORS

Remplis

TANT QUE la marmite n’est pas remplie

Pèle

3ème situation :

Le problème crucial sera de s’assurer que la marche à suivre donnée conduit à des exécutions

satisfaisantes dans tous les cas imaginables !

Page 11: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 11

C. Exemple C. Exemple (suite5)(suite5)

Deuxième propositionTANT QUE la marmite n’est pas remplie

TANT QUE le panier n’est pas vide

SI la marmite n’est pas remplie ALORS

Pèle

Remplis

1ère situation :

L’exécutant travaille sans jamais s’arrêter !

Page 12: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 12

C. Exemple C. Exemple (suite6)(suite6)

Troisième propositionREPETER

Fais tout ce qu’il faut pour mettre une pomme de terre en plus dans la marmite

TANT QUE la marmite n’est pas remplie

Le problème n’est alors plus d’expliquer

  comment faire pour remplir la marmite ?

mais

comment faire pour ajouter une pomme de terre supplémentaire dans la marmite ?

Page 13: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 13

C. Exemple C. Exemple (suite7)(suite7)

TANT QUE la marmite n’est pas remplie

Fais tout ce qu’il faut pour mettre une pomme

de terre en plus dans la marmite

Tout fonctionne correctement

sauf si aucune pomme de terre ne doit être pelée

parce que la marmite fournie est déjà remplie.

La question de savoir si la marmite est remplie ou non

est posée trop tard.

Le problème du remplissage de la marmite a disparu.

Page 14: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 14

C. Exemple C. Exemple (suite8)(suite8)

TANT QUE la marmite n’est pas remplie

SI le panier est vide ALORS

Remplis

Pèle

Reste à expliquer comment ajouter une pomme de terre

supplémentaire

Le seul paramètre gênant à ce propos concerne l’état

du panier.

Proposition finale

Page 15: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 15

D. FonctionD. Fonction Savoir décomposer un problème en actions, sous-actions … est important pour programmer. Mais il faut pouvoir réutiliser des choses faites auparavant.

Exemple :

Il faut que la forme s’y prête Brique de base = Fonction ou sous-programme

sin (x)

Page 16: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 16

E. Programme principalE. Programme principal

Une fonction fonctionne exactement comme un programme informatique tout entier

Le programme principal = fonction principale doit toujours porter le même nom.

En C, cette fonction principale porte tout simplement le nom de main.

Page 17: 2.Les bases de lalgorithmique P. Costamagna – ISEN N1

P. Costamagna 17

F. Qualité d’écriture du codeF. Qualité d’écriture du code

Bug

Conventions:-  écrire le code le plus simplement

possible ;- commenter le plus possible le code;- utiliser des indentations comme dans les

exemples précédents pour visualiser rapidement les blocs d’instructions.