Паскаль. разбить программу на процедуры
Добавлено: 05 дек 2008, 00:43
Доброе время суток . Мне нужна помошь такого плана У меня есть программа на паскале мне нужно просто разбить ее на процедуры если кто то может мне помоч буду очень благодарен
Код: Выделить всё
Program HomeWork;
type
Polinom=^Monom;
Monom=record
degree, coof: integer;
Next:Polinom;
end;
var
First:Polinom;
Info: Polinom;
firsttry, maxdg, mindg, coofmaxdg, checkdg, dg, co:integer;
begin
First:=nil; {Snachala First ne ukazyvaet ni na chto}
repeat
write('Please, enter degree and coof (0 0 for exit):');
readln(dg, co);
if (dg=0) and (co=0) then break; {Prekrashaem vvod, esli vvedeny nuli}
if First=NIL then begin {esli First=NIL, to sozdaem perviy element}
new(Info); {Sozdali element s adresom v Info}
First:=Info; {Zapomnim ego adres}
end else begin {Esli element ne perviy}
New(Info^.Next); {to sozdaem element na osnove pred.}
Info:=Info^.Next; {tekushiy element - tolko chto sozdanniy}
end;
Info^.degree:=dg; {Zadaem znachenie}
Info^.coof:=co;
until false; {Zicl beskonechen. Preryvaetsya tolko pri vvedenii nulei}
Info^.Next:=NIL; {posledniy element nulevoi}
Info:=First; {Ukazyvaem na perviy element posledovatelnosti}
Mindg:= 32767;
While info<>NIL do begin {Ishem minimalnii koefficient}
if (info^.degree <mindg) then begin
mindg := info^.degree;
end;
Info:=Info^.Next;
end;
Info := First; {Vozvrashaemsya k nachalu spiska}
checkdg:= 32767;
Firsttry:=1;
repeat
maxdg:= -32768;
Coofmaxdg:= 0;
Info:= First;
While info<>NIL do begin {Ishem maximalnii koefficient}
if firsttry = 0 then begin
if (info^.degree > maxdg) and (info^.degree < checkdg) then begin
maxdg := info^.degree;
end;
end else begin
if (info^.degree > maxdg) then begin
maxdg := info^.degree;
end;
end;
Info:=Info^.Next;
end;
Info := First; {Vozvrashaemsya k nachalu spiska}
While info<>NIL do begin {summirue cooficienty}
if info^.degree = maxdg then begin
coofmaxdg := coofmaxdg + info^.coof;
end;
Info:=Info^.Next;
end;
If (coofmaxdg <> 0) and (maxdg <>0) then begin
if (coofmaxdg>0) then begin
write('+');
end;
Write(coofmaxdg, 'x^', maxdg, ' ');
end;
firsttry:= 0;
If maxdg = mindg then break;
checkdg := maxdg;
Until false;
readln;
end.