ALGORITHMES - EXERCICES Exercice n°1 1) Expliquer le

publicité
ALGORITHMES - EXERCICES
Exercice n°1
1) Expliquer le fonctionnement de l’algorithme présenté en ANNEXE.
2) Compléter cet algorithme pour calculer et afficher :
- le total des flux actualisés liés à l’investissement (totfluact)
- la valeur actuelle nette du projet d’investissement (van)
Vous devrez prévoir l’affichage d’un message pour connaître si l’investissement est ou non rentable.
ANNEXE
programme rentinvfon
constantes
txac=12% , txis=33.1/3%
variables
coutinv : réel
duréeinv, i : entier
recette,dépense,amort,fluxtres,fluxtresactu,totfluact,van : réel
bavantis,bapresis,is :réel
DEBUT
AFFICHER "entrer le cout investissement :"
SAISIR coutinv
AFFICHER "entrer la durée de vie investissement : "
SAISIR duréeinv
amort<-coutinv/duréeinv
POUR i:=1 A duréeinv
AFFICHER " recette année ",i
SAISIR recette
AFFICHER "dépense année ",i
SAISIR dépense
bavantis<-recette-dépense-amort
is<-bavantis*txis
bapresis<-bavantis-is+amort
fluxtresactu<-bapresis*(1+txac)^-i
FINPOUR
.........................................................................
.........................................................................
.........................................................................
.........................................................................
........................................................................
........................................................................
........................................................................
FIN
1
ALGORITHMES - EXERCICES
Exercice n°2
LIVRA est un éditeur d’ouvrages scolaires qui applique une grille tarifaire pour les commandes groupées.
Pour automatiser les calculs, l’entreprise a mis au point l’agorithme suivant :
algo pochette qui permet de calculer le prix à payer pour une commande
Variables
Numcommande
Numpochette, Nbexemplaires
Prix
: chaine
: entier
: réel
DEBUT
SAISIR Numcommande, Numpochette, Prix, Nbexemplaires
SI Nbexemplaires >30
ALORS Prix  Prix - (Prix * 0.05)
SINON SI Nbexemplaires > 15
ALORS Prix  Prix - (Prix * 0.03)
SINON SI Nbexemplaires > 10
ALORS Prix  Prix - (Prix * 0.02)
SINON Prix  Prix
FINSI
FINSI
FINSI
FIN
Travail à faire
1 Expliquer les règles de gestion suivies par LIVRA pour sa tarification.
Pour vous aider, vous utiliserez le jeu d’essai suivant pour calculer le prix total à payer pour les commandes :
- commande n° 12 de 25 pochettes n°2 à 57 F l’une
- commande n° 14 de 15 pochettes n°4 à 60 F l’une
- commande n° 18 de 35 pochettes n°1 à 55 F l’une
- commande n° 21 de 10 pochettes n°4 à 60 F l’une
2 Que manque-t-il à cet algorithme pour su’il soit réellement efficace ? Compléter l’algorithme en conséquence.
LIVRA vous soumet un second algorithme ( ANNEXE 1) et vous précise :
« Il nous semble intéressant de traiter plusieurs commandes à la suite : c’est pour cela que nous avons ajouté une
boucle TANT QUE.
Mais nous voudrions ajouter le fait que pour toute commande supérieure à 10 exemplaires, on donne un corrigé
gratuit, et de plus, pour toute commande supérieure à 30 exemplaires, on remet un livret de « fiches logiciels »
gratuit avec chaque exemplaire commandé. »
Travail à faire
3 Expliquer le principe du SELON ... FIN SELON et l’avantage de cette solution par rapport à la saisie qui était
réalisée dans le premier algorithme.
4 Compléter l’algorithme de l’ANNEXE 1 afin de gérer le problème du corrigé gratuit et des livrets de « fiches
logiciels » gratuits.
5 Que manque-t-il si l’on veut de l’algorithme permette de connaître le nombre de pochettes commandées (tous
numéros confondus) après avoir traité toutes les commandes ? Proposer des éléments de solution.
2
ALGORITHMES - EXERCICES
ANNEXE 1
algo pochette qui permet de calculer le prix à payer pour plusieurs commandes
Variables
Numcommande
Numpochette, Nbexemplaires
Prix
: chaine
: entier
: réel
DEBUT
I0
SAISIR N
TANT QUE I < N FAIRE
SAISIR Numcommande, Numpochette, Nbexemplaires
SELON Numpochette
CAS 1:
Prix  55
CAS 2 :
Prix  57
CAS 3:
Prix  58
CAS 4:
Prix  60
FIN SELON
SI Nbexemplaires >30
ALORS Prix  Prix - (Prix * 0.05)
SINON SI Nbexemplaires > 15
ALORS Prix  Prix - (Prix * 0.03)
SINON SI Nbexemplaires > 10
ALORS Prix  Prix - (Prix * 0.02)
SINON Prix  Prix
FINSI
FINSI
FINSI
II+1
FIN TANT QUE
FIN
3
ALGORITHMES - EXERCICES
CORRIGE
Exercice n°1
Question 1 : sur 3 points
Expliquer le fonctionnement de l’algorithme :
- notions de constantes, variables, types de données
- structure itérative
Question 2 : sur 5 points
Compléter l’algorithme
ANNEXE
programme rentinvfon
constantes
txac=12% , txis=33.1/3%
variables
coutinv : réel
duréeinv, i : entier
recette,dépense,amort,fluxtres,fluxtresactu,totfluact,van : réel
bavantis,bapresis,is :réel
DEBUT
AFFICHER "entrer le cout investissement :"
SAISIR coutinv
AFFICHER "entrer la durée de vie investissement : "
SAISIR duréeinv
amort<-coutinv/duréeinv
totfluact<-0
POUR i:=1 A duréeinv
AFFICHER " recette année ",i
SAISIR recette
AFFICHER "dépense année ",i
SAISIR dépense
bavantis<-recette-dépense-amort
is<-bavantis*txis
bapresis<-bavantis-is+amort
fluxtresactu<-bapresis*(1+txac)^-i
totfluact<-totfluact+fluxtresactu
FINPOUR
AFFICHER “ Total des flux actualisés liés à l’investissement est de :”,totfluact
. AFFICHER “ La VAN de l’investissement est de :”,van
SI van >0
alors AFFICHER “ L’investissement est rentable ”
.
sinon AFFICHER “ L’investissement n’est pas rentable ”
FINSI
FIN
4
ALGORITHMES - EXERCICES
Exercice n°2
1 les règles de gestion sont les suivantes :
plus de 30 exemplaires commandés : 5% de réduction
de 16 à 30 exemplaires commandés : 3% de réduction
de 11 à 15 exemplaires commandés : 2% de réduction
entre 1 et 10 exemplaires commandés : aucune réduction
Jeu d’essai
Numcommande
Numpochette
Nbexemplaires
12
2
25
14
4
5
18
1
35
21
4
10
Prix unitaire
55,29
58,8
52,25
60
Prix total
1382,25
882
1828,75
600
2 Que manque-t-il à cet algorithme soit réellement efficace ? calul du prix à payer et affichage.
en variables : Prixcom déclaré en réel
FINSI
Prixcom  Prix * Nbexemplaires
AFFICHER Numcommande, Numpochette, Nbexemplaires, Prix, Prixcom
FIN
3 La structure SELON... FIN SELON évite la saisie du prix et affecte une valeur du prix à chaque pochette : le prix
est affecté selon le numéro de la pochette commandée.
4 Il faut utiliser deux nouvelles variables : le nombre de corrigé envoyé et le nombre de livrets de « fiches
logiciels », dans l’alorithme ci-après Nbcorrigés et Nblivrets.
Nota : on pourra accepter un affichage de phrase de type « corrigé gratuit » au lieu de la variable Nbcorrigés
La difficulté est de penser à indiquer Nblivrets et Nbcorrigés à 0 quand c’est le cas, car sinon, on conserve la
valeur de la commande précédente.
Voir algorithme page suivante.
5 Une variable qui cumule le nombre de pochettes commandées est nécessaire (Totpoch dans l’algorithme page
suivante)
* déclaration de la variable (entier)
* initialisation
* incrémentation dans la boucle (ajout des pochettes commandées)
* affichage
5
ALGORITHMES - EXERCICES
algo pochette
VAR
Numcommande : chaine
Numpochette, Nbexemplaires, Nbcorrigés, Nblivrets, I, N, Totpoch : entier
Prix, Prixcom : Réel
DEBUT
I0
Totpoch  0
SAISIR N
TANT QUE I < N FAIRE
SAISIR Numcommande, Numpochette, Nbexemplaires
SELON Numpochette
CAS 1:
Prix  55
CAS 2:
Prix  57
CAS 3:
Prix := 58
CAS 4:
Prix  60
FIN SELON
SI Nbexemplaires >30
ALORS Prix  Prix - (Prix * 0.05)
Nbcorrigés  1
Nblivrets  Nbexemplaires
SINON SI Nbexemplaires > 15
ALORS Prix  Prix - (Prix * 0.03)
Nbcorrigés  1
Nblivrets  0
SINON SI Nbexemplaires > 10
ALORS Prix  Prix - (Prix * 0.02)
Nbcorrigés  1
Nblivrets  0
SINON Prix  Prix
Nbcorrigés  0
Nblivrets  0
FINSI
FINSI
FINSI
Prixcom  Prix * Nbexemplaires
II+1
Totpoch := Totpoch + Nbexemplaires
AFFICHER Numcommande, Numpochette, Nbexemplaires, Prix, Prixcom
FIN TANT QUE
AFFICHER Totpoch
FIN
6
Téléchargement