Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ НОД двух многочленов!

Автор: Andrey13 14.05.2006 18:07

Задали задачку - реализовать подпрограммы для работы с многочленами. Я сделал все операции (+ - * / неравенство), и теперь, используя их необходимо создать программму нахождения НОД двух многочленов.
Я сделал следующее(используя алгоритм Евклида):

procedure NODMnog(f,g:mnogochlen; var r:mnogochlen);
var
a,b:mnogochlen;

begin
clearMnog(a);clearMnog(b);clearMnog( r );

repeat
divMnog(f,g,a,b);
if mnogMoreThanZero(b)=false then r:=g else
begin
f:=g;
g:=b;
end;
until mnogMoreThanZero( r )=true;

end;

Функции:
divMnog(многочлен1,многочлен2,результ.мног,остаток)
mnogMoreThanZero(многочлен)=Если многочлен имеет хотябы 1 коэфф, то истина, иначе - ложь
Многочлен задан массивом его коеффицентов.

Проблема вышла в следующем - алгоритм не находит НОД для многочленов, имеющих более 1 члена =(

Пожалуйста, помогите кто чем сможет - завтра сдача!

Автор: volvo 14.05.2006 18:59

Andrey13, ты полностью программу присоедини, неясно что именно у тебя происходит в divMnog...

Автор: Andrey13 14.05.2006 20:40

Цитата(volvo @ 14.05.2006 14:59) *

Andrey13, ты полностью программу присоедини, неясно что именно у тебя происходит в divMnog...

вот модуль и сама программа
очень надеюсь на помощь!


Прикрепленные файлы
Прикрепленный файл  MNOG.PAS ( 4.74 килобайт ) Кол-во скачиваний: 328
Прикрепленный файл  ZADACHI.PAS ( 1.69 килобайт ) Кол-во скачиваний: 284