Bonjour à tous,
J'ai un devoir maison à rendre lundi mais j'en n'y arrive pas, voici l'énoncé :
Une station de sports d'hivers propose trois tarifs pour les remontées mécaniques :
- le tarif A : 15€ Par jour de ski
-l e tarif B : 70€ Pour une semaine de sept jours de ski
-le tarif C : 23€ Fixe pour une semaine et 7€ Par jour de ski
Écrire un algorithme en pseudo langage qui détermine le tarif le plus avantageux en fonction du nombre de jours de ski réalisé en une semaine
Vous commencerez le problème mathématiquement avant d'écrire l'algorithme
Merci d'avance 😊
cocolaricotte
J'ai calculer pour 7 jours les troisième tarifs et j'ai trouvé :
Tarif À :105€
Tarif B:70€
Tarif C:72€
Que dois je faire après ?
cocolaricotte
C'est écrit à la fin du sujet je l'ai noté il faut déterminer le tarif le plus avantageux en fonction du nombre de jours de ski réalisé en une semaine
cocolaricotte
Il faut faire 3 algorithmes non ?
Tarif A
Saisir x
Affecter à x la valeur 15x
Afficher x
Tarif B
Je ne sais pas :/
Tarif C
Saisir x
Affecter à x la valeur 7x
Affecter à x la valeur 27+ x
Afficher x
Est-ce ca ?
Bonjour.
Il y a de l'idée... le tout est de tout fondre en un seul algorithme.
Des variables à déclarer et, peut-être, à initialiser.
Un seul x, nombre de jours de ski, qu'il n'est pas nécessaire de saisir au clavier.
Trois calculs dans une même boucle.
Trois résultats à comparer entre eux pour trouver le plus avantageux pour le même nombre de jours de ski.
Un affichage.
Et hop, le tour est joué...
Quand pensez-vous ?
bbomaths
Merci 😊
Mais le problème c'est que je ne sais pas d'un du tout comment faire mais je vois à peu près.. Vous pouvez m'aider ?
Définir des variables... de quoi avons-nous besoin ?
Une variable pour le coût de chacun des tarifs :
-> cout_A = 0
-> cout_B = 0
-> cout_C = 0
Une variable pour mémoriser le cout d'une journée de ski :
-> tarif_A = 0
-> tarif_B = 0
-> tarif_C = 0
Une variable pour compter le nombre de jours :
-> n = 0
En voyez-vous d'autres pour l'instant ?
Vous allez réfléchir à une boucle :
tant que n, nombre de jours de ski, est inférieur à quelque chose faire
- les calculs de 3 couts
- la recherche du meilleur tarif
fin tant que
bbomaths
Mais je ne comprends pas le calcul du tarifB ?
Et la boucle je crois que c'est ca :
Tant que n<\7
Faire 15n
(Je ne sais' pas pour le tarifB )
23+7n
Et là je n'es sais pas xD
on approche...
on modifie les variables pour prendre en compte les forfaits :
tarif_A = 0
cout_A = 0
tarif_B = 0
cout_B = 70
tarif_C = 0
cout_C = 23
n = 0
tant que n, nombre de jours de ski, est inférieur à 7 faire
calcul pour tarif A :
cout_A = cout_A + tarif_A
tarif_A = 15
calcul pour tarif B :
cout_B = cout_B + tarif_B
tarif_B = 0
calcul pour tarif C :
cout_C = cout_C + tarif_C
tarif_C = 7
- la recherche du meilleur tarif
fin tant que
Première partie : la déclaration de variables
VARIABLES :
tarif_a EST_DU_TYPE_NOMBRE
cout_a EST_DU_TYPE_NOMBRE
tarif_b EST_DU_TYPE_NOMBRE
cout_b = EST_DU_TYPE_NOMBRE
tarif_c EST_DU_TYPE_NOMBRE
cout_c EST_DU_TYPE_NOMBRE
Nmax EST_DU_TYPE_NOMBRE
n EST_DU_TYPE_NOMBRE
meilleur_tarif EST_DU_TYPE_CHAINE
Deuxième partie : l'algorithme
DEBUT_ALGORITHME
# initialisations
# tarif A : 15 euro / jour de ski
tarif_a PREND_LA_VALEUR 0
cout_a PREND_LA_VALEUR 0
# tarif B : forfait 70 euro pour une semaine
tarif_b PREND_LA_VALEUR 0
# prise en compte du forfait
cout_b PREND_LA_VALEUR 70
# tarif C : forfait 23 euros pour une semaine + 7 euros / jour de ski
tarif_c PREND_LA_VALEUR 0
# prise en compte du forfait
cout_c PREND_LA_VALEUR 23
# nombre de jours maximal
Nmax PREND_LA_VALEUR 7
# nombre de jours courants, nul par defaut
n PREND_LA_VALEUR 0
# meilleur tarif, vide par defaut
meilleur_tarif PREND_LA_VALEUR ""
# boucle
TANT_QUE (n <= Nmax) FAIRE
# tarif A : 15 euro / jour de ski
cout_a PREND_LA_VALEUR cout_a + tarif_a
tarif_a PREND_LA_VALEUR 15
# tarif B : forfait 70 euro pour une semaine
cout_b PREND_LA_VALEUR cout_b + tarif_b
tarif_b PREND_LA_VALEUR 0
# tarif C : forfait 23 euros pour une semaine + 7 euros / jour de ski
cout_c PREND_LA_VALEUR cout_c + tarif_c
tarif_c PREND_LA_VALEUR 7
# recherche du meilleur tarif
SI (cout_a < cout_b) ET (cout_a < cout_c) FAIRE
meilleur_tarif PREND_LA_VALEUR "A"
SINON
SI (cout_b < cout_a) ET (cout_b < cout_c) FAIRE
meilleur_tarif PREND_LA_VALEUR "B"
SINON
SI (cout_c < cout_a) ET (cout_c < cout_b) FAIRE
meilleur_tarif PREND_LA_VALEUR "C"
FIN_SI
FIN_SI
FIN_SI
AFFICHER "Nombre de jours : " n
AFFICHER "Tarif A : " cout_a
AFFICHER "Tarif B : " cout_b
AFFICHER "Tarif C : " cout_c
AFFICHER "Meilleur tarif : " meilleur_tarif
n PREND_LA_VALEUR n+ 1
FIN_TANT_QUE
FIN_ALGORITHME
salut une autre proposition
Sub tarif_ski()
N = InputBox("saisir le nombre de jours à prendre:")
'calcul des tarifs en fonction du nombre de jours choisis:
A = 15 * N
If N Mod 7 = 0 Then
B = (N / 7) * 70 'tarif par tranches de 7 jours seulement.
Else
GoTo 1
End If
1:
C = 23 * ((N - N Mod 7) / 7) + 7 * N Mod 7 'tarif qui comprend le nombre de tranches de 7 jours + jours complementaires < 7
MsgBox A & " " & B & " " & C
tarifs = Array(A, B, C)
sejours = Array("A", "B", "C")
For i = 0 To 2
If tarifs(i) = Application.Min(tarifs) Then
MsgBox "Tarif le plus avantageux : " & Application.Min(tarifs) & " €,séjour : " & sejours(i)
End If
Next
End Sub
Un bonus en Python :
#*******************************************************************************
# IMPORT ***********************************************************************
#*******************************************************************************
# module pour le système d'exploitation
import os
# module specifique pour le systeme
import sys
#*******************************************************************************
# MAIN *************************************************************************
#*******************************************************************************
# effacement de l'ecran (facultatif)
os.system('cls')
print(" ")
# tarif A : 15 euro / jour de ski
tarif_a = 0
cout_a = 0
# tarif B : forfait 70 euro pour une semaine
tarif_b = 0
# prise en compte du forfait
cout_b = 70
# tarif C : forfait 23 euros pour une semaine + 7 euros / jour de ski
tarif_c = 0
# prise en compte du forfait
cout_c = 23
# nombre de jours maximal
Nmax = 7
# nombre de jours courants, nul par defaut
n = 0
# meilleure tarif, vide par defaut
meilleur_tarif = ""
# boucle pour compter les jurs
while n <= Nmax :
# tarif A
cout_a += tarif_a
tarif_a = 15
# tarif B
cout_b += tarif_b
tarif_b = 0
# tarif C
cout_c += tarif_c
tarif_c = 7
# recherche du meilleur tarif
if cout_a < cout_b and cout_a < cout_c :
meilleur_tarif = "A"
elif cout_b < cout_a and cout_b < cout_c :
meilleur_tarif = "B"
elif cout_c < cout_a and cout_c < cout_b :
meilleur_tarif = "C"
print(" Nombre de jours : %d Tarif A : % 4d Tarif B : % 4d Tarif C : % 4d Meilleur tarif : %s"\
% (n, cout_a, cout_b, cout_c, meilleur_tarif))
# incrementation du nombre de jours de ski
n += 1
Nombre de jours : 0 Tarif A : 0 Tarif B : 70 Tarif C : 23 Meilleur tarif : A
Nombre de jours : 1 Tarif A : 15 Tarif B : 70 Tarif C : 30 Meilleur tarif : A
Nombre de jours : 2 Tarif A : 30 Tarif B : 70 Tarif C : 37 Meilleur tarif : A
Nombre de jours : 3 Tarif A : 45 Tarif B : 70 Tarif C : 44 Meilleur tarif : C
Nombre de jours : 4 Tarif A : 60 Tarif B : 70 Tarif C : 51 Meilleur tarif : C
Nombre de jours : 5 Tarif A : 75 Tarif B : 70 Tarif C : 58 Meilleur tarif : C
Nombre de jours : 6 Tarif A : 90 Tarif B : 70 Tarif C : 65 Meilleur tarif : C
Nombre de jours : 7 Tarif A : 105 Tarif B : 70 Tarif C : 72 Meilleur tarif : B
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :