Номинация информатика как профилирующая дисциплина
Задание № 2.
Выполнил Выростков Дмитрий Андреевич,
студент 3 курса ВГУ (г. Воронеж, Университетская площадь, 1),
факультета ПММ, специальноcть "Прикладная математика и
информатика",
специализация - "Математическое обеспечение ЭВМ
E-Mail: diman8@hotbox.ru}
uses crt, queue;
type
proom = ^room;
room = record
x, y : longint; {расположение комнаты }
lab : longint; {метка (для кратчайшего пути )}
pN, pE, pS, pW : proom; {указатели на соседнии комнаты }
prev : proom; {предыдущий элемент списка}
end;
var pFirst, pEnd : proom; {первая и последняя комныты }
pLast1, pLast2, pLast3, pLast4 : proom; {последние элементы списка}
nRooms : longint; {количество комнат}
procedure Error(ErrSt : string); {вывод ошибки }
begin
writeln(ErrSt);
write('Нажмите любую клавишу для выхода...');
readkey; halt(1);
end;
procedure AddRoom(var x, y : longint; c : char); {добавление новой
комнаты }
var p : proom;
ppl : ^proom;
begin
if (pEnd = nil) then begin {в случае создания самой первой комнаты }
new(pEnd); inc(nRooms);
pEnd^.x := x; pEnd^.y := y;
pEnd^.lab := -1;
pEnd^.prev := nil;
pEnd^.pN := nil; pEnd^.pE := nil; pEnd^.pS := nil; pEnd^.pW := nil;