JangasCodingplace / kumon-math-app

https://kumon-math-app.readthedocs.io/
GNU General Public License v3.0
0 stars 0 forks source link

Complex Multiplication #12

Open JangasCodingplace opened 1 year ago

JangasCodingplace commented 1 year ago

Write a generator class which generates tasks which multiply values between 10 and 9999

e.g.

98 105 302 7831

lanceyy05 commented 1 year ago
function Randomaufgabe50(){
        var num1 = Math.floor(Math.random()*9999+1)
        var num2 = Math.floor(Math.random()*9999+1)
        var solution = num1*num2 
        var task = `Was ist ${num1} * ${num2}?`
        tasklistmultiplication.push(task)
        solutionlistmultiplication.push(solution)
        return

    }

    for(i=1; i<100;i++){
        var newtask =Randomaufgabe50()

    }
    console.log(tasklistmultiplication)
    console.log(solutionlistmultiplication)
lanceyy05 commented 11 months ago

function checkAndReduceEquation(equation) { // Hilfsfunktion für den größten gemeinsamen Teiler (GCD) function gcd(a, b) { while (b !== 0) { const temp = b; b = a % b; a = temp; } return a; }

// Zerlegen der Gleichung in Teile const parts = equation.split('=').map(part => part.trim());

// Überprüfen, ob die Gleichung ausreichend viele Teile hat if (parts.length < 2) { return "Ungültige Gleichung."; }

// Überprüfen und Kürzen der Brüche for (let i = 0; i < parts.length - 1; i++) { const [numerator1, denominator1] = parts[i].split('/').map(part => parseInt(part, 10)); const [numerator2, denominator2] = parts[i + 1].split('/').map(part => parseInt(part, 10));

// Überprüfen auf Richtigkeit der Gleichung
if (numerator1 * denominator2 !== numerator2 * denominator1) {
  return "Die Gleichung ist nicht korrekt.";
}

// Überprüfen, ob der Nenner nicht gleich Null ist
if (denominator1 !== 0 && denominator2 !== 0) {
  // Gleichung kürzen
  const commonDivisor1 = gcd(numerator1, denominator1);
  const commonDivisor2 = gcd(numerator2, denominator2);

  const reducedNumerator1 = numerator1 / commonDivisor1;
  const reducedDenominator1 = denominator1 / commonDivisor1;
  const reducedNumerator2 = numerator2 / commonDivisor2;
  const reducedDenominator2 = denominator2 / commonDivisor2;

  // Die Gleichung in gekürzter Form aktualisieren
  parts[i] = `${reducedNumerator1}/${reducedDenominator1}`;
  parts[i + 1] = `${reducedNumerator2}/${reducedDenominator2}`;
}

}

// Ergebnis der Gleichung zurückgeben return ${equation} ist korrekt und gekürzt.; }

// Beispielaufruf let exampleEquation = "36/12 = 18/6 = 9/3"; let result = checkAndReduceEquation(exampleEquation);

console.log(result);