M'aider à faire un exercice en algorithme

Résolu/Fermé
jamesbandes Messages postés 7 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 23 mars 2010 - 22 janv. 2008 à 22:51
 malek - 12 mai 2008 à 20:06
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

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
23 janv. 2008 à 11:20
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
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
22 janv. 2008 à 22:55
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 ?
0
merci pour les réponses que tu m'a apporté
et je vous remercie encore une fois
bay
0
jamesbandes Messages postés 7 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 23 mars 2010
24 janv. 2008 à 21:33
merci pour les réponses que tu m'a apporté
et je vous remercie encore une fois
bay
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 11:11
???

0
JFS77 Messages postés 385 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 15 décembre 2015 70
23 janv. 2008 à 11:27
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 11: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
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
23 janv. 2008 à 11:44
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!
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 11:47
... 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 :)
0
merci pour votre réponse
et je vous remercie encore une fois
bay
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 22:56
au plaisir
0
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.
0
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
0
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.
0
ecrire une analyse et en deduire un algorithme qui cherche et affiche tous les carrés parfaits de la formes aabb.
0
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
0