Télécharger le cours

publicité
ALGORITHMIQUE
1 Comprendre l'algorithmique
11 Qu'est-ce qu'un algorithme
Soit la recette d'une omelette de 6 œufs
a) prendre un "cul de poule"
b) prendre six œufs frais
c) les casser dans le "cul de poule"
d) jeter les coquilles dans la poubelle
e) battre les œufs
f) saler, poivrer
g) mettre un mélange beurre-huile à chauffer dans une poêle sur la cuisinière
h) lorsque le mélange est chaud (couleur blonde), y verser le contenu du "cul de poule"
i) (note du cuisinier : j'abrège) enlever la poêle de la cuisinière lorsque l'omelette est cuite.
TAF : En examinant cette recette, pouvez-vous
- trouver un but ?
- décomposer la fabrication de l'omelette ?
- trouver une suite dans ces actions ?
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 1
12 Caractériser une séquence
121 Observer
Objectif : calculer le salaire brut mensuel d'un employé payé à l'heure : vous disposez des cas suivants pour
votre étude
Nom du salarié
Mat
Bob
Busy
Nombre d'heures
154
160
148,5
Taux horaire
8
10,2
9
Solution algorithmique
Jeu d'essai
Nom du salarié
Mat
Bob
Busy
Nombre d'heures
154
160
148,5
Taux horaire
8
10,2
9
Salaire brut
1 232
1 632
1 336,5
Lexique
Nom
symbolique
NOM
NBH
TXH
BRUT
Désignation
Type
Nom du salarié
Élémentaire
Nombre d'heures travaillées dans le mois Élémentaire
Taux horaire
Élémentaire
Montant du salaire brut mensuel
Calculé
Nature
Remarques et
Règles de calcul
Chaîne (texte)
Réel
Réel
Réel
= NBH x TXH
Algorithme : calcul du salaire mensuel d'un salarié
Variables
NOM : texte
NBH, TXH, BRUT : Réel
DEBUT
SAISIR NOM, NBH, TXH
CALCULER BRUT  NBH x TXH
AFFICHER NOM, BRUT
FIN
Trace
NOM
Mat
Bob
Busy
NBH
154
160
148,5
TXH
8
10,2
9
BRUT
1 232
1 632
1 336,5
Affichage
Mat 1 232
Bob 1 632
Busy 1 336,5
TAF : Repérer les différentes parties de la solution algorithmique. Pourquoi utilise-t-on des variables ?
Repérer les éléments caractéristiques de l'algorithme proprement dit. Comment est représenté un calcul ?
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 2
122 Conclure
123 Faire
On désire étudier le calcul du montant de la facture d'un abonné EDF. Tous les deux mois, il doit payer un
abonnement fixe de 11 € et 12 centimes par KW/H consommé. On a en notre possession ses coordonnées et les
relevés de compteur de début et fin de période.
A titre indicatif, on vous fournit les éléments suivants :
Numéro
1012
1028
1044
1056
1152
Nom
Merlin
Lench
Anteur
Mage
Icien
Ancien index
220
12 200
1 850
120
0
Nouvel index
1 440
12 330
1 880
458
32
TAF : Élaborer la solution algorithmique qui permettra de connaître le montant à payer par chaque abonné :
- réalisation "à la main" des objectifs (jeu d'essai)
- lexique
- algorithme
- trace
13 Caractériser une alternative
131 Observer
Objectif : déterminer la répartition des heures réalisées par un salarié au cours d'une semaine : heures
normales, heures supplémentaires à +25 %, heures supplémentaires à +50 %,
Nom du salarié
Nombre d'heures hebdomadaires
Mat
40
Bob
49
Busy
39
Louis
45
Roland
38
Solution algorithmique
jeu d'essai (à réaliser)
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 3
Lexique
Nom
Désignation
Type
symbolique
NOM
Nom du salarié
Élémentaire
NBH
Nombre d'heures travaillées Élémentaire
dans la semaine
NBHN
Nombre d'heures travaillées
Calculé
dans la semaine
NBHS25
Nombre d'heures
Calculé
supplémentaires + 25 %
NBHS50
Nombre d'heures
supplémentaires + 50 %
Nature
Remarques et Règles
de calcul
Chaîne (texte)
Réel
Calculé
Réel
........
Réel
........
Réel
........
Algorithme : calcul des heures travaillées hebdomadaires d'un salarié
Variables
NOM : texte
NBH, NBHN, NBHS25, NBHS50 : Réel
DEBUT
SAISIR NOM, NBH
SI NBH > 43
ALORS NBHS50  NBH - 43
NBHS25  4
NBHN  39
SINON SI NBH > 39
ALORS NBHS50  0
NBHS25  NBH-39
NBHN  39
SINON NBHS50  0
NBHS25  0
NBHN  NBH
FIN SI
FIN SI
AFFICHER NOM, NBHN, NBHS25, NBHS50
FIN
TAF : Rappeler les règles de calcul des heures supplémentaires. Compléter le jeu d'essai.
Qu'est-ce qu'une alternative ? Repérer ce qui caractérise une alternative dans l'algorithme ci-dessus. Expliquer
le fonctionnement de cet algorithme.
132 Conclure
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 4
133 Faire
On désire étudier le calcul du montant de la facture d'un abonné EDF. Tous les deux mois, il doit payer un
abonnement fixe de 11 € et le coût de sa consommation selon la tarification suivante :
- 12 centimes par KW/H consommé jusqu'à 100 KW/H,
- 9 centimes par KW/H pour les 150 KW/H suivants,
- 5 centimes par KW/H consommé au-delà de 250 KW/H.
On a en notre possession ses coordonnées et les relevés de compteur de début et fin de période.
Nota : vous utiliserez les mêmes exemples de calcul que pour l'algorithme du point 123.
TAF : Élaborer la solution algorithmique qui permettra de connaître le montant à payer par chaque abonné.
14 Caractériser une itération (itération : action de répéter)
141 Observer
Objectif : déterminer le salaire net de chaque salarié d'une entreprise à partir du salaire brut et des cotisations
sociales part salarié, ainsi que le montant total des salaires bruts. La fin des calculs sera repérée quand il n'y
aura plus de nom de salarié à saisir.
Nom du salarié
Mat
Bob
Busy
Salaire brut
1 232
1 632
1 336,50
Cotisations part salarié
246,40
344,50
237,30
Solution algorithmique
jeu d'essai (à réaliser)
Lexique
Nom
symbolique
NOM
BRUT
COTIS
NET
TOTBRUT
Désignation
Nom du salarié
Montant du salaire brut mensuel
Montant des cotisations sociales
Montant du salaire net
Total des salaires bruts versés
Type
Élémentaire
Élémentaire
Élémentaire
Calculé
Calculé
Nature
Chaîne (texte)
Réel
Réel
Réel
Réel
Remarques et Règles
de calcul
= BRUT - COTIS
........
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 5
Algorithme : calcul du salaire mensuel net d'un salarié et du total des salaires bruts versés par l'entreprise
Variables
Nom : texte
BRUT, COTIS, NET, TOTBRUT : Réel
DEBUT
TOTBRUT  0
SAISIR NOM
TANT QUE NOM <>"" FAIRE
SAISIR BRUT, COTIS
NET  BRUT - COTIS
TOTBRUT  TOTBRUT + BRUT
AFFICHER NOM, NET
SAISIR NOM
FIN TANT QUE
AFFICHER TOTBRUT
FIN
TAF : Compléter le jeu d'essai.
Qu'est-ce qu'une itération ? Repérer ce qui caractérise une itération dans l'algorithme ci-dessus. Expliquer le
fonctionnement de cet algorithme à l'aide d'une trace. A l'aide de la trace et de l'algorithme, déterminer la règle
de calcul de TOTBRUT. Compléter le lexique.
142 Conclure
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 6
143 Faire
On désire étudier le calcul du montant de la facture d'un abonné EDF et obtenir également le montant total payé
par les abonnés ainsi que le nombre moyen de KW/H consommés par un abonné.
On a en notre possession ses coordonnées et les relevés de compteur de début et fin de période (deux mois).
L'abonné doit payer un abonnement fixe de 11 € et le coût de sa consommation selon la tarification suivante :
- 12 centimes par KW/H consommé jusqu'à 100 KW/H,
- 9 centimes par KW/H pour les 150 KW/H suivants,
- 5 centimes par KW/H consommé au-delà de 250 KW/H.
Nota : vous utiliserez les mêmes exemples de calcul que pour l'algorithme du point 123.
TAF : Élaborer la solution algorithmique qui permettra de connaître le montant à payer par chaque abonné, le
montant total payé par tous les abonnés et le nombre moyen de KW/H consommé par un abonné.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 7
144 Généraliser Tant Que
Variante 1 du problème du point 143
On a dénombré 40 clients. On dispose de ce renseignement dès le début, et l'on souhaite en tenir compte dans
l'algorithme.
TAF : Cela modifie-t-il le lexique ? Compléter l'algorithme ci-après afin de tenir compte de ce nouvel élément.
Algo EDF3a
Variables
Numcli, Nomcli
: chaîne
AI, NI, NBK, I, TK
: entier
PT1,PT2,PT3, ABO, MTF, MOYKW, TT
DEBUT
: Réel
PT1  0,12
PT2  0,09
PT3  0,05
ABO  11
I0
TT  0
TK  0
NBK  NI-AI
SI NBK < 100
ALORS MTF  (PT1 x NBK) + ABO
SINON SI NBK <250
ALORS MTF  ((PT1 x 100) + (PT2 x (NBK -100)) + ABO
SINON MTF  ((PT1x100)+(PT2x150)+PT3x(NBK-250)) + ABO
FIN SI
FIN SI
AFFICHER "Le client ",Numcli," ", Nomcli " consomme ",NBK," et doit payer ",MTF," euros. "
FIN TANT QUE
MOYKW  TK / I
AFFICHER "La moyenne de KW/H consommé par un abonné est de ", MOYKW
AFFICHER "Le montant total payé par les clients est de ", TT," euros"
FIN
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 8
Variante 2 du problème du point 143
On a dénombré un nombre donné de clients. On dispose de ce renseignement dès le début, et l'on souhaite en
tenir compte dans l'algorithme.
TAF : Cela modifie-t-il le lexique ? Compléter l'algorithme ci-après afin de tenir compte de ce nouvel élément.
algo EDF3b
Variables
Numcli, Nomcli
: chaîne
AI, NI, NBK, I, TK
: entier
PT1,PT2,PT3, ABO, MTF, MOYKW, TT
DEBUT
: Réel
PT1  0,12
PT2  0,09
PT3  0,05
ABO  11
I0
TT  0
TK  0
NBK  NI-AI
SI NBK < 100
ALORS MTF  (PT1 x NBK) + ABO
SINON SI NBK <250
ALORS MTF  ((PT1 x 100) + (PT2 x (NBK -100)) + ABO
SINON MTF  ((PT1x100)+(PT2x150)+PT3x(NBK-250)) + ABO
FIN SI
FIN SI
AFFICHER "Le client ",Numcli," ", Nomcli " consomme ",NBK," et doit payer ",MTF , " euros."
FIN TANT QUE
MOYKW  TK / I
AFFICHER "La moyenne de KW/H consommé par un abonné est de ", MOYKW
AFFICHER "Le montant total payé par les clients est de ", TT , " euros."
FIN
Synthèse sur le fonctionnement de Tant Que avec un nombre fini d'itérations
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 9
145 Les autres boucles
Reprenons l'exemple du point 141.
TAF : Considérant qu'il y a N salariés, compléter l'algorithme ci-après.
Algorithme : calcul du salaire mensuel net d'un salarié et du total des salaires bruts versés par l'entreprise
Variables
Nom : texte
BRUT, COTIS, NET, TOTBRUT
: Réel
DEBUT
TOTBRUT  0
AFFICHER NOM, NET
FIN TANT QUE
AFFICHER TOTBRUT
FIN
TAF 2 : Examinez le comportement de l'algorithme ci-dessous qui exécute le processus.
Trouvez les différences avec l'algorithme que vous venez de compléter et tirez-en des conclusions.
Algorithme : calcul du salaire mensuel net d'un salarié et du total des salaires bruts versés par l'entreprise
Variables
Nom : texte
BRUT, COTIS, NET, TOTBRUT : Réel
I, N : Entier
DEBUT
TOTBRUT  0
I0
SAISIR N
REPETER
SAISIR NOM, BRUT, COTIS
NET  BRUT - COTIS
TOTBRUT  TOTBRUT + BRUT
II+1
AFFICHER NOM, NET
JUSQU'A I=N
AFFICHER TOTBRUT
FIN
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 10
TAF 3 : Examinez le comportement de l'algorithme ci-dessous qui exécute le processus.
Trouvez les différences avec l'algorithme que vous venez de compléter et tirez-en des conclusions.
Algorithme : calcul du salaire mensuel net d'un salarié et du total des salaires bruts versés par l'entreprise
Variables
Nom : texte
BRUT, COTIS, NET, TOTBRUT : Réel
I, N : Entier
DEBUT
TOTBRUT  0
SAISIR N
POUR I de 1 à N PAS 1
SAISIR NOM, BRUT, COTIS
NET  BRUT - COTIS
TOTBRUT  TOTBRUT + BRUT
AFFICHER NOM, NET
FIN POUR
AFFICHER TOTBRUT
FIN
Synthèse sur le fonctionnement des boucles
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 11
2 Les fonctions et les procédures
21 Les fonctions
211 Observer
2111 la démarche algorithmique
Objectif : On désire automatiser le calcul des commissions dues aux représentants.
Pour cela, on met à votre disposition :
- un extrait d'un contrat de travail
"Les représentants, rémunérés exclusivement au pourcentage, toucheront leur commission chaque mois.
Elle sera fonction du chiffre d'affaires H.T. qu'ils auront réalisé au cours du mois.
Si celui-ci dépasse 20 000 €, la commission de base sera de 10 % du chiffre d'affaires.
Dans le cas contraire, elle sera de 7 %.
Le salaire touché par le représentant sera la commission de base arrondie à la centaine d’euros inférieure.
Pour compenser cet arrondi, les représentants se verront régulariser leur salaire en fin d'année et de plus
bénéficieront d'une prime de 200 €."
- le tableau des chiffres d'affaires du mois de mai
Nom
René
Tim
Bratt
Hubert
C.A. H.T.
17 750 €
30 041 €
44 025 €
19 520 €
TAF : Élaborer la solution algorithmique qui permettra de connaître pour un mois le salaire dû à chaque
représentant, le total des salaires versées et le salaire moyen :
- réalisation "à la main" des objectifs (jeu d'essai)
- lexique
- algorithme
- trace
Nota : vous considérerez un nombre donné de représentants
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 12
L'informaticien de l'entreprise a utilisé votre algorithme et en est très satisfait.
Il a cependant décidé de créer une fonction "arrondi à la centaine d’euros inférieure" car il pense que cela
pourrait être utilisable pour d'autres algorithmes.
Il vous soumet sa solution pour que vous l'étudiiez (il a sans doute une idée derrière la tête...).
algo salaire fonction
var nom : chaîne
i,nb : entier
CAHT, com, sal, totsal, moysal : réel
DEBUT
AFFICHER "Ce programme calcule le salaire total et moyen"
i0
totsal  0
AFFICHER "donner nombre de salariés "
SAISIR nb
TANTQUE i<nb FAIRE
AFFICHER "donner nom du salarié "
SAISIR nom
AFFICHER "donner C.A. HT "
SAISIR CAHT
SI CAHT > 2000
ALORS com  CAHT * 0.1
SINON com  CAHT * 0.07
FINSI
sal  ARRON(com)
AFFICHER nom, sal
totsal  totsal+sal
i  i+1
FIN TANT QUE
moysal  totsal/i
AFFICHER totsal,moysal
FIN
FONCTION ARRON(nomb) : entier
var
arr : entier
DEBUT
arr  ENTIER(nomb/100)*100
RETOURNER arr
FIN
TAF : Répondre aux questions suivantes :
- Quelle est la différence entre l’algorithme que vous avez établi et celui de l’informaticien ?
- Qu'est-ce qui identifie la fonction ?
- Où est placée la fonction par rapport à l'algorithme principal
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 13
- Que fait la fonction ?
- Quels sont les éléments variables utilisés par la fonction ?
- Comment est utilisée la fonction dans l'algorithme principal ?
- Comment se fait le passage de variable :
* l'algorithme principal --> la fonction :
* la fonction --> l'algorithme principal :
2112 le fonctionnement des programmes ALG'EXEC
TAF : Ouvrir le programme SALFONC.ALG et observer comment Alg'exec traite les problèmes des fonctions.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 14
212 Faire
2121 la démarche algorithmique
Quel est l'intérêt du passage de variable ? voyons ce que demande l'informaticien.
Justement, notre informaticien vous soumet un problème qui le préoccupe : il gère les commandes de pièces
détachées réalisées par les clients : il faut que le nombre de pièces stockées soit pratiquement équivalent au
volume commandé.
Exemple : pour 625 pièces commandées, il faut avoir 600 pièces stockées ; pour 252 pièces commandées, il faut
avoir 200 pièces stockées ; pour 1158 pièces commandées, il faut avoir 1100 pièces stockées ; etc...
Il se demande s'il ne pourrait pas utiliser la fonction ARRON !
Il vous fournit l'algorithme actuel, et vous demande d'intégrer la fonction ARRON pour calculer un nombre de
pièces tk à stocker.
algo pièce
var Rep, Ref
i,nb, p, tp
: chaîne
: entier
DEBUT
AFFICHER "Ce programme calcule le nombre de pièces à stocker"
Rep  "O"
TANT QUE Rep ="O" FAIRE
tp  0
AFFICHER "donner la référence de la pièce "
SAISIR Ref
AFFICHER "donner nombre de commandes "
SAISIR nb
POUR I DE 1 A nb
AFFICHER "donner le nombre de pièces de la commande ",I," "
SAISIR p
tp  tp + p
FIN POUR
SAISIR "Autre traitement (O/N) ",Rep
FIN TANT QUE
FIN
TAF : Répondre aux questions suivantes :
- Que fait l'algorithme pièce ?
- Que manque-t-il dans l’algorithme ?
- intégrez la fonction ARRON pour l'algorithme affiche pour chaque pièce la quantité tk, arrondie, à la centaine
inférieure de tp.
- refaites le passage de variable comme pour l'algorithme salaire
- trouvez-vous des similitudes avec l'algorithme salaire précédent ?
2122 le fonctionnement des programmes ALG'EXEC
TAF : Ouvrir le programme PIECE1.ALG et le modifier afin d'intégrer la fonction ARRON.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 15
213 Conclure
214 Exploiter
Exercice
On vous demande de réaliser l’algorithme qui permettra d’obtenir à partir d’un capital placé le capital acquis.
On prendra un taux annuel. La durée de placement sera donnée en mois. Le principe de l’intérêt simple sera
appliqué.
Dans un premier temps, votre solution sera réalisée en un seul algorithme.
Dans un second temps, vous utiliserez une fonction AUGM qui à partir du capital de départ calculera
directement la valeur acquise.
22 Les procédures
221 Observer
Objectif : On désire améliorer le traitement des consommations d'électricité (voir point 143 - énoncé des cas
point 123) car on a détecté des erreurs de saisie dans les nouveaux index. Pour cela, un nouvel algorithme a été
élaboré.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 16
algo EDF5971
var
nom : chaîne
AI, NI, I, NB : entier
MM, MTF, PT1, PT2, PT3, ABO, NBK : Réel
DEBUT
ABO  11
PT1  0.12
PT2  0.09
PT3  0.05
MM  0
SAISIR "Donner le nombre de clients concernés " ,NB
POUR I DE 1 A NB
AFFICHER "Donner le nom du client "
SAISIR NOM
AFFICHER "Donner l'ancien index compteur "
SAISIR AI
AFFICHER "Donner le nouvel index compteur "
SAISIR NI
SI NI<AI
ALORS
TANT QUE NI < AI FAIRE
AFFICHER "ERREUR DE SAISIE : nouvel index inférieur à l'ancien ! RECOMMENCER "
AFFICHER "Donner le nouvel index compteur "
SAISIR NI
FIN TANT QUE
FINSI
NBK  NI-AI
SI NBK < 100
ALORS
MTF  0.8*NBK
SINON
SI NBK <250
ALORS MTF  (PT1 * 100) + (PT2 * (NBK -100))
SINON MTF  (PT1*100)+(PT2*150)+PT3*(NBK-250)
FINSI
FINSI
MTF MTF+ABO
MM  MM + MTF
AFFICHER "Le client ",NOM," consomme ",NBK, " et doit payer ",MTF, " euros."
FIN POUR
AFFICHER "Le montant total payé par les clients est ",MM
FIN
TAF :
- Expliquer la méthode utilisée pour éviter les erreurs de saisie du nouvel index à l'aide d'un exemple illustré.
- Tester avec EDF5971.ALG
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 17
L'informaticien de l'entreprise voudrait structurer le programme réalisé en détachant la saisie des index et la
vérification du nouvel index. Il vous soumet sa solution pour que vous l'étudiez.
algo EDF597pr
var nom : chaîne
AI, NI, I, NB : entier
MM, MTF, PT1, PT2, PT3, ABO, NBK : Réel
DEBUT
ABO  11
PT1  0.12
PT2  0.09
PT3  0.05
MM  0
SAISIR "Donner le nombre de clients concernés " ,NB
POUR I DE 1 A NB
AFFICHER "Donner le nom du client "
SAISIR NOM
INDEX(AI,NI)
NBK  NI-AI
SI NBK < 100
ALORS
MTF  PT1*NBK
SINON
SI NBK <250
ALORS MTF  (PT1 * 100) + (PT2 * (NBK -100))
SINON MTF  (PT1*100)+(PT2*150)+PT3*(NBK-250)
FINSI
FINSI
MTF MTF+ABO
MM  MM + MTF
AFFICHER "Le client ",NOM," consomme ",NBK, " et doit payer ",MTF, " euros."
FIN POUR
AFFICHER "Le montant total payé par les clients est ",MM
FIN
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 18
PROCEDURE INDEX( s V1 : entier ; s V2 : entier)
DEBUT
AFFICHER "Donner l'ancien index compteur "
SAISIR V1
AFFICHER "Donner le nouvel index compteur "
SAISIR V2
SI V2<V1
ALORS
TANT QUE V2 < V1 FAIRE
AFFICHER "ERREUR DE SAISIE : nouvel index inférieur à"&
AFFICHER " l'ancien ! RECOMMENCER"
AFFICHER "Donner le nouvel index compteur "
SAISIR V2
FIN TANT QUE
FINSI
FIN
TAF : Répondre aux questions qui suivent.
- Qu'est-ce qui identifie la procédure ?
- Où est placée la procédure par rapport à l'algorithme principal ?
- Que fait la procédure ?
- Quels sont les éléments variables utilisés par la procédure ?
- Comment est utilisée la procédure dans l'algorithme principal ?
- Comment se fait le passage de :
* l'algorithme principal --> la procédure :
* la procédure --> l'algorithme principal :
- Exécuter le programme EDF597PR.ALG en exécution Pas à Pas pour vérifier comment fonctionne la
procédure INDEX
- Exécuter le programme EDF597P2.ALG en exécution Pas à Pas (vous pouvez accélérer....) et expliquer le
fonctionnement de la procédure TRAIT (visualisez le passage de variables).
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 19
222 Faire
Une compagnie d'assurance assure ses véhicules de la façon suivante :
Jusqu'à 4 CV
De 5 et 6 CV
De 7 à 9 CV
A partir de 10 CV
800 € par an
1 000 € par an
1 300 € par an
1 700 € par an
De plus, elle a divisé le territoire national en différentes régions qu'elle appelle Groupes, et applique certaines
majorations en fonction du Groupe auquel appartient le véhicule à assurer :
Groupe 1 : majoration de 10 %
Groupe 2 : majoration de 20 %
Groupe 3 : majoration de 15 %
Groupe 4 : majoration de 5 %
Groupes 5, 6 , 7 : pas de majoration
TAF 1 : Elaborer la solution algorithmique qui permettra de connaître pour un véhicule donné sa prime
d’assurance :
- réalisation "à la main" des objectifs (vous devez élaborer un jeu d'essai)
- lexique
- algorithme
- trace
Nota : vous considérerez un nombre donné de véhicules
TAF 2 : Modifier l’algorithmique de manière à utiliser une procédure pour la détermination de la prime selon
les groupes.
TAF 3 : Modifier l’algorithmique de manière à utiliser de plus une procédure pour la détermination du tarif
selon la puissance du véhicule.
223 Conclure
224 Exploiter
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 20
3 La gestion des données
31 Les données internes (tableaux de variables)
311 Observer
Objectif : On désire améliorer le traitement des consommations d'électricité (voir point 143 - énoncé des cas
point 123) car l’employé qui utilise le programme tiré de l’algorithme trouve que le temps d’immobilisation
devant le poste informatique est trop long. Il serait bien plus intéressant de saisir d’abord tous les éléments
relatifs aux clients, puis de laisser l’ordinateur calculer les montants et afficher (imprimer) les résultats obtenus
: ainsi, pendant ce temps, il pourrait aller boire un café ! Pour cela, un nouvel algorithme a été élaboré.
algo EDF6 tableaux
var
Numcli[20], Nomcli[20] : tableau chaîne
AI[20], NI[20], NBK[20] : tableau entier
I, N : entier
PT1, PT2, PT3, ABO, TK, MOYKW, TT : Réel
MTF[20] : tableau réel
DEBUT
AFFICHER "Donner le prix de l'abonnement "
SAISIR ABO
AFFICHER "Donner le prix de la tranche 1 "
SAISIR PT1
AFFICHER "Donner le prix de la tranche 2 "
SAISIR PT2
AFFICHER "Donner le prix de la tranche 3 "
SAISIR PT3
I0
TT  0
TK  0
SAISIR "DONNER LE NOMBRE DE CLIENTS (20 maximum) ", N
‘ *************************************************************
Saisie
' *************************************************************
TANT QUE I<N FAIRE
I  I +1
AFFICHER "Donner le numéro du client "
SAISIR NUMCLI[I]
AFFICHER "Donner le nom du client "
SAISIR NOMCLI[I]
AFFICHER "Donner l'ancien index compteur "
SAISIR AI[I]
AFFICHER "Donner le nouvel index compteur "
SAISIR NI[I]
FIN TANT QUE
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 21
' *************************************************************
' Calcul du montant dû par chaque client + cumul
' *************************************************************
POUR I DE 1 A N
NBK[I]  NI[I]-AI[I]
SI NBK[I] < 100
ALORS MTF[I]  PT1*NBK[I]
SINON
SI NBK[I] <250
ALORS MTF[I]  (PT1 * 100) + PT2 * (NBK[I] -100)
SINON MTF[I]  (PT1*100)+(PT2*150)+PT3*(NBK[I]-250)
FINSI
FINSI
MTF[I]  MTF[I]+ABO
TK  TK + NBK[I]
TT  TT + MTF[I]
FIN POUR
FIN
TAF :
- Donner la structure globale de l’algorithme.
- Expliquer à l’aide d’une trace le fonctionnement de la boucle de saisie : vous visualiserez vos variables sous
forme de "cases mémoires" comme en page suivante.
- Pourquoi avoir mis 20 comme dimension des variables de tableau ? Que faire si l'on prévoit 100 clients ?
- Compléter l'algorithme avec les affichages.
- Vérifier votre travail en utilisant le programme EDF697E.ALG que vous aurez soin de compléter.
Nota : avec ALG'EXEC, les indices se mettent entre crochets (Alt Gr ( pour [ Alt Gr ) pour ] ).
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 22
I
N
PT1
TK
TT
MOYKW
Numcli (20)
Numcli (1)
Numcli (2)
Numcli (3)
Numcli (4)
Numcli (5)
Numcli (6)
Numcli (7)
Numcli (8)
........
Numcli (20)
........
Nomcli(20)
Nomcli (1)
Nomcli (2)
Nomcli (3)
Nomcli (4)
Nomcli (5)
Nomcli (6)
Nomcli (7)
Nomcli (8)
........
Nomcli (20)
NI(20)
NI (1)
NI (2)
NI (3)
NI (4)
NI (5)
NI (6)
NI (7)
NI (8)
........
NI (20)
........
PT2
........
........
ABO
AI(20)
AI (1)
AI (2)
AI (3)
AI (4)
AI (5)
AI (6)
AI (7)
AI (8)
........
AI (20)
NBK(20)
NBK (1)
NBK (2)
NBK (3)
NBK (4)
NBK (5)
NBK (6)
NBK (7)
NBK (8)
........
NBK (20)
PT3
........
MTF(20
MTF (1)
MTF (2)
MTF (3)
MTF (4)
MTF (5)
MTF (6)
MTF (7)
MTF (8)
........
MTF (20)
........
312 Faire
TAF : Reprendre l'algorithme de l'exercice 5 et réaliser un traitement par lots des différents travaux en
envisageant des lots de 25 sinistres maximum.
- Donner la structure globale de l’algorithme.
313 Observer
Votre ami informaticien vous soumet le programme EDF6972 qu'il a réalisé et qu'il considère comme utilisant
le même concept et offrant les mêmes avantages que le programme EDF697 : il peut aller boire son café
tranquille.
algo EDF6 version 2 tableaux
var
Numcli[20], Nomcli[20] : tableau chaîne
IND[20,2], NBK[20] : tableau entier
I, N : entier
PT1, PT2, PT3, ABO, TK, MOYKW, TT : Réel
MTF[20] : tableau réel
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 23
DEBUT
AFFICHER "Donner le prix de l'abonnement "
SAISIR ABO
AFFICHER "Donner le prix de la tranche 1 "
SAISIR PT1
AFFICHER "Donner le prix de la tranche 2 "
SAISIR PT2
AFFICHER "Donner le prix de la tranche 3 "
SAISIR PT3
I0
TT  0
TK  0
SAISIR "DONNER LE NOMBRE DE CLIENTS (20 maximum) ", N
‘ *************************************************************
Saisie
' *************************************************************
TANT QUE I<N FAIRE
I  I +1
AFFICHER "Donner le numéro du client "
SAISIR NUMCLI[I]
AFFICHER "Donner le nom du client "
SAISIR NOMCLI[I]
AFFICHER "Donner l'ancien index compteur "
SAISIR IND[I,1]
AFFICHER "Donner le nouvel index compteur "
SAISIR IND[I,2]
FIN TANT QUE
' *************************************************************
' Calcul du montant dû par chaque client + cumul
' *************************************************************
POUR I DE 1 A N
NBK[I]  IND[I,2] - IND[I,1]
SI NBK[I] < 100
ALORS MTF[I]  PT1*NBK[I]
SINON
SI NBK[I] <250
ALORS MTF[I]  (PT1 * 100) + PT2 * (NBK[I] -100)
SINON MTF[I]  (PT1*100)+(PT2*150)+PT3*(NBK[I]-250)
FINSI
FINSI
MTF[I]  MTF[I]+ABO
TK  TK + NBK[I]
TT  TT + MTF[I]
FIN POUR
‘ *************************************************************
' Affichage des éléments relatifs à chaque client
' *************************************************************
POUR I DE 1 A N
AFFICHER "Le client ",NOMCLI[I]," consomme ",NBK[I], " et doit payer ",MTF[I]
FIN POUR
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 24
‘ *************************************************************
' Affichage des éléments de synthèse
' *************************************************************
MOYKW TK / I
AFFICHER "La moyenne des KW/H consommée est de ", MOYKW
AFFICHER "Le montant total payé par les clients est de ", TT," €"
FIN
TAF : Noter les modifications entre cet algorithme et celui du point 311. Visualiser ces changements en
réalisant une trace de l'algorithme (voir énoncé point 123) dans un cadre similaire à celui de la page 23.
- Ouvrir le programme EDF6972 et ajouter une section permettra d'afficher le contenu de la nouvelle variable.
314 Faire
Votre ami informaticien pense qu'on pourrait également utiliser la même variable pour stocker la
consommation.
TAF : Réaliser ce programme à partir du programme que vous venez de réaliser.
315 Conclure
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 25
316 Exploiter
Le gérant d'un bowling assure la facturation des parties jouées à l'aide de l'algorithme ci-dessous.
algo BOWLING
VAR nom, continue : chaîne
abonne, nbpart : entier
T[3] : tableau entier
total : Réel
DEBUT
T[1]  6
T[2]  10
T[3]  14
continue  "O"
TANTQUE MAJ(continue) = "O"
AFFICHER "Donner votre nom "
SAISIR nom
AFFICHER "Taper 1 si abonné, 0 si non abonné"
SAISIR abonne
AFFICHER "Donner le nombre de parties jouées "
SAISIR nbpart
Total  T[nbpart]
SI abonne = 1
ALORS total  total - (total*0.1)
FINSI
AFFICHER nom," qui a fait ",nbpart," parties doit payer ",total, " euros."
SAISIR "autre joueur ? (O/N)",continue
FINTANT QUE
FIN
TAF :
- Expliquer les règles de gestion de la facturation utilisée par le Bowling.
- Plusieurs personnes ont voulu jouer 4 et 5 parties. Le gérant a donc complété son tarif : 4 parties --> 17 € ;
5 parties --> 20 €. Modifiez l'algorithme en conséquence.
- Le gérant voudrait maintenant créer deux sortes d'abonnés : le normal qui aurait droit à une réduction de 10 %,
le super qui aurait droit à 20 % de réduction. Modifiez l'algorithme en conséquence.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 26
32 Les données externes (fichiers)
321 Observer
Objectif : On désire toujours améliorer le traitement des consommations d'électricité (voir point 143 - énoncé
du cas point 123). L'autre jour, la cafetière a créé un court circuit en plein traitement : il a fallu tout ressaisir ! Il
serait bien plus intéressant de stocker les informations relatives aux clients afin d'éviter ce genre de problème !
Dans le but de boire son café enfin tranquille tout en ayant le loisir de faire disjoncter l'ordinateur si cela est
nécessaire, un nouvel ensemble d'algorithmes a été élaboré.
algo EDFCLED création clients et vérification - accès direct
FICHIER FCLIENT
en organisation indexée
accès direct
clef = Numclt
ENREGISTREMENT CLIENT
Numclt : chaîne(4)
Nomclt : chaîne(20)
Ait, Nit : entier
FIN ENREGISTREMENT
VAR
Rep : chaîne(1)
I, N : entier
DEBUT
I0
SAISIR "DONNER LE NOMBRE DE CLIENTS (20 maximum) ", N
' *************************************************************
' Écriture
' *************************************************************
OUVRIR FCLIENT EN LECTURE/ECRITURE
TANT QUE I<N FAIRE
I  I +1
AFFICHER "Donner le numéro du client "&;SAISIR Numclt
LIRE client avec clef = Numclt
SI TROUVE(CLIENT)
ALORS
AFFICHER "Le nom du client est ", Nomclt, "existe déjà "
AFFICHER "Vous allez devoir saisir à nouveau les index"
AFFICHER "Donner l'ancien index "&;SAISIR Ait
AFFICHER "Donner le nouvel index "&;SAISIR Nit
REECRIRE CLIENT
SINON
AFFICHER "Donner le nom du client "&;SAISIR Nomclt
AFFICHER "Donner l'ancien index "&;SAISIR Ait
AFFICHER "Donner le nouvel index "&;SAISIR Nit
ECRIRE CLIENT
FINSI
FIN TANT QUE
FERMER FCLIENT
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 27
' *************************************************************
' Lecture
' *************************************************************
OUVRIR FCLIENT en LECTURE
Rep  "O"
TANT QUE Rep = "O" FAIRE
LIRE CLIENT SUIVANT
SI TROUVE(CLIENT)
ALORS
AFFICHER "Le numéro du client ",Numclt
AFFICHER "Le nom du client est ", Nomclt
AFFICHER "L'ancien index est ", Ait
AFFICHER "Le nouvel index est ", Nit
SINON
Rep  "N"
FINSI
FIN TANT QUE
FERMER FCLIENT
FIN
Nota : Le fichier (ou table) FCLIENT est stocké sur disque dur.
TAF :
- Comment est décrit un fichier ? Appuyez-vous sur l'exemple donné dans l'algorithme.
- Décrire les opérations permettant l’écriture : vous mettrez l'accent sur les opérations réalisées avec FCLIENT.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 28
- Présenter la trace du traitement de saisie (avec le contenu du fichier FCLIENT donc) sachant que :
* au départ, FCLIENT est le suivant :
Numéro
1012
Nom
Merlin
Ancien index
0
Nouvel index
22
Ancien index
22
10 800
1 150
Nouvel index
220
12 200
1 850
* la secrétaire a les clients suivants à saisir :
Numéro
1012
1028
1044
Nom
Merlin
Lench
Anteur
Saisie
I
N
Numclt
Numclt
Nomclt
FCLIENT
Nomclt
Ait
Ait
Nit
Nit
- En vous appuyant sur les enregistrements de FCLIENT que vous venez de définir, décrire les opérations
permettant la lecture : vous mettrez l'accent sur les opérations réalisées avec FCLIENT.
Nota : comme lorsque vous ouvrez une table sous ACCESS, le "pointeur" est sur le premier enregistrement
lorsque l'on ouvre un fichier.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 29
Objectif : Vous avez parfaitement compris le principe de fonctionnement des fichiers externes : l'informaticien
vous laisse maintenant carte blanche pour finir le programme EDF897E.ALG qui intègre les fichiers externes
pour gérer la facturation de la consommation d'électricité aux clients.
TAF :
- Expliquer le fonctionnement du programme EDF897E.ALG. Vous intégrerez des commentaires dans le
programme permettant de séparer les différentes parties. Quel avantage par rapport au programme
EDF697.ALG par exemple ?
- Expliquer les différences entre les programmes EDF897E.ALG et EDF997.ALG.
322 Faire
TAF : reprenez le programme réalisé au point 222 (calcul de prime d'assurance de véhicule) pour utiliser un
fichier FVEHI qui stockera les éléments du véhicule, y compris la prime à payer.
Créer parallèlement un programme qui permette de modifier, créer, lire les véhicules du fichier FVEHI (pour
par exemple qu'un véhicule change de groupe, ou que l'on corrige une erreur de saisie du nombre de chevaux
fiscaux).
Il est conseillé de réfléchir à la manière la plus conviviale de procéder (un opérateur peut ne vouloir que lire, et
pas forcément créer un véhicule en cas d'erreur de saisie ; il peut aussi vouloir changer le groupe, ou le nombre
de chevaux, ou les deux).
323 Conclure
324 Exploiter
TAF : reprenez le programme réalisé au point 316 (Bowling) pour utiliser un fichier FABO qui dans une partie
gérera les joueurs (création et modification, lecture), puis dans une seconde partie gérera les parties jouées et le
montant à payer.
Nota : parties jouées et montant à payer peuvent être intégrés au fichier FABO.
______________________________________________________________________________________________
Louis Déroche - Lycée Albert Thomas - Roanne - Terminale STT IG - Algorithmique : support de cours page 30
Téléchargement