Racine carré en VBS
Résolu/Fermé
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
-
30 nov. 2015 à 17:05
geo trouve-tout Messages postés 352 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 9 août 2023 - 15 déc. 2015 à 20:38
geo trouve-tout Messages postés 352 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 9 août 2023 - 15 déc. 2015 à 20:38
Bonjour,
Je programme en VB Script . Ma question conçernerait un script que j'utiliserai dans un autre but que celui de l'inclure en HTML ou en excel hein donc c'est juste un simple script enregistré à faire fonctionner normalement..
Voilà j'ai ma variable "delta", et j'aimerais calculer sa racine carré...C'est pas plus compliqué. Sauf que sqr c'est pour un nombre, comment calculer pour la valeur d'une variable ??
Merci
Je programme en VB Script . Ma question conçernerait un script que j'utiliserai dans un autre but que celui de l'inclure en HTML ou en excel hein donc c'est juste un simple script enregistré à faire fonctionner normalement..
Voilà j'ai ma variable "delta", et j'aimerais calculer sa racine carré...C'est pas plus compliqué. Sauf que sqr c'est pour un nombre, comment calculer pour la valeur d'une variable ??
Merci
A voir également:
- Racine carré en VBS
- Vbs windows - Accueil - Optimisation
- Racine carré sur mac - Guide
- Racine carré en c ✓ - Forum C
- Parenthèse carré ✓ - Forum MacOS
- Symbole racine carré clavier téléphone ✓ - Forum calculatrices
8 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 15/12/2015 à 07:48
Modifié par pijaku le 15/12/2015 à 07:48
Bonjour,
Deux choses ne fonctionnent pas principalement dans votre code :
1- l'orthographe des "mots clés" de programmation : else if n'est pas la même chose que ElseIf
2- votre code n'est pas indenté. Il est tout "plat" collé sur la marge de gauche. Ainsi vous n'avez pas pu voir que vous aviez deux End If en trop.
Voici votre code correctement corrigé :
Une troisième chose importante (certes moins en vbs, mais tout de même) consiste en la déclaration de variables.
Pour cela, toutefois, je vous laisse faire.
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Deux choses ne fonctionnent pas principalement dans votre code :
1- l'orthographe des "mots clés" de programmation : else if n'est pas la même chose que ElseIf
2- votre code n'est pas indenté. Il est tout "plat" collé sur la marge de gauche. Ainsi vous n'avez pas pu voir que vous aviez deux End If en trop.
Voici votre code correctement corrigé :
Msgbox " Bonjour ! Bienvenue dans ce petit outil ! " Do choix = inputbox("Pour calculer discriminant/racine d'une équation du second degré, tapez 1."&vbLf& "Pour convertir des Joules en eV, Taper 2." & vbLf & "Pour convertir des eV en J, taper 3." , "Que choississez-vous ?", "Taper votre choix ici...") If choix="1" then a = inputbox("Valeur de a?" , "Valeur de a", "a vaut...") b = inputbox("Valeur de b?" , "Valeur de b", "b vaut...") c = inputbox("Valeur de c?" , "Valeur de c", "c vaut...") d = b*b-4*a*c e= 2*a f=(-b)/e reponse = MsgBox("Delta = " & d & vbLf & "Voulez - vous les racines ?", vbYesNo, "Delta") If reponse = vbYes then If d>0 then g = sqr(d) Msgbox " Il existe donc deux racines réelles : " & vbLf & "x1= (-" & b & " -"& g & ") /"&e & vbLf & " x2= (-" & b & " +"& g & ") /"&e ElseIf d=0 then Msgbox "Il existe donc une racine double qui est :" &vbf& "x0 = " & f Else h = sqr(-d) Msgbox " Il existe donc deux racines complexes : " &vbLf& "z1 = (-" & b & " - i *"& h & ") /"&e & vbLf & "z2 = (-"&b&" + i*"&h& ") /"&e End If End If End If If choix="2" then J = inputbox("Valeur en J?" , "Valeur en J", "Valeur...") eJ = J*6242000000000000000 Msgbox " Pour "&J& "J, on obtient "&eJ& " eV" ElseIf choix="3" then eV = inputbox("Valeur en eV?" , "Valeur en eV", "Valeur...") J = eV * 0.00000000000000000016022 MsgBox " Pour "&eV& " eV, on obtient " &J& " J." End If rep = MsgBox(" Voulez-vous faire autre chose ?", vbYesNo, "Fin?") Loop while rep=vbYes Msgbox " Merci et bonne journée! "
Une troisième chose importante (certes moins en vbs, mais tout de même) consiste en la déclaration de variables.
Pour cela, toutefois, je vous laisse faire.
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
13 déc. 2015 à 08:48
13 déc. 2015 à 08:48
Réponse fin janvier...
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
30 nov. 2015 à 18:08
30 nov. 2015 à 18:08
Bonjour,
Normalement, y a pas de lezard
exemple:
Normalement, y a pas de lezard
exemple:
x=25.5 MsgBox Sqr(x)
NHenry
Messages postés
15194
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
23 février 2025
353
30 nov. 2015 à 18:13
30 nov. 2015 à 18:13
Result=sqrt(delta)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
30 nov. 2015 à 20:55
30 nov. 2015 à 20:55
Bojour à vous deux,
f894009, en fait ca ne fonctionne pas car delta est un calcul de discriminant, donc il fait son opération, et il faut que je fasse la racine carré de la valeur de delta, donc on ne peut pas mettre une valeur à delta puisque selon les valeurs qu'on entrera avant, delta changera.
Nhenry, non ca ne fonctionne pas... :/ Car en VBS c'est sqr, sans le -t et que ca s'applique qu'aux nombres... :/
f894009, en fait ca ne fonctionne pas car delta est un calcul de discriminant, donc il fait son opération, et il faut que je fasse la racine carré de la valeur de delta, donc on ne peut pas mettre une valeur à delta puisque selon les valeurs qu'on entrera avant, delta changera.
Nhenry, non ca ne fonctionne pas... :/ Car en VBS c'est sqr, sans le -t et que ca s'applique qu'aux nombres... :/
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
Modifié par f894009 le 1/12/2015 à 08:46
Modifié par f894009 le 1/12/2015 à 08:46
Bonjour,
l'instruction sqr(x) ou x est une variable (discriminat ou pas) marche sans equivoque, a vous de l'utiliser "correctement", voir le post de michel_m 30 nov. 2015 à 22:12
l'instruction sqr(x) ou x est une variable (discriminat ou pas) marche sans equivoque, a vous de l'utiliser "correctement", voir le post de michel_m 30 nov. 2015 à 22:12
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
30 nov. 2015 à 22:12
30 nov. 2015 à 22:12
Bpnjour-soir
Si par ex Delta est le discriminant d'une équation du 2° degré
il fau connaitre les valeurs des variables a,b,c
a=4
b=5
C=1
Delta=b^2-4a*c
If delta>=0 then xxx=sqr(delta)
Si par ex Delta est le discriminant d'une équation du 2° degré
il fau connaitre les valeurs des variables a,b,c
a=4
b=5
C=1
Delta=b^2-4a*c
If delta>=0 then xxx=sqr(delta)
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
12 déc. 2015 à 20:31
12 déc. 2015 à 20:31
Bonjour, non cela ne fonctionne pas... Car évidemment a b et c étaient généres par des inputbox... mais même votre exemple ne fonctionne pas il me met erreur ...
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
13 déc. 2015 à 10:48
13 déc. 2015 à 10:48
Bonjour michel_m
geo trouve-tout: mettez votre code a dispo, car y a kake chose qui cloche, vous ne nous dtes pas tout !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
geo trouve-tout: mettez votre code a dispo, car y a kake chose qui cloche, vous ne nous dtes pas tout !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
Modifié par geo trouve-tout le 13/12/2015 à 18:32
Modifié par geo trouve-tout le 13/12/2015 à 18:32
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
>
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
14 déc. 2015 à 08:20
14 déc. 2015 à 08:20
Bonjour,
Depuis quand les nombres negatifs ont une racine carree ??????????????????????????
A lire:
http://fr.maths.free.fr/maths/mnr/tr-lec/racines/racines.htm
Depuis quand les nombres negatifs ont une racine carree ??????????????????????????
A lire:
http://fr.maths.free.fr/maths/mnr/tr-lec/racines/racines.htm
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
>
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
14 déc. 2015 à 08:44
14 déc. 2015 à 08:44
Bonjour tout le monde,
En effet, pas de racine carrée d'un nombre négatif.
Il faut donc calculer les racines dans le test IF :
En effet, pas de racine carrée d'un nombre négatif.
Il faut donc calculer les racines dans le test IF :
choix = InputBox("Pour calculer discriminant/racine d'une équation du second degré, tapez 1." & vbLf & "Pour convertir des Joules en eV, Taper 2." & vbLf & "Pour convertir des eV en J, taper 3.", "Que choississez-vous ?", "Taper votre choix ici...") If choix = "1" Then a = InputBox("Valeur de a?", "Valeur de a", "a vaut...") b = InputBox("Valeur de b?", "Valeur de b", "b vaut...") c = InputBox("Valeur de c?", "Valeur de c", "c vaut...") d = b * b - 4 * a * c e = 2 * a f = (-b) / e reponse = MsgBox("Delta = " & d & vbLf & "Voulez - vous les racines ?", vbYesNo, "Delta") If reponse = vbYes Then If d > 0 Then g = Sqr(d) MsgBox " Il existe donc deux racines réelles : " & vbLf & "x1= (-" & b & " -" & g & ") /" & e & vbLf & " x2= (-" & b & " +" & g & ") /" & e ElseIf d = 0 Then MsgBox "Il existe donc une racine double qui est :" & vbLf & "x0 = " & f Else h = Sqr(-d) MsgBox " Il existe donc deux racines complexes : " & vbLf & "z1 = (-" & b & " - i * " & h & ") /" & e & vbLf & "z2 = (-" & b & " + i* " & h & ") /" & e End If End If End If
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
14 déc. 2015 à 17:21
14 déc. 2015 à 17:21
Les gens, merci de votr aide. Mais je vus rappelle qu'on est dans le champ complexe et qu'en mathématique la réponse c'est -delta, comme delta est ici négatif, ca donne forcemment un nombre positif ( - et - donne +...)
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
>
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
14 déc. 2015 à 17:28
14 déc. 2015 à 17:28
Je suis en scientifique f89 lol c'est ma spécialité et lorsque tu calcule les racines lorsque delta est négatif, tu prend la racine de -Delta. Impossible ? Non car delta est négatif lorsqu'on tuilise cette formule donc -delta sachant que delta est négatif ca fait + delta donc ca reste une racine positive ;)
geo trouve-tout
Messages postés
352
Date d'inscription
mardi 17 septembre 2013
Statut
Membre
Dernière intervention
9 août 2023
58
Modifié par baladur13 le 13/12/2015 à 18:38
Modifié par baladur13 le 13/12/2015 à 18:38
Hey,
Msgbox " Bonjour ! Bienvenue dans ce petit outil ! "
Do
choix = inputbox("Pour calculer discriminant/racine d'une équation du second degré, tapez 1."&vbLf& "Pour convertir des Joules en eV, Taper 2." & vbLf & "Pour convertir des eV en J, taper 3." , "Que choississez-vous ?", "Taper votre choix ici...")
If choix="1" then
a = inputbox("Valeur de a?" , "Valeur de a", "a vaut...")
b = inputbox("Valeur de b?" , "Valeur de b", "b vaut...")
c = inputbox("Valeur de c?" , "Valeur de c", "c vaut...")
d = b*b-4*a*c
e= 2*a
f=(-b)/e
g = sqr(d)
h = sqr(-d)
reponse = MsgBox("Delta = " & d & vbLf & "Voulez - vous les racines ?", vbYesNo, "Delta")
if reponse = vbYes then
if d>0 then
Msgbox " Il existe donc deux racines réelles : " & vbLf & "x1= (-" & b & " -"& g & ") /"&e & vbLf & " x2= (-" & b & " +"& g & ") /"&e
else if d=0 then
Msgbox "Il existe donc une racine double qui est :" &vbf& "x0 = " & f
else
Msgbox " Il existe donc deux racines complexes : " &vbLf& "z1 = (-" & b & " - i *"& h & ") /"&e & vbLf & "z2 = (-"&b&" + i*"&h& ") /"&e
end if
end if
end if
end if
If choix="2" then
J = inputbox("Valeur en J?" , "Valeur en J", "Valeur...")
eJ = J*6242000000000000000
Msgbox " Pour "&J& "J, on obtient "&eJ& " eV"
else if choix="3" then
eV = inputbox("Valeur en eV?" , "Valeur en eV", "Valeur...")
J = eV * 0.00000000000000000016022
MsgBox " Pour "&eV& " eV, on obtient " &J& " J."
End If
End if
rep = MsgBox(" Voulez-vous faire autre chose ?", vbYesNo, "Fin?")
Loop while rep=vbYes
Msgbox " Merci et bonne journée! "
15 déc. 2015 à 20:38
Merci !!! Ca fonctionne nickel ! Maintenant je vais donc voir comment afficher une seule variable quand delta est positif, enfin x1 et x2 en une seule valeur !
Et je verrai pour l'améliorer!
Merci pijaku :)