Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Hito on March 11, 2022, 10:16:28 PM
-
К примеру, есть некая переменная - $var, которая несет в себе строку - "90-10+5". Как эту строку перевести в числа и получить 85?
-
(https://sun9-47.userapi.com/impg/2EhvY8GfgXv5VcELB4GlS5SYMewU_CfVzrKCwQ/uvEehO392Js.jpg?size=456x155&quality=95&sign=6b41a4c4e8935ea1037ab3c674f57a36&type=album)
Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?
-
Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?
Видимо, вы имеете ввиду, как посчитать формулу, чтобы получить ответ?
Ну, как, как. Брать и аккуратненько разбирать строку на операции, операнды...
Есть другой вариант, открыть Excel, занести туда формулу непосредственно текстом и потом считать результат. Для таких простых формул вместо Excel-а можно использовать калькулятор.
-
Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?
Видимо, вы имеете ввиду, как посчитать формулу, чтобы получить ответ?
Ну, как, как. Брать и аккуратненько разбирать строку на операции, операнды...
Я все же где-то глубоко в душе надеялся, что у нас есть способ покрасивее...)) Благодарю за ответ ))
-
http://crapware.aidf.org/forum/index.php?topic=3969.0
-
Вариант для примеров посложнее, но только плюс и минус.
$str = "7-67+345+876+86+7-67-56787+7898+6787+56789"
$len = 1
arrpush($sign, 0)
WHILE($len > 0)
$len = STRPOS ($str, "+", $len)
IF($len > 0)
arrpush($sign, $len)
$len = $len+1
END_IF
END_CYC
$len = 1
WHILE($len > 0)
$len = STRPOS ($str, "-", $len)
IF($len > 0)
arrpush($sign, $len+0.00004)
$len = int($len+1)
END_IF
END_CYC
arrpush($sign, STRLEN ($str)+1)
ARRSORT ($sign)
$num = STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
FOR($a=1,$a<arrsize($sign)-1)
IF(int($sign[$a])<$sign[$a])
$num = $num - STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
else
$num = $num + STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
END_IF
END_CYC
print("ответ: ", $num)
halt
-
Вариант для примеров посложнее, но только плюс и минус.
$str = "7-67+345+876+86+7-67-56787+7898+6787+56789"
$len = 1
arrpush($sign, 0)
WHILE($len > 0)
$len = STRPOS ($str, "+", $len)
IF($len > 0)
arrpush($sign, $len)
$len = $len+1
END_IF
END_CYC
$len = 1
WHILE($len > 0)
$len = STRPOS ($str, "-", $len)
IF($len > 0)
arrpush($sign, $len+0.00004)
$len = int($len+1)
END_IF
END_CYC
arrpush($sign, STRLEN ($str)+1)
ARRSORT ($sign)
$num = STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
FOR($a=1,$a<arrsize($sign)-1)
IF(int($sign[$a])<$sign[$a])
$num = $num - STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
else
$num = $num + STRCUT2($str, int($sign[$a])+1, int($sign[$a+1])-1)
END_IF
END_CYC
print("ответ: ", $num)
halt
Благодарю! :)
-
Я надеюсь ты 4.14 версией пользуешся. В 4.13 там какой-то косяк с strpos если выражение длинное. С количеством чисел где-то до пяти еще норм, дальше всё. В 4.14 проблем нет.