Вопрос № 71550: Немогу дописать процедуру добавляющюю элемент списка заданной структуры в имеющийся список
если не трудно помогите
uses crt;
type pp=^el;
el=record
pole1,pole2:integer;
pnt:pp;
end;
var pb:pp;
k,i:byte; ...
Вопрос № 71.550
Немогу дописать процедуру добавляющюю элемент списка заданной структуры в имеющийся список
если не трудно помогите
uses crt;
type pp=^el;
el=record
pole1,pole2:integer;
pnt:pp;
end;
var pb:pp;
k,i:byte;
{+++++++++++++++++++++++++++++++++}
procedure vyv(uk:pp);
begin
if uk=nil then writeln('список пуст')
else writeln(' поле 1','':4,'поле 2');
while uk<>nil do
begin
writeln(uk^.pole1:8,uk^.pole2:8);
uk:=uk^.pnt;
end;
readkey;
end;
{+++++++++++++++++++++++++++++++++}
procedure analiz(uk:pp);
begin
if uk=nil then writeln('список пуст')
else writeln('вывод первого поля тех элементов, второе поле которых положительно');
while uk<>nil do
begin
if uk^.pole2>0 then writeln(uk^.pole1:6);
uk:=uk^.pnt;
end;
readkey;
end;
{+++++++++++++++++++++++++++++++++}
procedure sozd(var uk:pp);
var tt:pp;
begin
randomize;
new(tt);
uk:=tt;
tt^.pole1:=random(50);
tt^.pole2:=random(50)-25;
for i:=1 to 7 do
begin
new(tt^.pnt);
tt:=tt^.pnt;
tt^.pole1:=random(50);
tt^.pole2:=random(50)-25;
end;
tt^.pnt:=nil;
writeln('список создан');
readkey;
end;
{+++++++++++++++++++++++++++++++++}
procedure add();
begin
end;
{+++++++++++++++++++++++++++++++++}
begin
while true do
begin
clrscr;
writeln('выберите нужную команду:');
writeln('1:создать список');
writeln('2:вывести информацию из списка');
writeln('3:выполнить анализ элементов списка');
writeln('4:добавить элемент списка');
writeln('5:выход из программы');
write('команда номер ');
read(k);
case k of
1:sozd(pb);
2:vyv(pb);
3:analiz(pb);
4:add(pb)
5:halt;
else begin writeln('ошибка, нажмите любую клавишу'); readkey; continue end;
end;
end;
end.
Отправлен: 18.01.2007, 16:57
Вопрос задал: Snik (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Tek
Здравствуйте, Snik!
Если учесть, что вы добавляете элемент в уже созданный вами список, то у вас уже есть нужный код, просто предварительно нужно найти последний элемент списка:
procedure add(var uk:pp);
var tt:pp;
begin
tt = uk;
while (tt^.pnt<>nil) do
tt:=tt^.pnt