Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Создания, обработки, просмотра содержимого списка



Uses Crt;  
   
Type PList = ^ List; { описание элемента хранения узла списка и }
List = record { указателя на узел списка }
info: word; link: plist;  
end;  
   
var f: PList; cod,n: byte; sum: word;  
   
Procedure Create1(var first: PList; n: byte); var p: PList; i: byte; begin first:=nil; { first – указатель на первый узел списка } { n – количество узлов в списке }   { создание пустого списка }
for i:=1 to n do begin  
new(p); { создание узла списка }
write(‘Значение инф. поля‘, i, ‘-го элемента списка = ‘);  
readln(p^.info); { заполнение информационного поля узла }
p^.link:=first; { установка связи между вставленным узлом и списком }
first:=p; { новое значение указателя на первый узел }
end; end;  
   
Procedure Print(first: PList); { просмотр информац. полей узлов списка }
var p: PList; i: byte;  
begin i:=0;  
while (p <> nil) do begin  
inc(i);  
writeln(‘Информационное поле ‘, i, ‘-го элемента списка = ‘, p^.info);  
p:=p^.link;  
end;  
end;  
   
Procedure Work(first: PList; var s: word); { суммирование значений информ. }
var p: PList; { полей узлов списка }
begin s:=0;  
while (p <> nil) do begin  
s:=s+p^.info; p:=p^.link;  
end;  
end;  
   
Procedure Destroy(var first: PList); { разрушение списка }
begin  
...  
end;  
   
Procedure Message; { вспомогательная процедура }
begin  
writeln(‘Список пуст‘); write(‘Нажмите любую клавишу‘); readkey  
end;  
   
begin  
f:=nil; { первоначально список пуст }
repeat Clrscr;  
writeln(‘1-Создание 2-Просмотр 3–Обработка 4–Разрушение 5-Выход‘);  
write(‘Код действия = ‘); readln(cod);  
case cod of  
1: begin { создание списка }
write(‘Количество узлов в списке = ‘); readln(n);  
Сreate(f,n); write(‘Нажмите любую клавишу‘); readkey  
end;  
2: begin { просмотр списка }
if f=nil then Message  
else begin  
Print(f); write(‘Нажмите любую клавишу‘); readkey  
end;  
3: begin { обработка списка }
if f=nil then Message  
else begin  
Work(f,sum); writeln(‘Сумма значений инф. полей = ‘, sum);  
write(‘Нажмите любую клавишу‘); readkey  
end;  
4: begin { разрушение списка }
if f=nil then Message  
else begin  
Destroy(f); writeln(‘Список разрушен‘);  
write(‘Нажмите любую клавишу‘); readkey  
end;  
5: Destroy(f) { выход }
end;  
until (cod = 5); Clrscr  
end.  
             



Дата публикования: 2014-11-26; Прочитано: 224 | Нарушение авторского права страницы



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...