Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Hito on March 11, 2022, 10:16:28 PM

Title: Как из строки сделать математический пример, чтобы узнать решение?
Post by: Hito on March 11, 2022, 10:16:28 PM
К примеру, есть некая переменная - $var, которая несет в себе строку - "90-10+5". Как эту строку перевести в числа и получить 85?
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: Hito on March 12, 2022, 09:17:02 AM
(https://sun9-47.userapi.com/impg/2EhvY8GfgXv5VcELB4GlS5SYMewU_CfVzrKCwQ/uvEehO392Js.jpg?size=456x155&quality=95&sign=6b41a4c4e8935ea1037ab3c674f57a36&type=album)

Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: Oblie1968 on March 13, 2022, 02:45:33 AM
Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?

Видимо, вы имеете ввиду, как посчитать формулу, чтобы получить ответ?
Ну, как, как. Брать и аккуратненько разбирать строку на операции, операнды...
Есть другой вариант, открыть Excel, занести туда формулу непосредственно текстом и потом считать результат. Для таких простых формул вместо Excel-а можно использовать калькулятор.
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: Hito on March 13, 2022, 09:02:35 AM
Вот, как текст, я с этой картинки уравнение получаю. Как потом этот текст превратить в уравнение?

Видимо, вы имеете ввиду, как посчитать формулу, чтобы получить ответ?
Ну, как, как. Брать и аккуратненько разбирать строку на операции, операнды...
Я все же где-то глубоко в душе надеялся, что у нас есть способ покрасивее...)) Благодарю за ответ ))
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: dramster on March 21, 2022, 08:31:10 PM
http://crapware.aidf.org/forum/index.php?topic=3969.0
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: dramster on March 22, 2022, 12:42:58 AM
Вариант для примеров посложнее, но только плюс и минус.
Code: (clickermann) [Select]
$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
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: Hito on March 23, 2022, 04:03:35 PM
Вариант для примеров посложнее, но только плюс и минус.
Code: (clickermann) [Select]
$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

Благодарю!  :)
Title: Re: Как из строки сделать математический пример, чтобы узнать решение?
Post by: dramster on March 24, 2022, 07:08:58 PM
Я надеюсь ты 4.14 версией пользуешся. В 4.13 там какой-то косяк с strpos если выражение длинное. С количеством чисел где-то до пяти еще норм, дальше всё. В 4.14 проблем нет.