1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et...

60
1 ALGORITHMIQUE

Transcript of 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et...

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

1

ALGORITHMIQUE

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

Cet algorithme sera ensuite converti à l’aide d’un langage de programmation.

Page 3: 1 ALGORITHMIQUE. 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 ALGORITHMIQUE. 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 ALGORITHMIQUE. 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 ALGORITHMIQUE. 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. l’initialisation des variables : affectation de valeurs initiales aux variables déclarées

Page 7: 1 ALGORITHMIQUE. 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

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

Page 8: 1 ALGORITHMIQUE. 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 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 ALGORITHMIQUE. 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 ALGORITHMIQUE. 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 ALGORITHMIQUE. 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

Initialisation des variables

Instructions1

Instructions 2

Fin

Traitement

Page 12: 1 ALGORITHMIQUE. 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:

Affecter une variable consiste a lui donner une valeur. Cette valeur peut être soit une constante, soit une valeur d’une autre variable, soit le résultat d’un calcul.

Exemple : Si A est une variable de type Byte (valeur comprise entre 0 et 255), on peut écrire :

A 3, A 3 + 4, A 2*B, A (B*B)/C

Le symbole est le symbole d’affectation

Si une variable est numérique A 0 Si une variable est chaîne de caractères A "0", ou A " Lettres "

Les affectations

Page 13: 1 ALGORITHMIQUE. 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émentaires

La primitive d’entrée ou saisir (entrée clavier) et lire (lecture en provenant du disque dur).

Le but de ces primitives est de permettre a l’ordinateur d’affecter une variable extérieure a une autre variable. Le nom de cette variable symbolise une adresse en mémoire centrale. A cette adresse se trouve la valeur, a un moment donne de la variable.

La primitive de sortie : écrire, afficher, imprimer. Le but est de permettre a l’ordinateur de sortir la valeur d’une variable vers les périphériques extérieurs (écran, imprimante, etc…)

L’entrée d’information

La Sortie d’informations

Page 14: 1 ALGORITHMIQUE. 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’algoEx Algo : FactureDébut Constantes:

TX_TVA : 0,196 Variables

Ref, Nb : EntierPu_ht, Brut_HT, : 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

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

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

15

Les outils Les structures alternatives Elles permettent de vérifier la valeur logique d’une

expression. L’objectif sera de réaliser certaines actions en fonction de cette valeur.

La structure de base est la suivante :Si (condition est vraie) Alors

Action 1Sinon

Action 2Fin Si Une action peut être un calcul, une affectation ou une

autre condition.

Page 16: 1 ALGORITHMIQUE. 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

Alternative appauvrie :Si « condition »

Alors « Action 1 »Fin Si

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

17

La structure alternative

Si code_sexe = 1Alors

Genre <- « masculin »Sinon

Genre <- « féminin »Fins si

La vérification de la valeur booléenne de l’expression se fera en utilisant des opérateurs relationnels et logiques tels que :

> ; < ; >= ; <> ; <= sont des opérateurs relationnels = comparaisonEt, ou sont des opérateurs Logiques

Page 18: 1 ALGORITHMIQUE. 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’algoAlgo :

Début Constantes:

TXTVA : 0,196Variables

Ref, Nb : EntierPu, BrutHT, Rem, NetHT, netTTC,tva : 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 19: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

19

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 TvA NetHt*txttva

NetTTC NetHT + tva

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

20

Structure Imbriquée Une structure alternative peut être de nature imbriquée. Si (condition est vraie) Alors Action 1 Si (condition est vraie) Alors Action 1.1 Sinon Action 1.2 Fin si Sinon Action 2 Fin si

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

21

Exemple :

Si code_sexe = 1 Alors Si âge >= 18 Alors Personnes = « majeur » Genre = « masculin » Sinon Personnes = « mineur » Genre = « masculin » Fin Si Sinon Si âge >= 18 Alors Personnes = « majeur » Genre = « féminin » Sinon Personnes = « mineur » Genre = «  féminin » Fin si Fin Si

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

22

Autre possibilité

Si code_sexe = 1 et âge >= 18 Alors Personnes = « majeur » Genre = « masculin » Sinon Personnes = « majeur » Genre = « masculin » Fin si

Si code_sexe = 2 et age >= 18 Alors Personnes = « majeur » Genre = « féminin » Sinon Personnes = « mineur » Genre = « féminin»

Fin si

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

23

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 24: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

24

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 25: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

25

Exercice Excel

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

26

Les structures itératives

Une structure itérative permet de répéter une suite d’instructions autant de fois que l’on veut (notion de boucle).

Différentes structures permettent de réaliser cette forme de traitement :

Pour Tant que Répéter, jusqu'à ce que

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

27

Structure itérative Pour

On sait a l’avance combien de fois on veut itérer. Pour i de 1 a 10. Faire Actions Fin Pour (ii+1)

Il faut donc connaître la valeur de début de i ainsi que sa valeur d’arrivée. A chaque tour de boucle, la variable i sera incrémentée (augmentée) de 1.

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

28

La structure «POUR… FIN POUR»

Algo : Début TOTALTTC, CumulTTC, TVA, prix : réel ref : chaine NB : entier i : entier CumulTTC 0 SAISIR « nombre de PRODUITS achetés : », NB * répétition du calcul du montant dû pour

POUR i = 1 à NB totalHT0 : Tva 0 : TOTALTTC 0

Saisir Ref, Pu, Qt totalHt Pu*QT Tva totalht* 0,196 TOTALTTC TOTALht+ tva CumulTTC CumulTTC+TOTALTTC

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

Fin

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

29

Structure itérative Tant que

Tant que la Condition est vraie alors les actions seront executées.

Déclarer réponse : chaîne

Réponse «oui » ( Initialisation)

Tant que reponse =  "oui "

Faire

Actions

Saisir Réponse

Fin Tant que

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

30

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

TANT QUE Ref <> " " 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 + NETTTCSaisir « Autre référence de bouteille :», ref

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

Fin

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

31

… Début * TOTALTTC : réel Ref, Rep: chaine TOTALTTC 0 Rep "OUI "

TANT QUE Rep = “OUI " FAIRE * Entrée des autres données élémentaires Pu, Nb, Ref

* * Calcul du montant de la remise * * Calcul du montant net HT * * Calcul du montant net TTC TOTALTTCTOTALTTC + NETTTC Saisir   “ Autre Saisie oui/non : “, Rep FIN TANT QUE

AFFICHER «montant total TTC facturé et dû par le client », TOTALTTCFin

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

32

Structure itérative Répéter jusqu'à ce que

Répéter l’action jusqu’à ce que condition devient fausse

Déclarer réponse = chaîneRépéter

Action(S)Saisir réponse

Jusqu'à ce que réponse soit vraie

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

33

Début * TOTALTTC : réel

Réponse : chaîne TOTALTTC 0 * répétition du calcul du montant dû pour

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

Etc.

TOTALTTCTOTALTTC + NETTTCSaisir «Y-a-t-il une autre référence de bouteille :», réponse

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

Fin

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

34

Procédures et fonctions

Sont des séquences d’actions qui seront nommées et dans des algorithmes auxiliaires.

Ces procédures et fonctions seront appelées à partir d’ un algorithme principal.

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

35

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

( les variables ont une portée globale ) La procédure renvoie ou non , dans l’algorithme

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

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

36

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 :

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

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

37

Private Sub Cmd_calc_Fahr_Click() Procedure_Faren_Cel MsgBox "La temperature est de " & f & "degres F." End Sub

Private Sub Procedure_Faren_Cel() f = (Txt_valeur * 9 / 5) + 32 End Sub

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

38

Private Sub cmd_test_Click() Proc_calc_fahr (Txt_valeur) MsgBox "La temperature est de " & celsius & "degres C." End SuB

Private Sub Proc_calc_fahr(degre As Single) celsius = (degre - 32) * 5 / 9

End Sub

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

39

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 40: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

40

Les fonctionsToute utilisation de la fonction nécessite donc

deux spécifications :1. Un nom

2. Un ou plusieurs paramètre

Exemple :

déduction1 fraisforfait (somme)

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

41

Les fonctionsIl existe deux catégories de fonctions :

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

2. Les fonctions utilisateurs :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 42: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

42

Fonction VB

Function fahr(Cel As Integer) As Single

fahr = (Cel * 9 / 5) + 32

End Function

Appel de la Fonction

Private Sub Cmd_calc_Fahr_Click()

MsgBox "La Temperature est de " & fahr(Txt_cel) & " degres C."

End Sub

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

43

La notion de variables tableaux( Vecteur 1 dimension)

Dans 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 44: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

44

VECTEURS et TABLEAUX

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

45

La déclaration de variables tableauxUn 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 ou le Vecteur

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 46: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

46

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

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

47

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 48: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

48

L’utilisation de variables tableaux

Exemple de tableau à 2 dimensions :

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 49: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

49

La notion de variables tableaux( Vecteur 1 dimension)

Dans 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 50: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

50

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 51: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

51

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 52: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

52

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 53: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

53

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 :

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

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

54

Exemple vbOption Explicit

Dim f As Single

Private Sub Cmd_calc_Fahr_Click()

Procedure_Faren_Cel

MsgBox "La temperature est de " & f & "degres F."

End Sub

Private Sub Procedure_Faren_Cel()

f = (Txt_valeur * 9 / 5) + 32

End Sub

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

55

Procédure et passage de paramètre

Option ExplicitDim celsius As Single

Private Sub cmd_test_Click() Proc_calc_fahr (Txt_valeur) MsgBox "La temperature est de " & celsius & "degres C."End Sub

Private Sub Proc_calc_fahr(degre As Single)celsius = (degre - 32) * 5 / 9

End Sub

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

56

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 57: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

57

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 58: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

58

Les fonctionsIl existe deux catégories de fonctions :

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

2. Les fonctions utilisateurs :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 59: 1 ALGORITHMIQUE. 2 Quest-ce quun algorithme ? « écrire un algorithme », cest : Analyser et comprendre le problème : étudier les données fournies et les.

59

Fonction VB

Appel de la Fonction

Private Sub Cmd_calc_Fahr_Click()

MsgBox "La Temperature est de " & fahr(Txt_cel) & " degres C."

End Sub

Function fahr(Cel As Integer) As Single

fahr = (Cel * 9 / 5) + 32

End Function

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

60

FIN du cours d’algo