Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
var canvas, d, b, a, c, ligne1, ligne2, s1, ligne3, rd, s2, ligne4, commande, nomParametre, valeur, x, formule, equation, bouton, valeur_a, valeur_b, valeur_c; /** * Fonction exécutée une fois, au départ */ function actions_initiales() { noLoop(); document.body.style.paddingLeft="20px"; createP('Trouver les solutions de l\'équation'); equation=createP((codeMath('text( )ax^2+bx+c=0'))); createP('La formule utilisée'); formule=createP((codeMath('text( )frac(-b+-sqrt(b^2-4ac))(2a)'))); refreshMathJax();valeur_a=creerEntreeNommee('a = ',''); siRetourPrudent("valeur_a",valeur_a,"solution",solution); createSpan("<br>"); valeur_b=creerEntreeNommee('b = ',''); siRetourPrudent("valeur_b",valeur_b,"solution",solution); createSpan("<br>"); valeur_c=creerEntreeNommee('c = ',''); siRetourPrudent("valeur_c",valeur_c,"solution",solution); createSpan("<br>"); createSpan("<br>"); bouton=createButton('Trouver les solutions'); siClicPrudent("bouton",bouton,"solution",solution); ligne1=createP(''); ligne2=createP(''); ligne3=createP(''); ligne4=createP(''); placer_cadre_GeoGebra(); } /** * Fonction exécutée périodiquement, de façon répétée */ function actions_en_boucle() { } /** * Décrire cette fonction… */ function placer_cadre_GeoGebra() { if (retournerSiCadreCharge('cadreGGB1',"GEOGEBRA")) { positionnerObjetPrudent("(select('#'+'cadreGGB1'))",(select('#'+'cadreGGB1')),0,500); } else { faireDelaiPrudent("placer_cadre_GeoGebra",placer_cadre_GeoGebra,0.1); } } /** * Décrire cette fonction… */ function transmettre_parametres_a_GeoGebra(a, b, c) { if (retournerSiCadreCharge('cadreGGB1',"GEOGEBRA")) { fixerValeurVariableGeoGebraF('a',a,'cadreGGB1'); fixerValeurVariableGeoGebraF('b',b,'cadreGGB1'); fixerValeurVariableGeoGebraF('c',c,'cadreGGB1'); } } /** * Décrire cette fonction… */ function solution() { a = valeurPrudent("valeur_a",valeur_a); b = valeurPrudent("valeur_b",valeur_b); c = valeurPrudent("valeur_c",valeur_c); transmettre_parametres_a_GeoGebra(a, b, c); if (a == 0) { fixeValeurPrudent("valeur_a",valeur_a,0); } if (b == 0) { fixeValeurPrudent("valeur_b",valeur_b,0); } if (c == 0) { fixeValeurPrudent("valeur_c",valeur_c,0); } fixeContenuPrudent("ligne1",ligne1,''); fixeContenuPrudent("ligne2",ligne2,''); fixeContenuPrudent("ligne3",ligne3,''); fixeContenuPrudent("ligne4",ligne4,''); coeurSolution(a, b, c); refreshMathJax();} /** * Décrire cette fonction… */ function coeurSolution(a, b, c) { d = Math.pow(b, 2) - 4 * a * c; if (!estNombre(d)) { fixeContenuPrudent("ligne1",ligne1,'<b>Attention :</b> les valeurs de <i>a</i>, <i>b</i> et <i>c</i> doivent être <i>des nombres</i>.'); return ; } if (a == 0) { fixeContenuPrudent("ligne1",ligne1,'<b>Attention :</b> la valeur de <i>a</i> doit être <i>non nulle</i>.'); return ; } fixeContenuPrudent("ligne1",ligne1,(codeMath((substitution('"discriminant" =b^2-4ac=(@2)^2-4(@1)(@3)~~@4',[a, b, c, d]))))); if (d < 0) { fixeContenuPrudent("ligne2",ligne2,'Pas de solution'); } if (d == 0) { s1 = -b / (2 * a); fixeContenuPrudent("ligne2",ligne2,'Une solution'); fixeContenuPrudent("ligne3",ligne3,(codeMath((substitution('Solution =frac(-b)(2a)=frac(-(@2))(2(@1))~~@3',[a, b, s1]))))); } if (d > 0) { rd = Math.sqrt(d); s1 = (-b + rd) / (2 * a); s2 = (-b - rd) / (2 * a); fixeContenuPrudent("ligne2",ligne2,'Deux solutions'); fixeContenuPrudent("ligne3",ligne3,(codeMath((substitution('Solution1 =frac(-b+sqrt(b^2-4ac))(2a)=frac(-(@2)+sqrt((@2)^2-4(@1)(@3)))(2(@1))~~ @4',[a, b, c, s1]))))); fixeContenuPrudent("ligne4",ligne4,(codeMath((substitution('Solution2 =frac(-b-sqrt(b^2-4ac))(2a)=frac(-(@2)-sqrt((@2)^2-4(@1)(@3)))(2(@1))~~@4 ',[a, b, c, s2]))))); } }