| Код |
unit unit2;
interface {---} procedure InitL2; procedure WriteL2; procedure InsertL2(P:PZveno2; z1,z2:intger); procedure DeleteL2(D:Pzveno2;var z1,z2:values); {--------------------------------------------------------------} type values=record x,y:integer; end; {--------------------------------------------------------------} type PZveno2=^TZveno2; TZveno2=receord next,pred:PZveno:info:values;end; varFirst, Last:PZveno;{ykazateli na pervoe i poslednee zveno} {--------------------------------------------------------------} implementation {---} procedure InitL2; begin First:=nil;Last:=nil;end; {--------------------------------------------------------------} procedure WriteL2; var P:PZveno; begin P:=Last; while P<>nil do begin Write(P^.info.x); Write(P^.info.y); P:=P^.pred; end; end; {---------------------------------------------------------------} procedure InsertL2(P:PZveno2; z1,z2:intger); var N,S:PZveno2; begin new(N); N^.info.x:=z1;N^.info.y:=z2; if P=nil then S:=First else S:=P^.next; N^.next:=S; if P=nil then First:=N else P^.next:=N; N^.pred:=P; if S=nil then Last:=N else S^.pred:=N; end; {-----------------------------------------------------------------} procedure DeleteL2(D:Pzveno2;var z1,z2:values); var P,S:PZveno2; begin P:=D^.pred; S:=D^.next; if P=nil then First:=S else P^.next:=S; if S=nil then Last:=P else S^.pred:=P; z1:=D^.info.x; z2:=D^.info.y; dispose(D); end; {------------------------------------------------------------------} end.
|
вот модуль для работы с двунаправленным списком. Вопрос: как выполнить следующие операции над полиномами:сложение, двух с получением третьего,умножение двух с получением третьего и дифференцирование, инициализация многочлена по заданной строке, изоб-ей его алгеб-ую запись. У кого какие мысли? |