Помогите решить задачу "Производная" (Delphi)

Ответить
RelicT
Сообщения: 2
Зарегистрирован: 14 окт 2008, 15:58

Задача состоит в следующем: вводиться функция от одной переменной. Нужно взять ее производную и построить ее график. Приблизительно, нужна следующая функция:
function proizvod(a:string):string; //общая производная
var a:string;
begin
repeat
repeat
zamen:=false;
a:=psum(a); //производная суммы и разности
a:=pproi(a); //производная поизведения и частного
until zamen=false;
a:=ptab(a); //производная табличных величин
until zamen=false;
a:=pupro(a); //упрощение внешнего вида формулы
proizvod:=a;
end;
Буду очень благодарен за помощь )) Я думаю нужно еще учесть скобки...

А вот и сам алгоритм:
1. Замена стандартных обозначений функций их краткими служебными названиями для ускорения работы программы.
2. Повторять замену производных суммы (разности) и произведения (частного) по соответствующим формулам, пока не останется ни одной производной суммы (разности) и произведения (частного). При этом каждый раз необходимо раскрывать скобки.
3. Замена всех производных их табличными значениями.
4. Повторять пункты 2 и 3, пока не останется ни одной производной.
5. Упростить полученное выражение: выкинуть из произведения все единицы, выкинуть все члены, в которых встречаются нули и т.п.

Помогите, пожалуйста, собрать это все в одно целое...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

В каком виде вводится эта функция? Как строка или иначе?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
RelicT
Сообщения: 2
Зарегистрирован: 14 окт 2008, 15:58

Как строка. Я проделал следующую работу: все числа-константы(на которые множат и которые прибавляют) заменил на "ki", где і - номер числа в строке(это нам понадобится для того, чтоб быстрей взять производную и в конечном итоге правильно заменить ki на числа), и все степени(после знака "^" мы договорились ставить "(" и заканчивать ")") заменили на аі. Преподша сказала, что глубина функции не больше 2-х, то есть самое сложное, что можно вводить, это функция в функцие("f(g(x))", "f(x)^g(x)"...). В итоге мы приходим к виду вырежани, которое местит в себе: x, ki,ai. Все числа-константы я внес в масив "к", где каждое число отделяется ";", то же самое и для степеней в масив "а". Вообщем, это нужно увидеть код программы... Я начинающий программер, поэтому код там написан оч сложно ))) И мне стыдно его тут выкладывать, но если он Вам все таки нужен, то выложу ))
Ответить