Académique Documents
Professionnel Documents
Culture Documents
1
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.
2
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
3
Qu’est-ce qu’un algorithme ?
4
Caractéristiques d’un algorithme
5
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
6
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
7
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é
8
a) caractéristiques d’une variable
Une variable est un dispositif de mémorisation d’une valeur à
laquelle on accède à tout moment. Elle est caractérisée par :
9
b) Tableau de déclaration de variables
N° Nom Statut Rôle Type Format
(Entrée ou (Entier, réel,
texte, date,
Sortie)
booléen)
Début
Déclaration des variables et constantes
Instructions1
Instructions 2
Fin
11
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
12
Les instructions élémentaires
2. 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.
15
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 » Alternative appauvrie :
Alors « Action 1 » Si « condition »
Sinon « Action 2 » Alors « Action 1 »
Fin Si Fin Si
16
Exemple d’algo – niveau 2
Algo :
Début
Constantes:
TXTVA : 0,196
Variables
Ref, Nb : Entier
Pu, BrutHT, Rem, NetHT, netTTC : Réel
* Entrée des données élémentaire
SAISIR « référence de la bouteille ? », Ref
SAISIR « 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:", NetTTC
Fin 17
Exemple d’algo – niveau 2
* Calcul du montant dû par le client
* *Calcul du montant de la remise
BrutHT Pu * Nb
Si 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
18
Variante de la structure alternative
pour 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> Voir exemple : calcul
<action2> des frais réels
…
Cas Sinon
<action3>
Fin selon
19
ALGO calcul des frais de Si nbkm <= 100
déplacement Alors frais 0
Sinon
Variables : Selon Cas puissance
Nbkm : entier Cas 1 à 3
Puissance : entier tarif = 1
Tarif : réel Cas 4 à 6
Frais : réel tarif = 1.5
Cas 7 à 8
Saisir « puissance fiscale du tarif = 2
véhicule :», puissance Cas 9 à 12
Saisir « nombre de kilomètres tarif = 2.5
parcourus :», nbkm Cas Est > 12
* Calcul des frais tarif = 3
Cas Sinon
* Affichage des résultats tarif = 0
Afficher « le montant des frais de Fin Selon
déplacement est de :», frais frais tarif * nbkm
Fin Si
20
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.
22
La structure «REPETER… JUSQU’A»
Algo : FactBout (d’après sujet Bac IG Désaltère)
Variables :
… TOTALTTC : réel
Réponse : booléen
Dé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 + NETTTC
Saisir «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
23
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 POUR
AFFICHER «montant total TTC facturé et dû par le client », TOTALTTC
Fin
24
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.
25
Les procédures
Une 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
26
L’utilisation des procédures - Exemple
Algo principal : Lasagnes à la Bolognaise
Variables :
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 plat
Parsemer de parmesan et de beurre
Faire gratiner 35 min au four à chaleur tournante
FIN
27
Algo auxiliaire :
28
Algo auxiliaire :
29
L’utilisation des procédures - Exemple
30
L’intérêt d’utiliser des procédures est de permettre une
plus grande lisibilité de l’algo principal (appelant) :
31
Les fonctions
Une 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
32
Les fonctions
Toute utilisation de la fonction nécessite donc
deux spécifications :
1. Un nom
2. Un ou plusieurs paramètres
Exemple :
déduction1 ---- fraisforfait (somme)
33
Les fonctions
Il 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é…
34
Application : voir TP ALGO
DECFISC
Ca l c ul du r e ve nu impo s a b l e d'un c o nt r ib ua b l e
Abattement de 20%
( limité à 20000 €)
36
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)
37
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) …
38
Algo Fonction version 1 du calcul Algo fonction version 2 du calcul des
des frais réels frais réels
SI NBKM <= 100 *déclaration du tableau Tarif
ALORS déduction1 = 0 tarif [13] : tableau de 13 réels
SINON i : entier
Selon Cas puissanceF * Initialisation des valeurs du tableau
Cas 1 à 3 Tarif[1] = 0.1 Tarif[7] = 0.25
tarif = 0,1 Tarif[2] = 0.1 Tarif[8] = 0.25
Cas 4 à 6 Tarif[3] = 0.1 Tarif[9] = 0.3
tarif = 0,15 Tarif[4] = 0.15 Tarif[10] = 0.3
Cas 7 à 8 Tarif[5] = 0.15 Tarif[11] = 0.3
tarif = 0,25 Tarif[6] = 0.15 Tarif[12] = 0.3
Cas 9 à 12 Tarif[13] = 0.5
tarif = 0,4 ‘calcul de la déduction au frais réels
Cas Est > 12 SI NBKM <= 100
tarif = 0.5 ALORS déduction1 = 0
Cas SINON SINON SI puissanceF > 13
tarif = 0
ALORS i = 13
Fin Selon SINON i =
Déduction1 = tarif * NBKM puissanceF
FIN SI FIN SI
39
Déduction1 = Tarif(i) * NBKM
L’utilisation de variables
tableaux
Exemple de tableau à 2 dimensions :
Prenons le TP RAPID’AUTO…
Code catégorie de véhicule loué
Code
période de Périodes de location 1 2 3 4
location
1 journée (lun - mar - mer - jeu) 75,00 € 82,00 € 129,00 € 105,00 €
Week-End (du samedi 12h au lundi 10h
2 126,00 € 155,00 € 219,00 € 180,00 €
ou vendredi 10h à samedi 18h)
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 €
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) …
40
Algo Fonction version 1 Algo fonction version 2
Fonction forfait(categ, typeloc) Fonction forfait(categ, typeloc)
SI categ = 1
*déclaration du tableau à 2 dimensions
ALORS Selon Cas typeloc
Cas 1 TABFORLOC : tableau de 16 réels
forfait = 75 categ : entier (indice de colonne)
Cas 2
forfait = 126 typeloc : entier (indice de ligne)
Cas 3 * Initialisation des valeurs du tableau
forfait = 291 TABFORLOC[1,1] = 75
Cas 4 TABFORLOC[3,1] = 129
forfait = 650 TABFORLOC[1,2] = 126 TABFORLOC[3,2] = 219
Fin Selon TABFORLOC[1,3] = 291 TABFORLOC[3,3] = 519
SINON SI categ = 2 TABFORLOC[1,4] = 650 TABFORLOC[3,4] = 1000
ALORS Selon Cas typeloc TABFORLOC[2,1] = 82 TABFORLOC[4,1] = 105
…
Fin Selon TABFORLOC[2,2] = 155 TABFORLOC[4,2] = 180
SINON SI categ = 3 TABFORLOC[2,3] = 338 TABFORLOC[4,3] = 411
ALORS Selon Cas typeloc TABFORLOC[2,4] = 700 TABFORLOC[4,4] =880
…
Fin Selon
SINON SI categ = 4 * choix de la valeur renvoyée dans la
ALORS Selon Cas typeloc fonction grâce aux indices
…
Fin Selon
Forfait = TABFORLOC[categ,typeloc]
SINON forfait = 0
FIN SI FIN Fonction
41
FIN FONCTION
FIN du cours d’algo
N’oubliez pas :
Un bon programme,
c’est d’abord un bon
algo !
42