42
1 ALGORITHMIQUES

1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

Embed Size (px)

Citation preview

Page 1: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

1

ALGORITHMIQUES

Page 2: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

2

Qu’est-ce qu’un algorithme ? « écrire un algorithme », c’est :

Analyser et comprendre le problème : étudier les données fournies et les résultats attendus

Résoudre le problème, c’est trouver les structures de données adaptées ainsi que l’enchaînement des actions à réaliser pour passer des données aux résultats

Comment exécuter un algorithme sur un ordinateur ? Il faut traduire cet algorithme à l’aide d’un langage

de programmation connu par l’ordinateur.

Page 3: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

3

Qu’est-ce qu’un algorithme ?

Un algorithme correspond à la description d’un processus logique écrit en langage naturel décrivant une succession d’opérations à exécuter dans un certain ordre et sous certaines conditions, pour passer des données de base aux résultats

Page 4: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

4

Qu’est-ce qu’un algorithme ?

L’algorithmique est la technique des algorithmes

Un algorithme décrit un traitement selon une logique et un formalisme rigoureux.

L’algo prépare la programmation L’algo est une étape préalable indispensable à la

réalisation d’un bon programme C’est une méthode de découpage d’un traitement en

instructions élémentaires

Page 5: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

5

Caractéristiques d’un algorithme

Il contient plusieurs séquences à exécuter Ensemble d’actions élémentaires

les séquences (étapes) se succèdent dans un certain ordre

Il peut éventuellement exister une répétition (itération) ou une condition d’exécution ou non de certaines séquences

Il est caractérisé par un début et une fin

Page 6: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

6

La structure d’un algorithme

En général, un algo comprend 4 parties :

1. la déclaration des variables nécessaires aux traitements

2. Au début de l’algo, l’initialisation des variables : affectation de valeurs initiales aux variables déclarées

Page 7: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

7

La structure d’un algorithme

3. Le traitement des différentes séquences ordonnées de l’algo :

Réalisation d’actions élémentaires ou structurées Appel de procédures ou de fonctions externes : « sous-traitement » de portée générale qui sont réutilisés dans plusieurs algorithmes différents

4. À la fin de l’algo, la sortie des résultats et l’arrêt de l’algo

Page 8: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

8

Les objets utilisés dans l’algo Un algo utilise des objets qui peuvent être des variables, des constantes.

Chaque objet à un rôle qui consiste à mémoriser une valeur particulière significative :

La variable qui contient une valeur appelée à être modifiée au cours de l'algorithme.

La constante qui retient une valeur qui ne change pas au cours de l'algorithme

Un objet est parfaitement défini s’il est parfaitement identifié, typé et renseigné

Page 9: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

9

a) caractéristiques d’une variableUne variable est un dispositif de mémorisation d’une valeur à laquelle on accède à tout moment. Elle est caractérisée par :

Un rôle : signification attribuée à la variable Un nom (identificateur) : « contenant » permettant

d’accéder directement à son contenu. Il doit être le plus parlant et le plus évocateur du rôle de la variable

Une valeur : contenu de la variable à un moment donné

Variables de type élémentaire : contient 1 seule valeur Variables de type tableau : contient plusieurs valeurs contenues dans un tableau déclaré dans un seul type

Un type : c’est la définition du domaine dans lequel une variable peut puiser sa valeur

Page 10: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

10

b) Tableau de déclaration de variablesN° Nom Statut

(Entrée ou Sortie)

Rôle Type (Entier, réel, texte, date, booléen)

Format

1 Codecli E Code du client

entier 111

2 datfact E Date de la facture

date jj/mm/aaaa

3 anciencli E Ancien client Booléen Oui / non4 Nomcli E Nom du

clientTexte 40 car

Page 11: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

11

Les règles de mise en forme de l’algorithme

Nom de l’algorithme

Début

Déclaration des variables et constantes

Instructions1

Instructions 2

Fin

Page 12: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

12

Les actions élémentaires

1. L’instruction d’affectation L'opération consiste à affecter une valeur à une variable. Elle est représentée par une flèche orientée à gauche

NomVariable expression ; constante ; variable

Exemple : Nomcli « DUPONT »

A 100

B A * 0.196

A A + B

Page 13: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

13

Les instructions élémentaires2. L’instruction d’entrée : SAISIR ou ENTRER

A l’exécution de cet ordre, l’ordinateur demande à l’utilisateur de lui communiquer par l’intermédiaire du clavier ou de la souris, une valeur.

L’info saisie doit être cohérente avec le type de la variable.

Remarque : lors de la saisie d’une donnée, celle-ci est automatiquement affichée à l’écran.

SAISIR « nom de l’élève : », NOMELEV

3. L’instruction de sortie : AFFICHERA l’exécution de cet ordre, l’information est restituée à l’écran.AFFICHER « La note obtenue par : », NOMELEV, « est de : », NOTE

Page 14: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

14

Exemple d’algo – niveau 1Ex Algo : FactureDébut * Constantes:

TXTVA : 0,196Variables

Ref, Nb : EntierPuht, BrutHT, : Réel Entrée des données élémentairesSAISIR «  référence de la bouteille ?  », RefSAISIR «  Prix HT d’une bouteille ?  », Pu

SAISIR « Combien de bouteilles achetées ?, Nb * Calcul du montant dû par le client

BrutHT Pu * Nb * Sortie des résultats Afficher "Montant dû par le client:", BrutHT etc.Fin

Page 15: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

15

Les actions structurées

Les instructions structurées sont des structures algorithmiques de base. C’est l’ordonnancement logique des actions, tenant compte des décisions à prendre, qui structure l’algo

1. La structure alternative2. La structure itérative

Page 16: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

16

La structure alternative

Cette structure permet de mener deux actions différentes selon une condition. La condition peut être simple ou combinée (avec les opérateurs logiques ET, OU). Les alternatives peuvent s’imbriquer.

Alternative complète :Si « condition »

Alors « Action 1 »Sinon « Action 2 »

Fin Si

Alternative appauvrie :Si « condition »

Alors « Action 1 »Fin Si

Page 17: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

17

Exemple d’algo – niveau 2Algo :

Début Constantes:

TXTVA : 0,196Variables

Ref, Nb : EntierPu, BrutHT, Rem, NetHT, netTTC : Réel

* Entrée des données élémentaireSAISIR «  référence de la bouteille ?  », RefSAISIR «  Prix HT d’une bouteille ?  », Pu

SAISIR « Combien de bouteilles achetées de cette référence ?, Nb

* Calcul du montant dû par le client…..

* Sortie des résultats Afficher "Montant dû par le client:", NetTTCFin

Page 18: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

18

Exemple d’algo – niveau 2* Calcul du montant dû par le client

* *Calcul du montant de la remiseBrutHT Pu * NbSi Nb >= 24

Alors Rem BrutHT * 0,05 Sinon Rem 0

Fin Si* *Calcul du montant net HT

NetHT BrutHT – Rem

** Calcul du montant net TTC Si NetHT > 2000

Alors NetTTC NetHT * 0,9 * (1+TxTVA) Sinon NetTTC NetHT * (1+TxTVA)

Fin Si

Page 19: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

19

Variante de la structure alternativepour remplacer avantageusement la structure

alternative (SI..ALORS…SINON…), quand il y a un grand nombre de cas possibles selon les valeurs que peut prendre une variable, on peut utiliser la structure SELON CAS :Selon Cas <variable>

Cas <expression> <action1>

Cas <expression><action2>

Cas Sinon <action3>

Fin selon

Voir exemple : calcul des frais réels

Page 20: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

20

ALGO calcul des frais de déplacement Variables :Nbkm : entierPuissance : entierTarif : réelFrais : réel

Saisir « puissance fiscale du véhicule :», puissanceSaisir « nombre de kilomètres parcourus :», nbkm

* Calcul des frais

* Affichage des résultatsAfficher « le montant des frais de déplacement est de :», frais

Si nbkm <= 100 Alors frais 0 Sinon

Selon Cas puissance Cas 1 à 3

tarif = 1 Cas 4 à 6

tarif = 1.5 Cas 7 à 8

tarif = 2 Cas 9 à 12

tarif = 2.5 Cas Est > 12

tarif = 3 Cas Sinon

tarif = 0 Fin Selon

frais tarif * nbkmFin Si

Page 21: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

21

La structure itérative

L’itération (ou boucle) est une structure qui permet de faire répéter un ensemble d’actions, un certain nombre de fois dans un ordre préalablement défini.

Il existe trois types de structures itératives :

1. la structure « TANT QUE… FAIRE » :Le nombre de répétitions n’est pas connu et peut être nul : 0 à n répétitions

2. la structure « REPETER… JUSQU’À » :Le nombre de répétitions n’est pas connu mais ne peut pas être nul : 1 à n répétitions

3. la structure « POUR… FIN POUR » :Le nombre de répétitions est connu (i= 1 à 20)

Page 22: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

22

… Début * TOTALTTC : réel

TOTALTTC 0 SAISIR « Quelle est la référence des bouteilles achetées ? », Ref * répétition du calcul du montant dû pour

TANT QUE Ref <> 0 FAIRE * Entrée des autres données élémentaires Pu, Nb

* * Calcul du montant de la remise

* * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTCTOTALTTC + NETTTC

Saisir « Autre référence de bouteille :», refFIN TANT QUEAFFICHER «montant total TTC facturé et dû par le client », TOTALTTC

Fin

La structure «TANT QUE… FIN TANT QUE»

Page 23: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

23

La structure «REPETER… JUSQU’A»

Algo : FactBout (d’après sujet Bac IG Désaltère)Variables :… TOTALTTC : réel

Réponse : booléenDébut * Initialisation de la variable TOTAL TOTALTTC 0 * répétition du calcul du montant dû pour

REPETER * Entrée des autres données élémentaires Ref, Pu, Nb

* * Calcul du montant de la remise

* * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTC TOTALTTC + NETTTCSaisir «Y-a-t-il une autre référence de bouteille :», réponse

JUSQU’À réponse NONAFFICHER «montant total TTC facturé et dû par le client », TOTALTTC

Fin

Page 24: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

24

La structure «POUR… FIN POUR»

Algo : FactBout (d’après sujet Bac IG Désaltère)Variables :… TOTALTTC : réel

NBREF : entier i : entier

Début * Initialisation de la variable TOTAL TOTALTTC 0 SAISIR « nombre de références différentes des bouteilles achetées : », NBREF * répétition du calcul du montant dû pour

POUR i = 1 à NBREF * Entrée des autres données élémentaires Ref, Pu, Nb

* * Calcul du montant de la remise

* * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTC TOTALTTC + NETTTC

FIN POURAFFICHER «montant total TTC facturé et dû par le client », TOTALTTC

Fin

Page 25: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

25

Les actions nommées : procédures et fonctions

Dans le principe, un bon algorithme ne devrait pas dépasser une page !

Pour respecter ce principe, il convient de NOMMER certaines séquences d’actions qui correspondront à des procédures ou à des fonctions

Ainsi, ces actions nommées seront décrites dans des algorithmes auxiliaires et seront utilisées dans un algorithme principal.

Page 26: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

26

Les procéduresUne procédure est un algo auxiliaire qui contient une séquence d’actions :

La procédure est désignée par un nom La procédure est appelée, une ou plusieurs

fois, dans un ou plusieurs algos principaux. La procédure a besoin de variables

élémentaires déclarées dans l’algo principal La procédure renvoie, dans l’algorithme

principal, un ou plusieurs résultats contenus dans des variables déclarées dans l’algo principal

Page 27: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

27

L’utilisation des procédures - Exemple Algo principal : Lasagnes à la BolognaiseVariables : 500g lasagnes précuites –150 g parmesan – 50 gbeurre plat à gratin NBpers

DEBUT Saisir « Plat pour combien de personnes ? », nbpers Préparer la sauce bolognaise (nbpers) Préparer la sauce béchamel (nbpers)1. Disposer vos ingrédients dans le plat

Préchauffer four thermostat 6 et beurrer un plat à gratin Disposer une couche de lasagne au fond du plat Étaler généreusement de la sauce bolognaise Puis recouvrir de sauce béchamel

Renouveler l’opération 1 ou 2 fois selon la hauteur du platParsemer de parmesan et de beurreFaire gratiner 35 min au four à chaleur tournante

FIN

Page 28: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

28

Algo auxiliaire :

Procédure Bolognaise (quantité)Variables locales (pour 8 personnes) : 600g de bœuf et porc haché - 100 g de dés de lard fumé - 500 g oignons _300 g champignons – 2 carottes – 2 côtes de céleri – 60 cl vin blanc – 70 cl bouillon - 60 cl purée de tomates – huile d’olive – poivre – 100 g beurre

DEBUT procédure Pelez et coupez les oignons, carottes, céleri Faire revenir ces légumes 5 min dans huile d’olive et 50g de

beurre Faire dorer les champignons puis la viande et le lard dans une

poêle avec 25 g de beurre et un peu d’huile d’olive Regrouper la viande avec les légumes .Verser le vin et laisser

mijoter 20 min à feu doux. Délayer le bouillon et la purée de tomate et ajouter à la préparation Poivrer et laisser mijoter 1 h 30

FIN Procédure

Page 29: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

29

Algo auxiliaire :

Procédure Béchamel (quantité)Variables locales (pour 8 personnes) : 80g de farine – 1,25 l de lait - 100 g beurre – noix de muscade – sel - poivreDEBUT procédure

Faire fondre le beurre dans une casserole Ajouter la farine et mélanger pendant 2 min à feu doux Verser peu à peu le lait en remuant régulièrement Porter à ébullition pendant 5 min en toujours en remuant Poudrer de noix de muscade. Saler. Poivrer Retirer du feu et couvrer.

FIN Procédure

Page 30: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

30

L’utilisation des procédures - Exemple

L’algorithme appelant (lasagnes) est celui qui contient l’appel aux procédures (bolognaise et béchamel ).

L’algorithme appelé (bolognaise ou béchamel) utilise des variables déclarées dans l’appelant : il s’agit donc de variables globales (Nbpers)

L’algo appelé peut déclarer ses propres variables qu’il est seul à utiliser. Il s’agit de variables locales (liste ingrédients)

Page 31: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

31

L’intérêt d’utiliser des procédures est de permettre une plus grande lisibilité de l’algo principal (appelant) :

Gain de temps car cela évite d’écrire plusieurs fois la même chose. l’algo auxiliaire peut être appelé dans plusieurs algos principaux : Appelant : pizza à la bolognaise – Appelé : Bolognaise Appelant : choux fleur Sauce Mornay –Appelé : Béchamel

Mise à jour plus aisée de l’algo principal : Réduction du risque d’erreur car seul l’algo appelant est modifié

Page 32: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

32

Les fonctionsUne fonction est une procédure particulière qui ne renvoie, dans l’algorithme principal, qu’un et un seul résultat. La fonction est appelée dans l’algorithme principal, directement dans une instruction :

en général, elle apparaît dans la partie droite d’une affectation

Lors de son appel, la fonction est évaluée à partir d’arguments qui lui sont fournis

le résultat vient se substituer au nom de la fonction dans l’expression appelante

Page 33: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

33

Les fonctionsToute utilisation de la fonction nécessite donc

deux spécifications :1. Un nom

2. Un ou plusieurs paramètres

Exemple :

déduction1 ---- fraisforfait (somme)

Page 34: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

34

Les fonctionsIl existe deux catégories de fonctions :

1. Les fonctions standards : fonctions de base offertes par le langage utilisé

2. Les fonctions utilisateurs : Tôt ou tard, l’utilisateur devra développer ses propres fonctions à partir du langage utilisé. En effet, elles doivent répondre à un besoin précis et elles ne seront pas disponibles dans la bibliothèque du langage de programmation utilisé…

Page 35: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

35

Application : voir TP ALGO DECFISCCal cul du r evenu imposabl e d'un cont r ibuabl e

Revenu net annuel global

Type de déduction des frais (1 = forfaitaire ou 2 = réel) :

2Reste net

Abattement de 20% ( limité à 20000 €)

REVENU NET IMPOSABLE

Page 36: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

36

La notion de variables tableauxDans un algo, il est possible qu’une variable

puisse contenir à un moment donné, non pas une valeur, mais plusieurs valeurs à la fois. Il s’agit dans ce cas d’une variable TABLEAU

• Un tableau est une variable qui permet de stocker des valeurs de même type.

• Chaque valeur est repérée par un indice indiquant sa position dans le tableau

Page 37: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

37

La déclaration de variables tableaux

Un tableau doit avoir : un nom déclaré comme un type particulier de

données Une dimension connue à l’avance :

La dimension correspond au nombre maximum de cases composant le tableau

Un indice doit être déclaré pour permettre d’adresser les différentes cases du tableau. L’indice est obligatoirement du type entier

NOMTABLEAU [nbvaleurmax] : type (préciser aussi le rôle de la variable

tableau)

i : entier (indice)

Page 38: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

38

L’utilisation de variables tableaux

Un tableau peut être à 1 ou 2 dimensions. L’accès à l’élément d’un tableau s’effectue :

En précisant la position relative de l’élément par rapport au début du tableau.

En utilisant le ou les indices Exemple de tableau à 1 dimension :

reprenons notre TP DECFISC…Pour calculer les frais réels, nous pouvons utiliser un tableau (voir version 2) contenant toutes les valeurs correspondantes à la puissance fiscale du véhicule, au lieu d’utiliser la structure SELON CAS (version 1) …

Page 39: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

39

Algo Fonction version 1 du calcul des frais réels

SI NBKM <= 100

ALORS déduction1 = 0

SINON

Selon Cas puissanceF Cas 1 à 3

tarif = 0,1

Cas 4 à 6

tarif = 0,15

Cas 7 à 8

tarif = 0,25

Cas 9 à 12

tarif = 0,4

Cas Est > 12

tarif = 0.5

Cas SINON

tarif = 0

Fin Selon

Déduction1 = tarif * NBKM

FIN SI

Algo fonction version 2 du calcul des frais réels

*déclaration du tableau Tarif

tarif [13] : tableau de 13 réels

i : entier

* Initialisation des valeurs du tableauTarif[1] = 0.1Tarif[2] = 0.1Tarif[3] = 0.1Tarif[4] = 0.15Tarif[5] = 0.15Tarif[6] = 0.15

‘calcul de la déduction au frais réels

SI NBKM <= 100 ALORS déduction1 = 0 SINON SI puissanceF > 13

ALORS i = 13 SINON i =

puissanceF FIN SI

Déduction1 = Tarif(i) * NBKM

FIN SI

Tarif[7] = 0.25Tarif[8] = 0.25Tarif[9] = 0.3Tarif[10] = 0.3Tarif[11] = 0.3Tarif[12] = 0.3Tarif[13] = 0.5

Page 40: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

40

L’utilisation de variables tableaux

Exemple de tableau à 2 dimensions : Prenons le TP RAPID’AUTO…

Pour déterminer le forfait de location applicable selon la catégorie du véhicule loué ET la période de location choisie, nous pouvons utiliser un tableau à 2 dimensions (voir version 2) contenant toutes les valeurs applicables au forfait de location du véhicule, au lieu d’utiliser la structure SELON CAS (version 1) …

Code catégorie de véhicule louéCode

période de location

Périodes de location 1 2 3 4

1 journée (lun - mar - mer - jeu) 75,00 € 82,00 € 129,00 € 105,00 €

2 Week-End (du samedi 12h au lundi 10h ou vendredi 10h à samedi 18h)

126,00 € 155,00 € 219,00 € 180,00 €

3 Semaine (du lundi 8 h au vendredi 17 h) 291,00 € 338,00 € 519,00 € 411,00 €

4 Forfait : 2 semaines 650,00 € 700,00 € 1 000,00 € 800,00 €

Page 41: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

41

Algo fonction version 2

Fonction forfait(categ, typeloc)

*déclaration du tableau à 2 dimensions TABFORLOC : tableau de 16 réels categ : entier (indice de colonne) typeloc : entier (indice de ligne)

* Initialisation des valeurs du tableau TABFORLOC[1,1] = 75 TABFORLOC[1,2] = 126 TABFORLOC[1,3] = 291 TABFORLOC[1,4] = 650 TABFORLOC[2,1] = 82 TABFORLOC[2,2] = 155 TABFORLOC[2,3] = 338 TABFORLOC[2,4] = 700

* choix de la valeur renvoyée dans la fonction grâce aux indices

Forfait = TABFORLOC[categ,typeloc]

FIN Fonction

Algo Fonction version 1

Fonction forfait(categ, typeloc)SI categ = 1 ALORS Selon Cas typeloc

Cas 1 forfait = 75 Cas 2 forfait = 126 Cas 3 forfait = 291 Cas 4 forfait = 650

Fin Selon SINON SI categ = 2

ALORS Selon Cas typeloc … Fin Selon

SINON SI categ = 3 ALORS Selon Cas typeloc

… Fin Selon

SINON SI categ = 4 ALORS Selon Cas typeloc

… Fin Selon SINON forfait = 0FIN SIFIN FONCTION

TABFORLOC[3,1] = 129TABFORLOC[3,2] = 219TABFORLOC[3,3] = 519TABFORLOC[3,4] = 1000TABFORLOC[4,1] = 105TABFORLOC[4,2] = 180TABFORLOC[4,3] = 411TABFORLOC[4,4] =880

Page 42: 1 ALGORITHMIQUES. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les

42

FIN du cours d’algoN’oubliez pas :

Un bon programme, c’est

d’abord un bon algo !