2016-12-03 9 views
0

私は数学問題のジェネレーターを書いていますが、2つの数字を含む方程式だけが表示されます。何も表示されず、「未定義」と答えて表示しません。ここで(それは今不完全であることに注意してください)3つの数字がHTMLに表示されない方程式

var type = 0; 
 
var ans = 0; 
 

 
function generatenumeral() { 
 
    var num = (Math.round(1000 * Math.random()))/100; 
 
    var abs = Math.random(); 
 
    if (abs < .4) { 
 
     num = num * -1; 
 
    } 
 
    console.log(num); 
 
    return (num); 
 
} 
 

 
function generatelength() { 
 
    var num = (Math.ceil(3 * Math.random())); 
 
    console.log(num); 
 
    return (num); 
 
} 
 

 
function generateSymbol() { 
 
    var sign = 0; 
 
    var num = (Math.round(12 * Math.random())); 
 
    console.log(num); 
 
    if (num === 0 || num == 1 || num == 9) { 
 
     sign = "+"; 
 
    }; 
 
    if (num === 2 || num == 3 || num == 10) { 
 
     sign = "-"; 
 
    }; 
 
    if (num === 4 || num == 5 || num == 11) { 
 
     sign = "/"; 
 
    }; 
 
    if (num === 6 || num == 7 || num == 12) { 
 
     sign = "*"; 
 
    }; 
 
    if (num == 8) { 
 
     sign = "+"; 
 
    }; 
 
    return (sign); 
 
} 
 

 
function WarmUpAr() { 
 
    var leng = generatelength(); 
 
    if (leng == 1) { 
 
     var cool = twoNumb(); 
 
     return (cool); 
 
    } 
 
    if (leng == 2) { 
 
     var cool = threNumb(); 
 
     return (cool); 
 
    } 
 
function twoNumb() { 
 
    var sign = 0; 
 
    var equation = 0; 
 
    var a = generatenumeral(); 
 
    var b = generatenumeral(); 
 
    var siggn = generateSymbol(); 
 
    equation = a + " " + siggn + " " + b; 
 
    if (siggn == "+") { 
 
     ans = a + b; 
 
    } 
 
    if (siggn == "-") { 
 
     ans = a - b; 
 
    } 
 
    if (siggn == "/") { 
 
     ans = a/b; 
 
    } 
 
    if (siggn == "*") { 
 
     ans = a * b; 
 
    } 
 
    return (equation); 
 
} 
 

 
function threNumb() { 
 
    var sign = 0; 
 
    var a = generatenumeral(); 
 
    var b = generatenumeral(); 
 
    var c = generatenumeral(); 
 
    var siggn = generateSymbol(); 
 
    var siggnA = generateSymbol(); 
 
    var equation = a + " " + siggn + " " + b +" "+ siggnA +" "+ c; 
 
    if (siggn.equals("+")) { 
 
     if (siggna.equals("+")) { 
 
      ans = a + b + c; 
 
     } 
 
     if (siggna.equals("-")) { 
 
      ans = (a + b) - c; 
 
     } 
 
     if (siggna.equals("/")) { 
 
      ans = a + (b/c); 
 
     } 
 
     if (siggna.equals("*")) { 
 
      ans = a + (b * c); 
 
     } 
 
    } 
 
    if (siggn.equals("-")) { 
 
     if (siggna.equals("+")) { 
 
      ans = a - b + c; 
 
     } 
 
     if (siggna.equals("-")) { 
 
      ans = (a - b) - c; 
 
     } 
 
     if (siggna == "/") { 
 
      ans = a - (b/c); 
 
     } 
 
     if (siggna.equals("*")) { 
 
      ans = a - (b * c); 
 
     } 
 
    } 
 
    if (siggn.equals("/")) { 
 
     if (siggna.equals("+")) { 
 
      ans = (a/b) + c; 
 
     } 
 
     if (siggna.equals("-")) { 
 
      ans = (a/b) - c; 
 
     } 
 
     if (siggna.equals("/")) { 
 
      ans = (a/b)/c; 
 
     } 
 
     if (siggna.equals("*")) { 
 
      ans = (a/b) * c; 
 
     } 
 
    } 
 
    if (siggn.equals("*")) { 
 
     if (siggna.equals("+")) { 
 
      ans = (a * b) + c; 
 
     } 
 
     if (siggna.equals("-")) { 
 
      ans = (a * b) - c; 
 
     } 
 
     if (siggna.equals("/")) { 
 
      ans = (a * b)/c; 
 
     } 
 
     if (siggna.equals("*")) { 
 
      ans = (a * b) * c; 
 
     } 
 
    } 
 
    // if (siggn == "^") { 
 
    //  var ba = Math.round(b); 
 
    //  var count = 0; 
 
    //  for (count = 0; count < ba; count += 1) { 
 
    //   var ab = ab * a; 
 
    //  } 
 
    //  ans = ab; 
 
    return (equation); 
 
} 
 
document.getElementById("ans").innerHTML = "not yet"; 
 

 
function arithmetic() { 
 
    type = 1; 
 
    document.getElementById("demo").innerHTML = WarmUpAr(); 
 
} 
 

 
function preAlg() { 
 
    type = 2; 
 
    document.getElementById("demo").innerHTML = "hello"; 
 
} 
 

 
function Alg() { 
 
    type = 3; 
 
    document.getElementById("demo").innerHTML = "This is cool"; 
 
} 
 

 
function theAns() { 
 
    document.getElementById("ans").innerHTML = ans; 
 
}
<p> "your warm up is....." </p> 
 
    <button onclick="arithmetic()">Arithmetic Warm Up </button> 
 
    <button onclick="preAlg()">PreAlg Warm Up </button> 
 
    <button onclick="Alg()">Algerbra Warm Up </button> 
 
    <p id="demo"></p> 
 
    <p>the answer is ....</p> 
 
    <button onclick="theAns()">answer</button> 
 
    <p id="ans"></p>

+1

あなたは 'WarmUpAr'機能に問題があります:あなたは変数「式」を設定して、「式は」で置き換えることができ返しどこどこの間にあるすべて)twoNumb()とthreNumb(で。あなたは '}' – Alon

答えて

0

あなたはそれはあなたが未定義のエラーにこの機能WarmUpAr

0

近くを得ている理由です、WarmUpAr目的球を閉じるのを忘れて全体のコードです();

0

threNumb()が失敗するのは、すべてのif文でsiggna.equals()を呼び出すためです。 twoNumb()はequals()の代わりに==を使用しているため動作します。

また、方程式の答えを計算するという点では、難しい方法です。

ans = eval(equation); 
関連する問題