M'aider à faire un exercice en algorithme [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
23 mars 2010
-
 malek -
Bonjour,

vous pouvez m'aider dans cet exercice s'il vous plait:
__________________________________________________________________________________
une société de transport ferrovier propose à ses clients une réduction de:
40% pour les enfants
10% pour les groupes de plus de 4 adultes
20% pour les groupes de plus de 8 adultes

1-ecrire la fonction: calculer_prix cette fonction reçoit trois paramètre le premier correpond au tarif de base le deuxième au nombre de personne(enfant inclus) le troisième le nombre d'enfants : la fonction doit calculer et retourner le prx à payer en fonction de ses trois paramètres.

14 réponses

Messages postés
814
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 avril 2020
113
Bonjour,

Ce code est en pascal, vous n'avez pas specifié le langage! il n'est pas testé!

function CalculPrix(prixBase: Float, nbrPersonnes: Integer, nbrEnfants: Integer): Float;
var
         nbrAdult: Integer;
         lePrix : Float;
Begin
          nbrAdult := nbrPersonnes - nbrEnfants;
          lePrix := nbrEnfant * prixBase * 0.6;
          
           if nbrAdult < 4 then
                   lePrix := lePrix + (prixBase * nbrAdult)
           else
           begin
                   if nbrAdult < 8 then
                            lePrix := lePrix + (prixBase * nbrAdult * 0.9)
                   else
                             lePrix := lePrix + (prixBase * nbrAdult * 0.8);
           end;

          CalculPrix := lePrix;

end;
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
100
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
22 avril 2015
31
pa dure, mais juste une précision sur "les groupes d'adultes" ... on cocidere que a partir du moment ou il y a 4 adultes (meme sils ne se connaissent pas) ils font partis d'un groupe et bénéficient de la réduction ?
merci pour les réponses que tu m'a apporté
et je vous remercie encore une fois
bay
Messages postés
7
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
23 mars 2010

merci pour les réponses que tu m'a apporté
et je vous remercie encore une fois
bay
Messages postés
100
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
22 avril 2015
31
???

Messages postés
385
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
15 décembre 2015
67
SAlut,

il a demandé en algorithme donc pas besoin de preciser le langage ;-)

Sinon cete solution me semble nikel (bravo lol). Si tu as des difficultés a comprendre je te l'écris en algo (enfin ca me semble très clair tout de même)
Messages postés
100
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
22 avril 2015
31
bonjour a vous tarek_dotzero et JFS77

je pense en effet qu'ils manques quelques informations. Au dela du langage, il faut egalement eclairsir la notion de "groupe d'adultes". Que fais-tu si il y a plus de 16 adultes ? ton code semble comter comme "groupe" uniquement les 8 premiers en tant que groupe, et faire payer les autres au prix fort.
Autrement di, je pense qu'il faut adns un 1ier temps effectivement soustraire les enfants du nombre total de personne, mais que ensuite il faut compter combien de groupe de 8 personnes il est possible de faire. ensuite, une fois que tous ces groupes sont fait, tester si les nombre de personnes sans groupe est suppérieur à 4, au quel cas tu peux refaire un groupe de 4 avec les personnes restantes. s'il reste encore des adultes sans groupe, alors uniquement ceux-ci (3 maximum), payrons le prix fort.

exple pour 24 personnes, dont 3 enfants, cela donne :
- 3 enfants
- 2 groupes de 8 adultes
- 1 groupe de 4 adultes
- 1 adulte seul


.. c'est en gros quelques lignes de plus à coder, mais pas de language, pas de code ! :D
Messages postés
814
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 avril 2020
113
Salut,

En effet, cela simplifie les chose:
Comme vous l'avez dit: la première partie est bonne, donc cette partie est pour les adultes:

Un rappel: le div donne la division entière et le mod le modulo!

On ajoute la declaration de quelque variables:

prixGroup8 := prixBase * 8 * 0.8;
prixGroup4 := prixBase * 4 * 0.9;
nbrGroup8 := nbrAdult div 8;
nbrGroup4 := (nbrAdult mod 8) div 4;
nbrPersonnesSeules := nbrAdult - (nbrGroup8 * 8) - (nbrGroup4 * 4);

lePrix := lePrix(des enfanst) + nbrGroup8 * prixGroup8 + nbrGroup4 * prixGroup4 + nbrPersonnesSeules * prixBase;


Je ne teste pas, mais si j'ai bien compris cela doit marcher!
Messages postés
100
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
22 avril 2015
31
... voila quelque chose qui me semble plus raisonnable tarek_dotzero :)
apres c'est à voir en fonction du cahier des charges. C'est bien beau de laisser des posts pour que les autres se creusent la tête, mais encore faudrait-il répondre :)
merci pour votre réponse
et je vous remercie encore une fois
bay
Messages postés
100
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
22 avril 2015
31
au plaisir
l'algorithme et le module le plus important dans ma filiére de spécialité et je trouve des difficultés pour le métriser alors n'hésitez pas de m'aider à trouver une solution le plutot possible je compte sur vous .et merci d'avance.
ecrire une analyse et en deduire un algorithme intitulé FACTORIEL qui calcul puis affiche le factoriel d un entier naturel N donné. N != 1.2.3.4.5.......N
le nombre 1089 a la propriété suivante: 9801= 9 x 1089. il ya d autre nombres de 4 chiffres qui verifie cette propriété. ecrire une analyse et un algorithme qui determine puis affiche ces nombres.
ecrire une analyse et en deduire un algorithme qui cherche et affiche tous les carrés parfaits de la formes aabb.
ecrire une analyse et en deduire un algorithme intitulé AFFICHE qui permet d afficher 1 une fois, 2 deux fois, 3 trois fois,..... 9 neuf fois. merci et svp si c possible vs m reponD le plus tt possibles sur tt ces problemes car j ai un examens dem1 et ca va etre un de c problemes. merci