Что нового

[Математика] Решение формул записаных как текст

forfrends

Новичок
Сообщения
176
Репутация
3
Всем добрый день!
Вот столкнулся с необходимостью решать некоторые формулы, но проблема в том что формулы оказываются записанными в текстовой переменной, и как их решать?...
Пример формулы записанной в переменной:
Код:
$per = "((6!)-8)-(5/3)"

В Autoit запись формулы выглядела бы так:
Код:
$per = ((1*2*3*4*5*6)-8)-(5/3)


Вот я и не знаю что делать, так как все нужные формулы находятся в текстовых переменных, и как их оттуда вытянуть и обработать - не имею ни малейшего представления.
Можете что-то подсказать?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
forfrends

Кое-что может эта функция:
Код:
Execute()


но не все...
 
Автор
F

forfrends

Новичок
Сообщения
176
Репутация
3
Код:
Execute()

хм, попробую..


Добавлено:
Сообщение автоматически объединено:

в принцыпе работает, только факториалы не решает. Придется их прописывать в ручную...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
forfrends [?]
В Аутоит запись формулы...
Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.



Поправьте.


Добавлено:
Сообщение автоматически объединено:

forfrends [?]
только факториалы не решает
Код:
$sStr = "10!"

If StringRegExp($sStr, '\d!') Then
	$iTmp = StringRegExpReplace($sStr, '.*(?:^|\D)(\d+?)!.*', '$1')
	Local $sTmp
	For $i = 1 To $iTmp
		$sTmp &= $i & '*'
	Next
	$sStr = StringReplace($sStr, $iTmp & '!', StringTrimRight($sTmp, 1))
EndIf
ConsoleWrite($sStr & @LF)
ConsoleWrite(Execute($sStr) & @LF)
 
Автор
F

forfrends

Новичок
Сообщения
176
Репутация
3
madmasles, исправил :smile:
Спасибо, буду пробовать :smile:
 
Верх