Documente Academic
Documente Profesional
Documente Cultură
Chapitre 14
La logique algorithmique
129
14. La logique algorithmique © Nathan
15
Application 2 • Compléter un algorithme
À l’aide de l’annexe 1, compléter l’algorithme permettant de déterminer et
d’afficher le montant TTC des prestations pour un client donné (annexe 2).
Algorithme : Détermination du montant TTC de la prestation de nettoyage
LEXIQUE
Surf Réel {Surface à nettoyer (en m2)}
Durée Réel {Durée budgétée de la prestation de nettoyage (en h)}
CtUnit Réel {Coût unitaire HT de base de la prestation horaire}
Coef Réel {Coefficient de technicité de la prestation}
PrestHT Réel {Montant total HT des prestations}
PrestTTC Réel {Montant total TTC des prestations}
TxTva Réel {Taux normal de TVA}
DÉBUT
AFFICHER "Entrer la surface à nettoyer (en m 2)"
SAISIR Surf
AFFICHER "Entrer la durée de la prestation (en h)"
SAISIR Durée
AFFICHER "Entrer le coût unitaire HT de base de la prestation"
SAISIR CtUnit
TxTva 0,20
Coef 0,00
PrestHT 0,00
PrestTTC 0,00
SI Surf < 10,00
ALORS Coef 1,00
SINON SI Surf < 50,00
ALORS Coef 1,50
SINON SI Surf < 100,00
ALORS Coef 2,00
SINON Coef 2,50
FINSI
FINSI
FINSI
SI Durée <= 20,00
ALORS PrestHT Durée × CtUnit × Coef
SINON PrestHT Durée × CtUnit × Coef × 0,90
FINSI
PrestTTC PrestHT × (1 + TxTva)
AFFICHER "Le montant TTC des prestations est de : " PrestTTC " € "
FIN
130
14. La logique algorithmique © Nathan
15
Application 3 • Rédiger un algorithme
Rédiger l’algorithme permettant de déterminer et d’afficher le nombre de
points de fidélité cumulés lors d’une réservation.
Les données seront saisies. La gestion des erreurs de saisie n’est pas
demandée. Utiliser les variables suivantes : MontantRésa, NBTrajets,
EnregtLigne, CBCie et Nbpts.
Algorithme : Calcul du nombre de points de fidélité obtenu
LEXIQUE
MontantRésa Réel {Montant de la réservation par passager}
NBTrajets Entier {Nombre de trajets réservés (1 ou 2)}
EnregtLigne Booléen {Enregistrement en ligne Oui/Non (O/N)}
CBCie Booléen {Carte bleue compagnie Oui/Non (O/N)}
Nbpts Entier {Nombre de points de fidélité}
DÉBUT
AFFICHER "Montant de la réservation :"
SAISIR MontantRésa
AFFICHER "Nombre de trajets effectués (1 ou 2) :"
SAISIR NBTrajets
AFFICHER "Enregistrement en ligne (O/N) :"
SAISIR EnregtLigne
AFFICHER "Paiement avec CB de la compagnie (O/N) :"
SAISIR CBCie
Nbpts 0
SI MontantRésa >= 50,00
ALORS Nbpts 15
SINON Nbpts 5
FINSI
SI EnregtLigne = "O"
ALORS Nbpts Nbpts + (10 × NBTrajets)
SINON Nbpts Nbpts
FINSI
SI CBCie = "O"
ALORS Nbpts Nbpts + 10
SINON Nbpts Nbpts
FINSI
AFFICHER "Le nombre de points de fidélité cumulés est de :" Nbpts
FIN
131
14. La logique algorithmique © Nathan
15
DÉBUT
AFFICHER "NumCatClt (ou Fin pour terminer)"
SAISIR NumCatClt
TANT QUE NumCatClt <> "Fin"
TauxRemClt 0,00
SI NumCatClt = "AUT"
ALORS TauxRemClt 0,00
SINON SI NumCatClt = "CTR"
ALORS TauxRemClt 0,02
SINON SI NumCatClt = "ECO"
ALORS TauxRemClt 0,075
SINON SI NumCatClt = "ENS"
ALORS TauxRemClt 0,05
SINON SI NumCatClt = "ETU"
ALORS TauxRemClt 0,05
SINON SI NumCatClt = "LYC"
ALORS TauxRemClt
0,08
SINON AFFICHER
"Numéro
catégorie client
erronée"
FINSI
FINSI
FINSI
FINSI
FINSI
FINSI
AFFICHER "Le taux de remise accordé est de :" TauxRemClt
AFFICHER "NumCatClt (ou Fin pour terminer)"
SAISIR NumCatClt
FIN TANT QUE
FIN
132
14. La logique algorithmique © Nathan
15
Application 5 • Rédiger un algorithme
1. Rédiger l’algorithme permettant de calculer le montant de la remise
annuelle accordée à une entreprise à partir du chiffre d’affaires annuel
référencé dans la base de données. Au terme du traitement décrit dans
l’algorithme, la valeur de la remise annuelle sera mise à jour dans la base.
Utiliser les variables suivantes : CAHT et RemAnn.
Algorithme : Calcul du montant de la remise annuelle accordée
à une entreprise
LEXIQUE
CAHT Réel {CA annuel de l’entreprise}
RemAnn Réel {Montant de la remise annuelle}
DÉBUT
RemAnn 0,00
LIRE CAHT
SI CAHT <= 15 000,00
ALORS RemAnn 0,00
SINON SI CAHT<=30 000,00
ALORS RemAnn (CAHT-15 000,00) × 0,02
SINON SI CAHT <= 60 000,00
ALORS RemAnn 300,00 + (CAHT-30 000,00) ×
0,03
SINON RemAnn 1 200,00 + (CAHT-60 000,00) ×
0,05
FINSI
FINSI
FINSI
ECRIRE RemAnn
FIN
2. Tester l’algorithme à partir du jeu d’essai suivant :
Jeu d’essai
CAHT en € RemAnn
10 000,00 0,00
20 000,00 (20 000,00 – 15 000,00) × 0,02 = 100,00
40 000,00 300,00 + (40 000,00-30 000,00) × 0,03 = 600,00
60 000,00 300,00 + (60 000,00-30 000,00) × 0,03 = 1 200,00
100 000,00 1 200,00 + (100 000,00-60 000,00) × 0,05= 3 200,00
133
14. La logique algorithmique © Nathan
15
3. Modifier l’algorithme rédigé en question 1 afin de calculer le montant de la
remise annuelle accordée à chacune des entreprises référencées dans la
base. Utiliser les variables suivantes : CAHT, RemAnn, NumCli et TypeCli.
Algorithme : Calcul du montant de la remise annuelle accordée
aux entreprises
LEXIQUE
CAHT Réel {CA annuel de l’entreprise}
RemAnn Réel {Montant de la remise annuelle}
NumCli Entier {N° du client}
TypeCli Chaîne {Type de client (Ese ou CE)}
DÉBUT
LIRE NumCli
TANT QUE NumCli <> VIDE
LIRE CAHT, TypeCli
RemAnn 0,00
SI TypeCli = "Ese"
ALORS SI CAHT <= 15 000,00
ALORS RemAnn 0,00
SINON SI CAHT<=30 000,00
ALORS RemAnn (CAHT-15 000,00) × 0,02
SINON SI CAHT <= 60 000,00
ALORS RemAnn 300,00 + (CAHT-
30 000,00) × 0,03
SINON RemAnn 1 200,00 + (CAHT-
60 000,00) × 0,05
FINSI
FINSI
FINSI
SINON RemAnn 0,00
FINSI
ECRIRE RemAnn
LIRE NumCli
FIN TANT QUE
FIN
134
14. La logique algorithmique © Nathan
15
Algorithme : Calcul du coût des leçons particulières
LEXIQUE
Nbre_participants Entier {Nombre de participants (1 ou 2)}
Nbre_leçons Entier {Nombre de leçons}
Durée_leçon Entier {Durée de la leçon}
Tarif_unitaire Réel {Tarif horaire d’une leçon (1 h ou 2 h)}
Cout_leçons Réel {Coût des leçons}
DÉBUT
AFFICHER "Saisir le nombre de participants (1 ou 2) : "
SAISIR Nbre_participants
AFFICHER "Saisir la durée de la leçon (1 h ou 2 h) : "
SAISIR Durée_leçon
AFFICHER "Saisir le nombre de leçons : "
SAISIR Nbre_leçons
Tarif_unitaire 0,00
Cout_leçons 0,00
SI Nbre_participants = 1
ALORS SI Durée_leçon = 1
ALORS Tarif_unitaire 37,00
SINON SI Durée_leçon = 2
ALORS Tarif_unitaire 69,00
SINON AFFICHER "Durée leçon limitée à 2 h."
FINSI
FINSI
SINON SI Nbre_participants = 2
ALORS SI Durée_leçon = 1
ALORS Tarif_unitaire 46,00
SINON SI Durée_leçon = 2
ALORS Tarif_unitaire 84,00
SINON AFFICHER "Durée leçon limitée à
2 h."
FINSI
FINSI
SINON AFFICHER "Le nombre de participants est limité à 2."
FINSI
FINSI
Cout_leçons Tarif_unitaire × Nbre_leçons
AFFICHER "Tarif unitaire :" Tarif_unitaire " €"
AFFICHER "Coût des leçons :" Cout_leçons " €"
FIN
135
14. La logique algorithmique © Nathan
15
2. Tester l’algorithme à partir du jeu d’essai suivant :
Nbre_participants Nbre_leçons Durée_leçon Tarif_unitaire Cout_leçons
1 5 1 37,00 185,00
2 1 1 46,00 46,00
1 2 2 69,00 138,00
2 5 2 84,00 420,00
3 2 1 / /
1 1 3 / /
136
14. La logique algorithmique © Nathan
15
DÉBUT
LIRE NumCde
TANT QUE NumCde <> VIDE
MontantCde 0,00
LIRE NumArticle, DateCde
TANT QUE NumArticle <> VIDE
LIRE FamilleArticle, QtéArticle, PrixArticle
SI DateCde > 20/12/N
ALORS MontantCde QtéArticle × PrixArticle + MontantCde
SINON SI FamilleArticle = "Habillement/chaussure"
ALORS MontantCde QtéArticle × PrixArticle × 0,70 +
MontantCde
SINON SI FamilleArticle = "Linge de maison"
ALORS MontantCde QtéArticle × PrixArticle ×
0,80 + MontantCde
SINON SI FamilleArticle = "Mobilier"
ALORS MontantCde QtéArticle ×
PrixArticle × 0,90 +
MontantCde
SINON MontantCde QtéArticle ×
PrixArticle + MontantCde
FINSI
FINSI
FINSI
FINSI
LIRE NumArticle
FIN TANT QUE
ECRIRE MontantCde
LIRE NumCde
FIN TANT QUE
FIN
137
14. La logique algorithmique © Nathan
15
DÉBUT
AFFICHER "Age du bénéficiaire du forfait : "
SAISIR Age
AFFICHER "Saisir le type de forfait choisi (Journée : 1 ou Saison : 2) : "
SAISIR TypeForfait
Tarif 0,00
SI Age < 12
ALORS Statut "Enfant"
SINON SI Age > 60
ALORS Statut "Senior"
SINON Statut "Adulte"
FINSI
FINSI
SI TypeForfait = 1
ALORS SI Statut = "Adulte"
ALORS Tarif 25,80
SINON SI Statut = "Enfant"
ALORS Tarif 18,70
SINON Tarif 21,40
FINSI
FINSI
SINON SI TypeForfait = 2
ALORS SI Statut = "Adulte"
ALORS Tarif 510,00
SINON SI Statut = "Enfant"
ALORS Tarif 300,00
SINON Tarif 340,00
FINSI
FINSI
SINON AFFICHER "Le type forfait saisi est erroné."
FINSI
FINSI
AFFICHER "Tarif du forfait :" Tarif " € pour 1" Statut
FIN
138
14. La logique algorithmique © Nathan
15
Application 9 • Rédiger un algorithme
À partir des annexes 1 et 2 ci-après, établir l’algorithme permettant de
calculer, d’afficher et d’imprimer sur un ticket le montant d’un abonnement
dont les caractéristiques sont saisies. Utiliser les variables suivantes :
Type_emplact, Durée_abonnt et Montant_abonnt.
Algorithme : Calcul du montant de l’abonnement
LEXIQUE
Type_emplact Chaîne {Type d’emplacement (Libre ou Réservé)}
Durée_abonnt Entier {Durée d’abonnement en jours}
Montant_abonnt Réel {Montant de l’abonnement}
DÉBUT
AFFICHER "Saisir le type d’emplacement (L : Libre ou R : Réservé) :"
SAISIR Type_emplact
AFFICHER "Saisir la durée d’abonnement en jours :"
SAISIR Durée_abonnt
Montant_abonnt 0,00
SI Type_emplact = "R"
ALORS SI Durée_abonnt = 30
ALORS Montant_abonnt 165,00
SINON AFFICHER "Durée d’abonnement non prévue"
FINSI
SINON SI Type_emplact = "L"
ALORS SI Durée_abonnt = 5
ALORS Montant_abonnt 84,00
SINON SI Durée_abonnt = 6
ALORS Montant_abonnt 94,00
SINON SI Durée_abonnt = 7
ALORS Montant_abonnt 104,00
SINON SI Durée_abonnt = 30
ALORS
Montant_abonnt
126,00
SINON AFFICHER
"Durée
d’abonnement
non
prévue"
FINSI
FINSI
FINSI
FINSI
SINON AFFICHER "Type d’emplacement erroné"
FINSI
FINSI
AFFICHER "Montant de l’abonnement : " Montant_abonnt " €"
IMPRIMER Montant_abonnt
139
14. La logique algorithmique © Nathan
15
FIN
140
14. La logique algorithmique © Nathan
15
DÉBUT
AFFICHER "Distance entre lieu de résidence et lieu de remplacement : "
SAISIR Distance
AFFICHER "Nombre de jours de remplacement : "
SAISIR NbJ
TauxIndRemp 0,00
TauxIndRepas 15,00
MontantIndJ 0,00
MontantIndT 0,00
SI Distance < 15,00
ALORS TauxIndRemp 12,50
SINON SI Distance < 30,00
ALORS TauxIndRemp 23,50
SINON SI Distance < 45,00
ALORS TauxIndRemp 30,00
SINON SI Distance < 65,00
ALORS TauxIndRemp 37,00
SINON SI Distance < 85,00
ALORS TauxIndRemp
44,00
SINON TauxIndRemp
50,00
FINSI
FINSI
FINSI
FINSI
FINSI
MontantIndJ TauxIndRemp + (2 × TauxIndRepas)
MontantIndT MontantIndJ × NbJ
AFFICHER "Montant de l’indemnité journalière :" MontantIndJ " €
AFFICHER "Montant de l’indemnité totale :" MontantIndT" €
FIN
141
14. La logique algorithmique © Nathan
15
2. Tester l’algorithme à partir du jeu d’essai fourni dans l’annexe 2.
Jeu d’essai
Distance TauxIndRemp NbJ MontantIndJ MontantIndT
10 km 12,50 2 12,50 + (2 × 15,00) = 42,50 42,50 × 2 = 85,00
100 km 50,00 5 50,00 + (2 × 15,00) = 80,00 80,00 × 5 = 400,00
25 km 23,50 3 23,50 + (2 × 15,00) = 53,50 53,50 × 3 = 160,50
50 km 37,00 3 37,00 + (2 × 15,00) = 67,00 67,00 × 3 = 201,00
40 km 30,00 5 30,00 + (2 × 15,00) = 60,00 60,00 × 5 = 300,00
70 km 44,00 2 44,00 + (2 × 15,00) = 74,00 74,00 × 2 = 148,00
Entraînement à l’examen
À l’aide de l’annexe, présenter l’algorithme permettant de déterminer (et
d’afficher), pour un mois donné, le montant de la mensualité des allocations
familiales (AF) en fonction de :
– Imm : immatriculation du chef de foyer (Oui = O ou Non = N) ;
– Charge : enfant à charge (Oui = O ou Non = N) ;
– AgeFinMois : âge de l’enfant en fin de mois M ;
– AF : mensualité d’allocations familiales ;
– NBHT : nombre d’heures de travail (ou assimilées) du chef de foyer
pendant le mois M.
Algorithme : Calcul du montant des allocations familiales
LEXIQUE
Imm Booléen {Immatriculation du chef de foyer (O/N)}
Charge Booléen {Enfant à charge (O/N)}
AgeFinMois Entier {Age de l'enfant en fin de mois M}
AF Réel {Mensualité d'allocations familiales}
NBHT Réel {Nombre d'heures de travail (ou assimilées) du chef de
foyer pendant le mois M}
142
14. La logique algorithmique © Nathan
15
DÉBUT
SAISIR "Immatriculation du chef de foyer (O/N) :", Imm
SAISIR "Nombre d'heures de travail :", NBHT
AF 0,00
SI Imm = "O"
ALORS TANT QU’il y a des enfants
SAISIR "Enfant à charge (O/N) :", Charge
SI Charge = "O"
SAISIR "Age de l'enfant en fin de mois :" AgeFinMois
ALORS SI AgeFinMois < 3
ALORS AF AF + 120,60
SINON SI AgeFinMois < 6
ALORS AF AF + 180,90
SINON SI AgeFinMois < 10
ALORS AF AF +
217,00
SINON SI AgeFinMois < 21
ALORS AF AF +
253,20
SINON AF AF
FINSI
FINSI
FINSI
FINSI
SINON AF AF
FINSI
FIN TANT QUE
SI NBHT >= 145,00
ALORS AF AF
SINON SI NBHT >= 75,00
ALORS AF AF × NBHT / 145,00
SINON AF 0,00
FINSI
FINSI
SINON AF 0,00
FINSI
AFFICHER "Montant des allocations familiales :" AF " €"
FIN
143
14. La logique algorithmique © Nathan