Sunteți pe pagina 1din 15

15

Chapitre 14
La logique algorithmique

Application 1 • Compléter un algorithme


Compléter l’algorithme permettant de déterminer si un enfant peut être admis
en crèche (annexe).
Algorithme Admission en crèche
LEXIQUE
Annaiss Entier {Année de naissance}
Année Entier {Année civile en cours}
DÉBUT
Année  AAAA
AFFICHER "Entrer l’année de naissance"
//Le texte à afficher doit être indiqué entre guillemets//
SAISIR Annaiss
//Annaiss étant un nom de variable, il n’est pas indiqué entre guillemets//
SI Annaiss > Année
ALORS
AFFICHER "Année de naissance erronée"
SINON
SI (Année – Annaiss) < 3
ALORS
AFFICHER "Enfant admis en crèche"
SINON
AFFICHER "Enfant non admis en crèche"
FINSI
FINSI
FIN

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

Application 4 • Rédiger un algorithme


Rédiger l’algorithme permettant d’afficher le taux de remise accordé en
fonction des numéros de catégorie saisis.
Les variables retenues sont les suivantes : NumCatClt et TauxRemClt.
Algorithme : Détermination du taux de remise accordé
LEXIQUE
NumCatClt Chaîne {Numéro catégorie client (AUT, CTR, ECO, ENS, ETU,
LYC)}
TauxRemClt Réel {Taux remise client}

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

Application 6 • Rédiger un algorithme


1. À partir de l’annexe ci-après, établir l’algorithme permettant de calculer et
d’afficher le tarif unitaire d’une leçon particulière et le coût des leçons pour
un nombre déterminé de leçons et de participants.
Utiliser les variables suivantes : Nbre_participants, Nbre_leçons,
Durée_leçon, Tarif_unitaire, Cout_leçons.

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 / /

Application 7 • Rédiger un algorithme


Établir l’algorithme de calcul du montant d’une commande client.
Algorithme : Calcul du montant d’une commande
LEXIQUE
NumCde Entier {Numéro de la commande client}
NumArticle Entier {Numéro des articles en catalogue}
FamilleArticle Chaîne {Famille d’articles}
QtéArticle Entier {Quantité de l’article commandé}
PrixArticle Réel {Prix unitaire HT de l’article commandé}
MontantCde Réel {Montant HT de la commande}
DateCde Entier {Date de la commande}

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

Application 8 • Rédiger un algorithme


À partir de l’annexe, établir l’algorithme permettant de calculer et d’afficher le
tarif unitaire du forfait demandé en précisant le statut du bénéficiaire. Utiliser
les variables suivantes : Statut, TypeForfait, Age, Tarif et attribuer le chiffre 1
au forfait à la journée et 2 au forfait à la saison dès la saisie des données.
Algorithme : Calcul du tarif d’un forfait de ski
LEXIQUE
Statut Chaîne {Statut de bénéficiaire du forfait (Adulte, Enfant, Senior)}
TypeForfait Entier {Type du forfait (Journée : 1 ou Saison : 2)}
ou booléen
Age Entier {Age du bénéficiaire du forfait}
Tarif Réel {Tarif du forfait}

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

Application 10 • Rédiger un algorithme


1. À partir de l’annexe 1 ci-après, établir l’algorithme permettant de calculer
et d’afficher le montant de l’indemnité journalière ainsi que le montant de
l’indemnité versée pendant la période de remplacement. Les calculs sont
réalisés à partir des informations saisies par une opératrice téléphonique
chargée de renseigner les formateurs.
Algorithme : Calcul du montant de l’indemnité journalière par remplacement
LEXIQUE
NbJ Entier {Nombre de jours de remplacement}
Distance Réel {Distance résidence – lieu de remplacement}
TauxIndRemp Réel {Taux de l’indemnité journalière}
TauxIndRepas Réel {Taux de l’indemnité repas}
MontantIndJ Réel {Montant de l’indemnité journalière}
MontantIndT Réel {Montant de l’indemnité pour la durée du remplacement}

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

S-ar putea să vă placă și