Algo
glimore
-
glimore -
glimore -
Bonjour,
voila je suis bloquer dans l'algo il me reste les jours mais je bloque complet quelqu'un pourrais m'expliquer
voila le sujet [url=http://mabul.org/][img]http://apu.mabul.org/up/apu/2008/11/08/img-165957m3duj.jpg[/img][/url]
l'algo que j'ai réaliser jusqu'à présent :
(algo)
var
distance : entier
jours : texte
heure :
début
afficher ("saisir distance en KM :")
saisir (distance)
afficher ("saisir jour de réservation :")
saisir (jours)
afficher ("saisir heure de réservation :")
saisir (heure)
si distance < 50
| alors prix <- distance*0.15
| sinon si distance < 200
| | alors prix <- (50*0.15)+(distance-50)*.010
| | sinon prix <- (50*0.15)+(150*0.10)+(distance-200)*0.08
| fsi
fsi
voila je suis bloquer dans l'algo il me reste les jours mais je bloque complet quelqu'un pourrais m'expliquer
voila le sujet [url=http://mabul.org/][img]http://apu.mabul.org/up/apu/2008/11/08/img-165957m3duj.jpg[/img][/url]
l'algo que j'ai réaliser jusqu'à présent :
(algo)
var
distance : entier
jours : texte
heure :
début
afficher ("saisir distance en KM :")
saisir (distance)
afficher ("saisir jour de réservation :")
saisir (jours)
afficher ("saisir heure de réservation :")
saisir (heure)
si distance < 50
| alors prix <- distance*0.15
| sinon si distance < 200
| | alors prix <- (50*0.15)+(distance-50)*.010
| | sinon prix <- (50*0.15)+(150*0.10)+(distance-200)*0.08
| fsi
fsi
6 réponses
Vite fait :
Si jour <> samedi et jour <> dimanche alors
Si heure >= 8 et heure <=20 alors
niveau = 3
Sinon
niveau = 1
FSi
Sinon
Si heure >= 8 et heure <=20 alors
niveau = 2
Sinon
niveau = 1
FSi
FSi
prix = prix + niveau
Si jour <> samedi et jour <> dimanche alors
Si heure >= 8 et heure <=20 alors
niveau = 3
Sinon
niveau = 1
FSi
Sinon
Si heure >= 8 et heure <=20 alors
niveau = 2
Sinon
niveau = 1
FSi
FSi
prix = prix + niveau
var
distance : entier
jours : texte
heure :
début
afficher ("saisir distance en KM :")
saisir (distance)
afficher ("saisir jour de réservation :")
saisir (jours)
afficher ("saisir heure de réservation :")
saisir (heure)
si distance < 50
| alors prix <- distance*0.15
| sinon si distance < 200
| | alors prix <- (50*0.15)+(distance-50)*.010
| | sinon prix <- (50*0.15)+(150*0.10)+(distance-200)*0.08
| fsi
fsi
Si jour <> samedi et jour <> dimanche
| alors
| Si heure >= 8 et heure <=20
| | alors niveau <- 3
| | sinon niveau <- 1
| |
| fsi
|
|
| sinon si heure >= 8 et heure <=20
| | alors niveau = 2
| | sinon niveau = 1
| fSi
FSi
fin
distance : entier
jours : texte
heure :
début
afficher ("saisir distance en KM :")
saisir (distance)
afficher ("saisir jour de réservation :")
saisir (jours)
afficher ("saisir heure de réservation :")
saisir (heure)
si distance < 50
| alors prix <- distance*0.15
| sinon si distance < 200
| | alors prix <- (50*0.15)+(distance-50)*.010
| | sinon prix <- (50*0.15)+(150*0.10)+(distance-200)*0.08
| fsi
fsi
Si jour <> samedi et jour <> dimanche
| alors
| Si heure >= 8 et heure <=20
| | alors niveau <- 3
| | sinon niveau <- 1
| |
| fsi
|
|
| sinon si heure >= 8 et heure <=20
| | alors niveau = 2
| | sinon niveau = 1
| fSi
FSi
fin
je trouve pas mon erreur j'ai essayer pourtant
Option Explicit
Sub main()
Dim distance As Integer
Dim heure As Integer
Dim jours As Single
Dim prix As Double
distance = InputBox("saisir distance en KM :")
jours = ("saisir jour de réservation :")
heure = InputBox("saisir heure de réservation :")
If distance < 50 Then
prix = (distance * 0.15)
ElseIf distance < 200 Then
prix = (50 * 0.15) + (distance - 50) * 0.01
Else: prix = (50 * 0.15) + (150 * 0.1) + (distance - 200) * 0.08
End If
If jours <> samedi And jour <> dimanche Then
If heure >= 8 And heure <= 20 Then
niveau = 3
Else: niveau = 1
End If
ElseIf heure >= 8 And heure <= 20 Then
niveau = 2
Else: niveau = 1
End If
MsgBox ("prix du billets" & prix)
fin
Option Explicit
Sub main()
Dim distance As Integer
Dim heure As Integer
Dim jours As Single
Dim prix As Double
distance = InputBox("saisir distance en KM :")
jours = ("saisir jour de réservation :")
heure = InputBox("saisir heure de réservation :")
If distance < 50 Then
prix = (distance * 0.15)
ElseIf distance < 200 Then
prix = (50 * 0.15) + (distance - 50) * 0.01
Else: prix = (50 * 0.15) + (150 * 0.1) + (distance - 200) * 0.08
End If
If jours <> samedi And jour <> dimanche Then
If heure >= 8 And heure <= 20 Then
niveau = 3
Else: niveau = 1
End If
ElseIf heure >= 8 And heure <= 20 Then
niveau = 2
Else: niveau = 1
End If
MsgBox ("prix du billets" & prix)
fin
jours = ("saisir jour de réservation :")
Manque le "InputBox".
Ensuite, tu te doutes bien que le système ne va pas marcher si tu ne lui dis pas que lundi est avant mardi, etc... une solution : attribuer à chaque jour son numéro de la semaine : lundi est le 1, mardi le 2... ainsi, tu remplaces le nom du jour par son numéro, et tu fais les tests sur les numéros ("jour <> samedi et jour <> dimanche" devient "jour <6").
Manque le "InputBox".
Ensuite, tu te doutes bien que le système ne va pas marcher si tu ne lui dis pas que lundi est avant mardi, etc... une solution : attribuer à chaque jour son numéro de la semaine : lundi est le 1, mardi le 2... ainsi, tu remplaces le nom du jour par son numéro, et tu fais les tests sur les numéros ("jour <> samedi et jour <> dimanche" devient "jour <6").
Pour le reste :
If jours <> samedi And jour <> dimanche Then
Il faudrait convertir le jour en numéro, parce que pour le moment, le système ne peut pas savoir que lundi est avant mardi, par exemple. Pour lui, "lundi" n'est rien autre que du texte, comme "carotte" ou "piaf".
Une solution consiste à faire ceci :
Si jour="lundi" alors jour=1 FSi
Si jour="mardi" alors jour=2 FSi
Si jour="mercredi" alors jour=3 FSi
Si jour="jeudi" alors jour=4 FSi
Si jour="vendredi" alors jour=5 FSi
Si jour="samedi" alors jour=6 FSi
Si jour="dimanche" alors jour=7 FSi
Bon, c'est loin d'être optimisé, mais au moins ça marche et c'est facile à comprendre.
Ensuite, tu fais les tests sur les numéros à la place des jours...
Quand tu marques If jours <> samedi And jour <> dimanche Then , c'est pour tester si le jour saisi est un jour de semaine ou un jour de week-end. En ayant remplacé les noms des jours par le numéro, tu vois que la semaine va du jour 1 (lundi ) au jour 5 (vendredi), les jours 6 et 7 étant donc le week end. Ca devient donc :
If jour < 6 Then
(si le jour est inférieur à 6, il est donc entre 1 et 5, soit un jour de la semaine... et c'est ce qu'on voulait tester)
If jours <> samedi And jour <> dimanche Then
Il faudrait convertir le jour en numéro, parce que pour le moment, le système ne peut pas savoir que lundi est avant mardi, par exemple. Pour lui, "lundi" n'est rien autre que du texte, comme "carotte" ou "piaf".
Une solution consiste à faire ceci :
Si jour="lundi" alors jour=1 FSi
Si jour="mardi" alors jour=2 FSi
Si jour="mercredi" alors jour=3 FSi
Si jour="jeudi" alors jour=4 FSi
Si jour="vendredi" alors jour=5 FSi
Si jour="samedi" alors jour=6 FSi
Si jour="dimanche" alors jour=7 FSi
Bon, c'est loin d'être optimisé, mais au moins ça marche et c'est facile à comprendre.
Ensuite, tu fais les tests sur les numéros à la place des jours...
Quand tu marques If jours <> samedi And jour <> dimanche Then , c'est pour tester si le jour saisi est un jour de semaine ou un jour de week-end. En ayant remplacé les noms des jours par le numéro, tu vois que la semaine va du jour 1 (lundi ) au jour 5 (vendredi), les jours 6 et 7 étant donc le week end. Ca devient donc :
If jour < 6 Then
(si le jour est inférieur à 6, il est donc entre 1 et 5, soit un jour de la semaine... et c'est ce qu'on voulait tester)
comme sa???
Si jour="lundi" alors jour=1 FSi
Si jour="mardi" alors jour=2 FSi
Si jour="mercredi" alors jour=3 FSi
Si jour="jeudi" alors jour=4 FSi
Si jour="vendredi" alors jour=5 FSi
Si jour="samedi" alors jour=6 FSi
Si jour="dimanche" alors jour=7 FSi
si jour < 1 et heure <> 0et8 et 20et24 alors niveau = 1
si jour < 1 et heure <> 8et20 alors niveau = 3
etc...
Si jour="lundi" alors jour=1 FSi
Si jour="mardi" alors jour=2 FSi
Si jour="mercredi" alors jour=3 FSi
Si jour="jeudi" alors jour=4 FSi
Si jour="vendredi" alors jour=5 FSi
Si jour="samedi" alors jour=6 FSi
Si jour="dimanche" alors jour=7 FSi
si jour < 1 et heure <> 0et8 et 20et24 alors niveau = 1
si jour < 1 et heure <> 8et20 alors niveau = 3
etc...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je voulais mettre
si jour <-- 1 et heure <> 0et8 et 20et24 alors niveau = 1
si jour <--- 1 et heure <> 8et20 alors niveau = 3
si jour <-- 1 et heure <> 0et8 et 20et24 alors niveau = 1
si jour <--- 1 et heure <> 8et20 alors niveau = 3
ok merci sinon j'ai une autre question sur un autre algo je cherche a permuter deux valeurs pour en faite mettre la plus grande dans y et la plus petite dans y et je bloque un peut j'ai fait sa
Option Explicit
Sub main()
Dim x As Double
Dim y As Double
Dim z As Double
Dim permutation As Double
x = InputBox("saisir x :")
y = InputBox("saisir y :")
---------------------------------------------------------------------------
permutation = z = x And y = x And x = y
If x > y Then -> je ne sait pas comment faire ici
MsgBox ("x : " & permutation)
------------------------------------------------------------------------------
ElseIf x < y Then
MsgBox ("x: " & x)
MsgBox ("y: " & y)
End If
End Sub
Option Explicit
Sub main()
Dim x As Double
Dim y As Double
Dim z As Double
Dim permutation As Double
x = InputBox("saisir x :")
y = InputBox("saisir y :")
---------------------------------------------------------------------------
permutation = z = x And y = x And x = y
If x > y Then -> je ne sait pas comment faire ici
MsgBox ("x : " & permutation)
------------------------------------------------------------------------------
ElseIf x < y Then
MsgBox ("x: " & x)
MsgBox ("y: " & y)
End If
End Sub
Ben en gros, le principe, c'est d'appliquer le niveau en fonction du jour et de l'heure. Il ne te reste plus qu'à ajouter au prix la valeur du niveau.