L1- из положительных элементов и L2-изостальных элементов списка L
(Т.э.=real). 10 раз перечитал FAQ, но всё равно запутался и никак не могу разобраться. Застрял при написании процедуры 'vibor'. Хотя, наверное, лучше выбор сделать в самой программе, а не в процедуре. Помогите плииз.
program spiski;
uses crt;
type tinf=real; tp=^tel;
tel=record
inf:tinf;
psled:tp;
end;
var head:tp; m:real; otvet2:char; pe:tp;
{------------------------------------------}
procedure vsp(var iel:tinf; var head:tp); {создание списка L}
var pe:tp; otvet:char;
begin
writeln ('Vedite elementi spiska L');
writeln('Dlya zaversheniya vvoda nazmite "E"');
repeat
read(m);
new(pe);
pe^.inf:=iel;
pe^.psled:=head;
head:=pe;
otvet:=readkey;
until otvet='e';
end;
{------------------------------------------}
procedure print(head1:tp); {вывод списка}
var pk:tp;
begin
writeln('Spisok');
pk:=head;
while pk<>nil do
begin
write(pk^.inf:5:2,' | ');
pk:=pk^.psled
end;
writeln
end;
{------------------------------------------}
procedure vibor(iel1:tinf;head2:tp); {выбор из L и создание L1 и L2}
var pl1:tp; k:real;
begin
pl1:=head2;
while pl1<>nil do
begin
if pl1^.inf>0 then
new(pl1);
pl1^.inf:=iel1;
k:=iel1;
pl1^.psled:=head2;
head2:=pl1;
end;
writeln
end;
{------------------------------------------}
begin
repeat
clrscr;
vsp(m,head);
print(head);
vibor(head2);
writeln ('Dlya vihoda iz programmi nazmite " Y "');
otvet2:=readkey
until otvet2='y';
end.