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 I0 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 II+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 I0 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 II+1 Totpoch := Totpoch + Nbexemplaires AFFICHER Numcommande, Numpochette, Nbexemplaires, Prix, Prixcom FIN TANT QUE AFFICHER Totpoch FIN 6