Finsi - Free

publicité
ALGORITHMES - EXERCICES
Exercice I :
L’entreprise emploie des commerciaux qui vont à la rencontre des clients pour connaître leurs
besoins. En fin de mois, elle rembourse les frais de déplacements des 10 commerciaux d’après le tarif
suivant calculés par tranche et dégressif :
Nombre de kilomètres parcourus
De 0 à 1 000
Entre 1 001 et 2 500
Entre 2 501 et 5 000
Au delà de 5 000
Indemnité kilométrique
2,00 F
1,50 F
1,20 F
1,00 F
Travail à faire :
1) Construire l’algorithme permettant de calculer le montant d’indemnités à rembourser à chaque
représentant, ainsi que le montant total d’indemnités kilométriques versé à l’ensemble des
représentants pour un mois donné.
2) L’entreprise devra t’elle payer des charges sociales sur ces indemnités kilométriques ?
Exercice 2 :
TRAMBOUZE SA fabrique des outils et consommables destinés aux métiers du bâtiment.
Elle vend ses articles à trois catégories de clients : les grossistes, les détaillants et les particuliers.
Le comptable a commencé à construire un algorithme destiné à calculer le montant net des
commandes.
Il vous fournit en Annexe 1 son projet accompagné des règles de gestion.
Pour éventuellement vous aider dans votre réflexion, il vous fournit un extrait des commandes en
cours.
Numéro
Catégorie
Brut
1024
G
20 000,50
1025
D
18 420,10
1026
D
9 100,50
1027
P
1 850,00
1028
P
2 040,00
1029
D
12 000,00
1030
G
88 000,00
1031
P
2 000,00
Travail à faire 1
1. Complétez l’algorithme de l’Annexe 1 pour qu’il permette d’obtenir le montant net d’une
commande.
Le directeur aurait voulu avoir des statistiques, par exemple le nombre de détaillants ayant bénéficié
d’une remise.
Travail à faire 2
1
ALGORITHMES - EXERCICES
2. Rappeler les caractéristiques des différentes formes de structures itératives que l’on peut mettre
en œuvre dans un algorithme.
3. Compléter votre algorithme pour qu’il permette de connaître, de plus, pour un nombre de
commandes donné Nbcommande, le nombre de détaillants ayant bénéficié de la remise.
ANNEXE 1
Règles de gestion
Une remise de 10 % est accordée aux grossistes pour toute commande qui atteint ou dépasse 50 000 F.
Une remise de 5 % est accordée aux détaillants pour toute commande qui atteint ou dépasse 10 000 F.
Une remise de 2 % est accordée aux particuliers pour toute commande qui dépasse 2 000 F.
algo commande
VAR
Numcom
: chaine *// Numcom : numéro de la commande
Codecat
: chaine *// G pour Grossiste : D pour Détaillant ; P pour Particulier
Brut, Remise, Tauxremise, Net
: Réel
DEBUT
| SAISIR
*// Détermination du taux de remise éventuel et montant net de la commande
| AFFICHER
2
ALGORITHMES - EXERCICES
FIN
3
ALGORITHMES - EXERCICES
CORRIGE
Exercice I :
1)
Code
Nom
i
NbKm
InKm
TotIndKm
Libellé
Nom du représentant
Compteur
Nombre de km parcourus par
représentant
Indemnité Km par représentant
Total versé aux représentants
Type
Chaine
Entier
Entier
réel
Réel
Programme Indemnités Kilométriques
Var
Nom : chaine
i, Nbkm : entier
InKm, TotIndKm : réel
Début
Nbkm<-0
InKm<-0
TotIndKm<-0
Pour i:=1 à 10
Afficher "Nom du representant"
saisir Nom
Afficher "Nombre de Km parcourus"
saisir Nbkm
si Nbkm>1000
Alors si Nbkm>2500
Alors
si Nbkm>5000
Alors
InKm<-(2000+2250+3000)+((NbKm-5000)*1)
sinon
InKm<-(2000+2250)+((NbKm-2500)*1.20)
Finsi
Sinon InKm<-2000+((NbKm-1000)*1.50)
Finsi
Sinon InKm<-NbKm*2
Finsi
afficher "Indemnités à payer ", InKm
TotIndKm<-TotIndKm + InKm
Fin pour
Afficher "Montant total à payer", TotIndKm
Fin
2) L’entreprise ne versera pas de charges sociales car il ne s’agit pas de charges salariales mais de
remboursement de frais de déplacement.
Exercice 2 :
Ci-après une proposition d’algorithme. Le calcul de la remise peut se réaliser dans chacune des
alternatives. Les structures alternatives peuvent être imbriquées.
4
ALGORITHMES - EXERCICES
algo commande
VAR
Numcom, Codecat
Brut, Remise, Tauxremise, Net
: chaine
: réel
DEBUT
| SAISIR Numcom, Brut, Codecat
| SI Codecat = "G"
| | ALORS SI Brut >= 50000
| |
| ALORS Tauxremise  0.1
| |
| SINON Tauxremise  0
| |
FINSI
| FINSI
| SI Codecat = "D"
| | ALORS SI Brut >= 10000
| |
| ALORS Tauxremise  0.05
| |
| SINON Tauxremise  0
| |
FINSI
| FINSI
| SI Codecat = "P"
| | ALORS SI Brut > 2000
| |
| ALORS Tauxremise  0.01
| |
| SINON Tauxremise  0
| |
FINSI
| FINSI
| Remise  Brut * Tauxremise
| Net  Brut - Remise
| AFFICHER Numcom, Brut, Remise, Net
FIN
ou de façon plus efficace
DEBUT
| Tauxremise  0
| SAISIR Numcom, Brut, Codecat
| SI Codecat = "G"
| | ALORS SI Brut >= 50000
| |
| ALORS Tauxremise  0.1
| |
FINSI
| FINSI
| SI Codecat = "D"
| | ALORS SI Brut >= 10000
| |
| ALORS Tauxremise  0.05
| |
FINSI
| FINSI
| SI Codecat = "P"
| | ALORS SI Brut > 2000
| |
| ALORS Tauxremise  0.01
| |
FINSI
| FINSI
| Remise  Brut * Tauxremise
| Net  Brut - Remise
| AFFICHER Numcom, Brut, Remise, Net
FIN
2.
TANT QUE… FIN TANT QUE
RÉPÉTER… JUSQU'A
5
ALGORITHMES - EXERCICES
POUR… FIN POUR (ne nécessite pas d’incrémentation de compteur)
Nota : on peut exiger plus de détail, style « saisie de l’élément de référence de la boucle avant la boucle, modification (incrémentation le
plus souvent) de l’élément de référence dans la boucle, … »
Compléter votre algorithme pour qu’il permette de connaître, de plus, pour un nombre de
commandes donné Nbcommande, le nombre de détaillants ayant bénéficié de la remise.
Nécessite l’ajout d’une structure itérative avec

un compteur des commandes : I dans la solution

un compteur des détaillants : NbDetail dans la solution ; ce compteur sera incrémenté uniquement lorsque le détaillant bénéficie
de la remise
algo commande iération
VAR
Numcom, Codecat
Nb commande, I, NbDetail
Brut, Remise, Tauxremise, Net
: chaine
: entier
: réel
DEBUT
| I:= 0
| NbDetail  0
| SAISIR Nbcommande
| POUR I de 1 A Nbcommande
| | SAISIR Numcom, Brut, Codecat
| | SI Codecat = "G"
| | | ALORS SI Brut >= 50000
| | |
| ALORS Tauxremise  0.1
| | |
| SINON Tauxremise  0
| | |
FINSI
| | FINSI
| | SI Codecat = "D"
| | | ALORS SI Brut >= 10000
| | |
| ALORS Tauxremise  0.05
| | |
|
NbDetail  NbDetail + 1
| | |
| SINON Tauxremise  0
| | |
FINSI
| | FINSI
| | SI Codecat = "P"
| | | ALORS SI Brut >2000
| | |
| ALORS Tauxremise  0.01
| | |
| SINON Tauxremise  0
| | |
FINSI
| | FINSI
| | Remise  Brut * Tauxremise
| | Net  Brut - Remise
| | AFFICHER Numcom, Brut, Remise, Net
| FIN POUR
| AFFICHER NbDetail
FIN
ou de façon plus efficace
DEBUT
| I0
| NbDetail  0
| SAISIR Nbcommande
| POUR I de 1 A Nbcommande
6
ALGORITHMES - EXERCICES
| | Tauxremise  0
| | SAISIR Numcom, Brut, Codecat
| | SI Codecat = "G"
| | | ALORS SI Brut >= 50000
| | |
| ALORS Tauxremise  0.1
| | |
FINSI
| | FINSI
| | SI Codecat = "D"
| | | ALORS SI Brut >= 10000
| | |
| ALORS Tauxremise  0.05
| | |
|
NbDetail  NbDetail + 1
| | |
FINSI
| | FINSI
| | SI Codecat = "P"
| | | ALORS SI Brut >2000
| | |
| ALORS Tauxremise  0.01
| | |
FINSI
| | FINSI
| | Remise  Brut * Tauxremise
| | Net  Brut - Remise
| | AFFICHER Numcom, Brut, Remise, Net
| FIN POUR
| AFFICHER NbDetail
FIN
7
Téléchargement