Bonjour, je bloque depuis plusieurs heures sur une question concernant un algorithme.
Voici le contexte de l'exercice:
- On donne les tarifs de photocopies pratiqués dans un magasin de reprographie:
-Entre 1 et 30: 0,12 euros l'unité
- Entre 31 et 60: 0,10 euros l'unité
- Entre 61 et 100: 0,08 l'unité
- Au delà de 100: 0,06 l'unité
Tous les prix sont en euros.
On donne un algorithme:
Variables: n est un nombre entier naturel,
p est un nombre réel
Entrée: Saisir n
Traitement: Si n < 30 alors
Affecter à p la valeur 0,12n
Fin Si
Si n >32 et n <60 alors
Affecter à p la valeur 0,1n
Fin Si
Si n>61 et n<100 alors
Affecter à p la valeur 0,08n
Fin Si
Si n> 100 alors
Affecter à p la valeur 0,06n
Fin Si
Sortie: Afficher P
-On précise que cet algo ne permet pas en général d'afficher le prix à payer pour n photocopies expliquer et on demande d'expliquer pourquoi.
J'ai expliqué qu'il n'affichait pas le prix pour toutes les photocopies car il ne prenait pas en compte les tarifs précédent.
Par exemple, à la ligne "n<31 et <60 , affecter à p la valeur 0,1n", l'algo ne prend pas en compte le tarif du groupe (1-30) qui est a 0,12 l'unité mais ramène tout à 0,1.
J'espère avoir été clair.
Et je bloque à la consigne suivante, où il est demandé de corriger cet algorithme pour qu'il calcule le montant à payer en fonction du nombre n de photocopies effectuées, donc, je suppose, en prenant compte des tarifs de chaque regroupement de photocopies.
Bonjour,
Tel que tu nous le donnes l'énoncé est confus.
L'algorithme donne le prix pour n photocopies si le tarif pour une tranche donnée est uniforme de la 1ère à la dernière.
Par contre, la question suivante me laisse à penser que le tarif est en réalité de :
0.12 euro/photocopie pour les 30 premières
et passe à 0.10 euro à partir de la 31ème...etc...
Donc p donné par l'algorithme ne serait le prix pour n photocopies que si n30
Si 31n
60, p=(0.12*30)+(0.10*(n-30))
Clair ?
bonjour
Si j'ai bien compris, 31 photocopies est compris dans la deuxième tranche.
Donc:
Si n<30 alors
Affecter à p la valeur 0,12n
Fin Si
Si n<31 et n<60 alors
Affecter à p la valeur 0,1n
Mais cet algorithme ne permet pas d'afficher tous les résultats car comme l'a dit Cpierre60, il donne le prix si toutes les tranches de photocopies avaient le même tarif.
Pour l'exercice, j'ai fait ça:
Si n<30 alors
Affecter à p la valeur 0,12n
Fin Si
Si n <31 et n <60 alors
Affecter à p la valeur (0,12*30)+(0,10(n-30)
Pouvez vous me montrer quel est le programme en language calculatrice (TI-82) de l'algorithme de mon précédent message s'il vous plait!
Bonjour, pouvez vous m'aider à traduire l'algorithme suivant en programme pour calculatrice (TI-82):
Variables: N est un nombre entier naturel
P est un nombre réel
Entrée: Saisir n
Traitement: Si n <30 alors
Affecter à P la valeur 0,12n
Fin si
Si n<31 et n<60 alors
Affecter à P la valeur (0,12*30)+(0,10(n-30)
Fin si
Si n<61 et n<100 alors
Affecter à P la valeur (0,12*30+0,10*60)+(0,08(n-60)
Fin si
Si n<101 alors
Affecter à P la valeur (0,12*30+0,10*60+0,08*100)+(0,06(n-100)
Fin si
Sortie: Afficher P
Le contexte de cet algorithme est:
" Voici les tarifs de photocopies dans un magasin:
Entre 1 et 30: 0,12 euros l'unité
Entre 31 et 60: 0,10 euros l'unité
Entre 61 et 100: 0,08 euros l'unité
Plus de 100: 0,06 euros l'unité
Merci beaucoup de me répondre
*** message déplacé ***
Bonjour,
Saisir = prompt
Si = If
Alors = Then (aller à la ligne pour le placer)
Affecter à Y la valeur X = X→Y ( la fleche c'est la touche sto→)
Fin Si = End
Afficher P = Disp P
Si tu as des problèmes, que ti ne trouves pas telle ou telle touche, dis le, je t'aiderai
A la fin, tu pourras poster ton programme si ti veux que l'on vérifie
*** message déplacé ***
Bonjour,
Fais attention à bien délimiter les tranches: les valeurs 30, 60, 100 doivent être d'un côté ou de l'autre..il y a des inégalités strictes et des inégalités larges (des < et des )...
Traite aussi la barrière des 60 et des 100 : je n'ai fait que te donner la démarche pour celle de 30 !
Désolé, je n'ai pas de TI...
Si tu veux, je peux te mettre ça sous Algobox, mais rien de plus !
Merci de votre aide, mais lorsque j'exécute le programme, la calculatrice affiche: ERREUR: TYPEONNÉE!
*** message déplacé ***
Ça ne marche pas quand je met:
Prompt N
If N>30
Then
P→N*0.12
End
Disp P
Ça met soit: ERREUR:TYPEONNÉE
ou quand j'essaye de modifier: ERREUR:TYPE:SYNTAXE!
*** message déplacé ***
Bonjour,
Pour affecter à P la valeur N*0,12, il faut écrire : N*1.12P
C'est l'occasion de rappeler que l'affectation, sur les calculatrices, se fait avec la flèche dirigée vers la droite et de bien comprendre les 2 membres de cette "opération" :
En langage algorithmique on dit : "P prend la valeur N*0,12"
En langage calculatrice on dit : "La valeur N*0,12 est envoyée dans P"
*** message déplacé ***
Par contre, je ne comprend pas vraiment le sens de la question d'après:
-Exprimer en fonction de N le prix à payer pour N photocopies dans chacun des cas suivants:
- 1≤N≤30
_ 31≤N≤60
- 61≤N≤100
- N>100
Votre aide me ferait vraiment plaisir!
Et par pure curiosité, quelle est l'utilité d'utiliser un algorithme dans ce genre de situation (celle de l'exo)?
*** message déplacé ***
Bonjour,
Multi-post non ? Quelles sont les différences avec ton autre sujet : -----> Problème avec un algorithme
*** message déplacé ***
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :