Что нового

[Математика] Функция разделения формулы. Тригонометрическая часть влево, остальное вправо

Mr. Anderson

Новичок
Пишу функцию, из уравнения вида x=10-8+12^2*sin([$pi*t/6]) нужно тригонометрическую часть sin([$pi*t/6]) вынести в левую часть, остальное в правую.

Код:
Func RemoveTrig($var) ;Функция переносящая влево тригонометрическую часть и вправо остальную
	$var1 = StringReplace($var, "[", "")
	$var1 = StringReplace($var1, "]", "")
	$trig_part_start = StringInStr($var1, "sin")
	$trig_part_end = StringInStr($var1, ")")
	$trig_part_col = $trig_part_end - $trig_part_start + 1
	$trig_part = StringMid($var1, $trig_part_start, $trig_part_col)

	$oher_part = StringReplace($var1, $trig_part, "")
EndFunc


Всё написанное далее под сомнением, выкладывать не стоит. В данный момент по моей версии нужно заменить "+" на "-" и наоборот, деление или умножение можно сделать потом. Но для того что бы поменять + на минус нужно знать количество вхождений в строку, а для этого я функции не нашел...

В моём примере в правую часть выносится x=10-8+12^2*, это нужно преобразовать в [x-10+8/12^2]. :wacko:

P.S. Поразмыслив пришел к выводу что можно справиться с помощью регулярных выражений. Но с ними увы особо не сталкивался, а c AutoIT и вовсе 3 дня как знаком...
Как записать выражение где [некоторая переменная без ^ и *] стоит между знаков [+], [=] или [-]?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Используй в следующий раз тэг [autoit]...[/autoit] для раскраски кода на нашем форуме. Первое сообщение я поправил.
 
Верх