Вопрос № 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
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 7-ой класс)
Ответ отправлен: 18.01.2007, 17:10
Отправить вопрос экспертам этой рассылки
Приложение (если необходимо):
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.