- Inscription
Langue : [automatic], [fr], [en], … | Allez on remonte !
Information : Inscris-toi ou connecte-toi pour pouvoir participer aux forums d'Olissea.
Liste des BBS :
Solveur d'équations du deuxième degré
Page 1 / 1
anefrhuseio
posté le 12/03/2010 à 18h24
Occasionel
[Message déjà lu]
J'ai créé en petit site internet en Flash permettant de résoudre des équations du deuxième degré. Un grand gain de temps!
L'adresse? iGenius (cliquez dessus).

Pour le petits mordu de programmation, voici le script en AS2:

//Soit a_txt, b_txt et c_txt les 3 zones de saisie de texte devant, respectivement, x^2, x et c
//deltat_txt est le texte dynamique pour l'affichage du delta
//res1_txt et res2_txt sont les deux textes dynamiques pour afficher chacun une solution.
var va:Number = 0;
var vb:Number = 0;
var vc:Number = 0;
var vdelta:Number = 0;
var vresultat:Number = 0;
var xun:Number = 0;
var xunbas:Number = 0;
var xunhaut:Number = 0;
var xdeux:Number = 0;
var xdeuxbas:Number = 0;
var xdeuxhaut:Number = 0;
var vracine:Number = 0;
valider_btn.onPress = function() {
//bouton premettant le calcul
va = Number(a_txt.text);
vb = Number(b_txt.text);
vc = Number(c_txt.text);
if (isNaN(va) || isNaN(vb) || isNaN(vc)) {
delta_txt.text = "Veuillez entrer des nombres SVP!";
res1_txt.text = " ";
res2_txt.text = " ";
} else {
vdelta = Number(vb*vb-4*va*vc);
delta_txt.text = "Le delta est égal à "+vdelta+".";
if (vdelta>0) {
vracine = Math.sqrt(vdelta);
xun = Number((-(vb)+vracine)/(2*va));
xunhaut = Number(-(vb)+vracine);
xunbas = Number(2*va);
xdeux = Number((-(vb)-vracine)/(2*va));
xdeuxhaut = Number(-(vb)-vracine);
xdeuxbas = Number(2*va);
res1_txt.text = "x1 est égal à "+xunhaut+" / "+xunbas+" , soit "+xun+".";
res2_txt.text = "x2 est égal à "+xdeuxhaut+" / "+xdeuxbas+" , soit "+xdeux+".";
} else {
if (vdelta<0) {
res1_txt.text = "Aucune solution dans l'ensemble des réels.";
res2_txt.text = " ";
} else {
xdeux = Number((-(vb))/(2*va));
xdeuxhaut = Number(-(vb));
xdeuxbas = Number(2*va);
res1_txt.text = "x1 et x2 sont confondus.";
res2_txt.text = "x est égal à "+xdeuxhaut+" / "+xdeuxbas+" , soit "+xdeux+".";
}
}
}
if (va == 0 & vb == 0 & vc == 0) {
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Equation toujours vérifiée.";
res2_txt.text = " ";
} else {
if (va == 0 & vb == 0) {
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Equation impossible.";
res2_txt.text = " ";
} else {
if (va == 0) {
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Equation du premier degré.";
xun = Number((-vc)/vb);
res2_txt.text = "x est égal à "+xun;
} else {
}
}
}
};
JeromeJ
[Avatar de JeromeJ]
posté le 12/03/2010 à 19h57
Légende vivante
[Message déjà lu]
Salut,

J'ai pas trouvé l'application sur iGenius :o

Merci pour le code AS2 :) même si AS3 aurait été préférable :P

Hors sujet :
Sinon, à propos de l'emplacement de ton sujet: Je dirais mauvais BBS mais étant donné que j'hésite toujours entre le BBS Math et le BBS Programmation, je pense que l'idéal serait de faire un sujet dans chacun de ces BBS (qui se référencerait l'un l'autre) mais je comprend aisément si tu n'as pas envie de faire la démarche assez contraignante

Hors sujet :
Tu me fais aussi penser qu'il faudrait une balise code :o
------------------------------------------
"Olissea en force | (╯°□°)╯︵ ┻━┻ Hmm… ಠ_ಠ | Vertuous circles ☺"
ecailletortue
[Avatar de ecailletortue]
posté le 13/03/2010 à 20h14
Accroc +
[Message déjà lu]
je trouve qu'un programme sur la calculatrice est plus pratique qu'un site internet mais bon, bravo pour l'avoir fait en flash
et je n'ai pas trouvé le programme non plus sur ton site
------------------------------------------
"See you in your dreams, yeah baby, kowai yume dato shitemo..."
anefrhuseio
posté le 14/03/2010 à 11h27
Occasionel
[Message déjà lu]
-Rends-toi sur iGenius;
-Insère le mot de passe indiqué en bas de l'écran;
-Clique sur "calculatrice";
-En bas à droite de la fenêtre, clique sur "Résolution de système d'équation";
-Et le tour est joué!
JeromeJ
[Avatar de JeromeJ]
posté le 14/03/2010 à 14h01
Légende vivante
[Message déjà lu]
Ah oui lol :p merci
------------------------------------------
"Olissea en force | (╯°□°)╯︵ ┻━┻ Hmm… ಠ_ಠ | Vertuous circles ☺"
ecailletortue
[Avatar de ecailletortue]
posté le 14/03/2010 à 14h25
Accroc +
[Message déjà lu]
pourquoi doit-on mettre un login et un pass pour accéder au site? =O
------------------------------------------
"See you in your dreams, yeah baby, kowai yume dato shitemo..."
anefrhuseio
posté le 18/03/2010 à 20h33
Occasionel
[Message déjà lu]
Pour rien en fait.
C'était pour m'amuser à écrire le script. ;-)
JeromeJ
[Avatar de JeromeJ]
posté le 19/03/2010 à 21h57
Légende vivante
[Message déjà lu]
Et pour ennuyer aussi non ? x) vu que ça sert pour le moment à rien et que ça fait perdre du temps.
------------------------------------------
"Olissea en force | (╯°□°)╯︵ ┻━┻ Hmm… ಠ_ಠ | Vertuous circles ☺"
anefrhuseio
posté le 24/03/2010 à 9h14
Occasionel
[Message déjà lu]
C'est vrai que 10 secondes, c'est beaucoup... (ironie)
JeromeJ
[Avatar de JeromeJ]
posté le 24/03/2010 à 10h39
Légende vivante
[Message déjà lu]
Bah dans le cas où quelqu'un irait souvent sur ton site :) mais bon je pense que ce n'est là qu'une version BETA et qu'il n'y a pas de quoi s'inquiéter ^^
------------------------------------------
"Olissea en force | (╯°□°)╯︵ ┻━┻ Hmm… ಠ_ಠ | Vertuous circles ☺"
JeromeJ
[Avatar de JeromeJ]
posté le 16/05/2010 à 13h38
Légende vivante
[Message déjà lu]
Re-Salut, maintenant que j'ai mis de jolie couleurs à ton code ( :D ) je suis plus apte à le lire et t'y répondre, tout d'abord, je te suggère quelques améliorations:

 
var va:Number = 0;
var vb:Number = 0;
var vc:Number = 0;
var vdelta:Number = 0;
var xun:Number = 0;
var xunbas:Number = 0;
var xunhaut:Number = 0;
var xdeux:Number = 0;
var xdeuxbas:Number = 0;
var xdeuxhaut:Number = 0;
var vracine:Number = 0;
 
valider_btn.onPress = function()
{
va = Number(a_txt.text);
vb = Number(b_txt.text);
vc = Number(c_txt.text);
 
if(isNaN(va) || isNaN(vb) || isNaN(vc))
{
delta_txt.text = "Veuillez entrer des nombres SVP!";
res1_txt.text = "";
res2_txt.text = "";
}
else if(!va && !vb && !vc)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation toujours vérifiée.";
res2_txt.text = "";
}
else if(!va && !vb)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation impossible.";
res2_txt.text = "";
}
else if(!va)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation du premier degré.";
xun = -vc/vb;
res2_txt.text = "x est égal à " + xun;
}
else
{
vdelta = vb*vb - 4*va*vc;
delta_txt.text = "Le delta est égal à " + vdelta + ".";
 
if(vdelta > 0)
{
vracine = Math.sqrt(vdelta);
 
xunbas = 2*va;
xdeuxbas = xunbas;
 
xunhaut = vracine-vb;
xdeuxhaut = -vb-vracine;
 
xun = xhaut/xunbas;
xdeux = xdeuxhaut/xdeuxbas;
 
res1_txt.text = "x1 est égal à " + xunhaut + " / " + xunbas + " , soit " + xun + ".";
res2_txt.text = "x2 est égal à " + xdeuxhaut + " / " + xdeuxbas + " , soit " + xdeux + ".";
}
else if(vdelta < 0)
{
res1_txt.text = "Aucune solution dans l'ensemble des réels.";
res2_txt.text = "";
}
else
{
xdeuxhaut = -vb;
xdeuxbas = 2*va;
 
xdeux = xdeuxhaut/xdeuxbas;
 
res1_txt.text = "x1 et x2 sont confondus.";
res2_txt.text = "x est égal à " + xdeuxhaut + " / " + xdeuxbas + " , soit " + xdeux + ".";
}
}
};


Je n'ai pas d'interpréteur AS2 sous la main donc je n'ai pas pu vérifier ce code mais il devrait être bon :p

N'y voit en tout cas aucune critique "malintentionnée", ce que je dis est purement constructif et j'espère que vous ferez de même avec mes scripts ^^

Sinon je te fais une version AS3:

// Supposons va, vb et vc, 3 entiers
var va:int = 0;
var vb:int = 0;
var vc:int = 0;
var vdelta:int = 0;
var xun:Number = 0;
var xunbas:int = 0;
var xunhaut:Number = 0;
var xdeux:Number = 0;
var xdeuxbas:int = 0;
var xdeuxhaut:Number = 0;
var vracine:Number = 0;
 
valider_btn.addEventListener(MouseEvent.CLICK, calculerDelta);
 
function calculerDelta(ev:Event):void
{
if(a_txt.text.test(/[^0-9]/) || b_txt.text.test(/[^0-9]/) || c_txt.text.test(/[^0-9]/))
{
delta_txt.text = "Veuillez entrer des nombres SVP!";
res1_txt.text = "";
res2_txt.text = "";
 
return;
}
 
va = int(a_txt.text);
vb = int(b_txt.text);
vc = int(c_txt.text);
 
if(!va && !vb && !vc)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation toujours vérifiée.";
res2_txt.text = "";
}
else if(!va && !vb)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation impossible.";
res2_txt.text = "";
}
else if(!va)
{
delta_txt.text = "Pas de delta. ";
res1_txt.text = "Équation du premier degré.";
xun = -vc/vb;
res2_txt.text = "x est égal à " + xun;
}
else
{
vdelta = vb*vb - 4*va*vc;
delta_txt.text = "Le delta est égal à " + vdelta + ".";
 
if(vdelta > 0)
{
vracine = Math.sqrt(vdelta);
 
xunbas = 2*va;
xdeuxbas = xunbas;
 
xunhaut = vracine-vb;
xdeuxhaut = -vb-vracine;
 
xun = xhaut/xunbas;
xdeux = xdeuxhaut/xdeuxbas;
 
res1_txt.text = "x1 est égal à " + xunhaut + " / " + xunbas + " , soit " + xun + ".";
res2_txt.text = "x2 est égal à " + xdeuxhaut + " / " + xdeuxbas + " , soit " + xdeux + ".";
}
else if(vdelta < 0)
{
res1_txt.text = "Aucune solution dans l'ensemble des réels.";
res2_txt.text = "";
}
else
{
xdeuxhaut = -vb;
xdeuxbas = 2*va;
 
xdeux = xdeuxhaut/xdeuxbas;
 
res1_txt.text = "x1 et x2 sont confondus.";
res2_txt.text = "x est égal à " + xdeuxhaut + " / " + xdeuxbas + " , soit " + xdeux + ".";
}
}
};


En gros dans ce cas-ci, ça change pas grand chose visuellement ;D

EDIT: J'ai remplacé
!a_txt.text.test(/^[0-9]+$/)
par
a_txt.text.test(/[^0-9]/)
------------------------------------------
"Olissea en force | (╯°□°)╯︵ ┻━┻ Hmm… ಠ_ಠ | Vertuous circles ☺"
Piiu
[Avatar de Piiu]
posté le 17/05/2010 à 16h58
Acharné 4+
[Message déjà lu]
Et c'est là qu'on voit toute l'utilité de ta balise code ^^
------------------------------------------
"K + P"
YuuKi
posté le 17/05/2010 à 17h22
Confirmé-pro +
[Message déjà lu]
J'avoue elle est pas mal, mais je pense que ça serait encore mieux si les codes étaient dans un cadre comme ceux des "hors sujet" ou "citation", avec une scroll bar pour économiser la place
Page : 1
Répondre au sujet
Réponse rapide :