Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 17:06   #1
Neitrosha
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 29
По умолчанию умножение многочлена

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

вот сам код (всё работает)

procedure PrintPolinom(var B:link; var Ed:TEdit);
var S:string;
t:Link;
begin
S:='';
t:=B;
While t<>nil do
begin
S:=S+'+'+IntToStr(t^.coef)+'x^'+Int ToStr(t^.st);
t:=T^.next;
end;
ed.Text:=S;
end;

procedure AddToEnd (var B:link; var w:link);
var t :Link;
begin
t:=B;
if B<>nil
then
begin
While T^.next<>nil do
t:=t^.next;
t^.next:=w;
end
else
B:=w;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
p:=nil; Q:=nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var w:link;
begin
new(w);
W^.coef:=StrToInt(edit1.Text);
W^.st:=StrToInt(edit2.Text);
W^.next:=nil;
AddToEnd(P,w);
PrintPolinom(P,edit3);
end;

procedure TForm1.Button2Click(Sender: TObject);
var w:link;
begin
new(w);
W^.coef:=StrToInt(edit4.Text);
W^.st:=StrToInt(edit5.Text);
W^.next:=nil;
AddToEnd(Q,w);
PrintPolinom(Q,edit6);
end;


вообще, каждый множитель у меня вбивается отдельно, т.е. сначала вбивается коэффициент перед ИКС, потом его степень, нажатием на баттон он переходит в эдит уже в готовом виде (например "+7x^5"), и так далее.

нужна процедура перемножения...
Neitrosha вне форума Ответить с цитированием
Старый 28.02.2011, 17:10   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
нужна процедура перемножения
Вы готовы заплотить денежку?
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 28.02.2011, 17:27   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

чтобы перемножать многочлены нужно иметь массивы (array) их коэффициентов и массив для коэфициентов результата. Затем перемножаем эти массивы.
как в столбик но без переноса десятков.


_ _ _ 1 2 1 2 (1x^3 + 2x^2 + 1x^1 +2x^0)
_ _ _ _ 4 1 2 ( 4x^2 + 1x^1 + 2x^0)
----------------
_ _ _ 2 4 2 2
_ _ 1 2 1 2
_ 4 8 4 8
---------------
_ 4 9 8 13 4 2 (4x^5 + 9x^4 + 8x^2 + 13x^1 + 2x^0)


либо пытаемся вспомнить/найти/вывести формулу для подсчета коэффициентов результирующего многочлена. Она есть (завуалированная) даже в приведенном примере.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление многочлена записаного в файле Senator16 Общие вопросы C/C++ 4 16.01.2011 20:54
синтаксический анализ многочлена Sparky Помощь студентам 1 20.10.2010 21:40
вычислить значение многочлена. С++ varlonec Помощь студентам 0 26.01.2010 17:55
[Паскаль] Коэффициенты многочлена Victorina Помощь студентам 2 04.11.2009 07:42
Получить значение многочлена при данном x Aleksandr Паскаль, Turbo Pascal, PascalABC.NET 7 07.03.2008 18:54