@hehehah3 Качаешь архив с модулем, затем устанавливаешь в программу.
изображение_2023-08-20_122528750.png
изображение_2023-08-20_122606293.png
изображение_2023-08-20_122811316.png
Как можно решать линейные уравнения? Самые простые где 2 числа, неизвестное и + - * /
типа
6*X=14
X+2=80
12+15=X
@vaxab23111 Простой способ: переместите X в одну сторону выражения.
X = 14/6
X = 80 - 2
X = 12+15

@vaxab23111
Первое что пришло в голову
var task = "X+2=80";
var task_temp = '';
var task_arr = [];
for (var i = 0; i < task.length; i++) {
var ch = task[i]
if (/[0-9]/i.test(ch)) {
task_temp += ch;
} else {
if (task_temp != '') {
task_arr.push(task_temp);
task_temp = '';
}
task_arr.push(ch);
}
}
if (task_temp != '') {
task_arr.push(task_temp);
}
var reversed = {
"+":"-",
"-":"+",
"*":"/",
"/":"*",
}
switch(task_arr.indexOf("X")){
case 0: {
task = task_arr[4]+reversed[task_arr[1]]+task_arr[2];
break;
}
case 2: {
task = task_arr[4]+reversed[task_arr[1]]+task_arr[0];
break;
}
case 4: {
task = task_arr.join("").replace("=X",'');
break;
}
}
eval("var result="+task)
[[A]]=Math.round(result)
@vaxab23111 Тоже решил поучавствовать на разминки мозга, на 100% не претендует
function getCooficient(exp) {
var matched = exp.match(/(\d+)[\s*+-/]*[A-z]/)
if (matched) {
return parseFloat(matched.pop())
}
return 1
}
function evalSide(exp) {
var cleanExp = exp.replace(/\d*[\s*+-/]*[A-z]/, '')
if (!cleanExp) return 0
return eval(cleanExp)
}
function invertResult(num) {
return num > 0? -num : num
}
function solveEquation(equation) {
var parts = equation.split("=")
var leftSide = parts[0].trim()
var rightSide = parts[1].trim()
var coefficient = 1
var leftSideResult = evalSide(leftSide)
var rightSideResult = evalSide(rightSide)
if (/[A-z]/.test(leftSide)) {
var coefficient = getCooficient(leftSide)
leftSideResult = invertResult(leftSideResult)
} else {
var coefficient = getCooficient(rightSide)
rightSideResult = invertResult(rightSideResult)
}
return (leftSideResult + rightSideResult) / coefficient
}
log(solveEquation("6 * X=14")); // выводит 2.3333333333333335
log(solveEquation("X+2=80")); // выводит 78
log(solveEquation("12+15=X")); // выводит 27
log(solveEquation("6 *X + 2=14")); // выводит 2
log(solveEquation("X+2 * 2=80")); // выводит 76
log(solveEquation("12+15/5=X")); // выводит 15
[[BAS_VARIABLE]] = solveEquation("6 * X=14")