Racine carré en VBS

Résolu
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   -  
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   -
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

8 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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é :
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
2
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58
 
Bonjour,

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 :)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Réponse fin janvier...
1
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
Normalement, y a pas de lezard

exemple:
x=25.5
MsgBox Sqr(x)
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Result=sqrt(delta)
0

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

Posez votre question
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58
 
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... :/
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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)
0
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58
 
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 ...
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour michel_m

geo trouve-tout: mettez votre code a dispo, car y a kake chose qui cloche, vous ne nous dtes pas tout !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58
 
Mais si lol;
Le voilà ici :
https://code.empreintesduweb.com/10050.html
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Depuis quand les nombres negatifs ont une racine carree ??????????????????????????

A lire:

http://fr.maths.free.fr/maths/mnr/tr-lec/racines/racines.htm
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
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 :
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
0
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58 > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 +...)
0
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
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 ;)
0
geo trouve-tout Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   58
 
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! "
0