- •Алгоритм обработки стека Постановка задачи
- •Логическая структура программы
- •Разработка подпрограмм Разработка первой подпрограммы
- •Спецификация
- •Метод решения
- •Информационная модель
- •Программная модель
- •Разработка второй подпрограммы
- •Спецификация
- •Перечень параметров:
- •Метод решения
- •Информационная модель
- •Программная модель
- •Разработка третьей подпрограммы
- •Спецификация
- •Вид: процедура.
- •Перечень параметров:
- •Метод решения
- •Информационная модель
- •Программная модель
- •Разработка программы
- •Метод решения
- •Информационная модель
- •Программная модель (текст программы)
Алгоритм обработки стека Постановка задачи
Программа должна предусматривать включение нового элемента в стек, исключение очередного элемента из стека, просмотр всего содержимого стека.
Стек по структуре представляет собой линейный однонаправленный список. Элемент списка это запись, содержащая два поля – информационное и указательное. Тип информационного поля для общего случая определим как тип tinf ( в задаче этот тип должен быть конкретно определен, в нашем примере он определяется как integer). Указательное поле представляет собой ссылку на следующий элемент списка, т. е. оно ссылочного типа на тип элемента списка. Такие типы можем определить следующим образом
type tinf=< тип информации, включаемой в стек>;
pel=^tel;{указательный тип на элемент стека}
{тип элемента списка}
tel=record
inf:tinf;
uk:pel
end;
Важное примечание: Посмотрите на определение типов. Вспомните главное правило языка Паскаль – каждое новое определение должно базироваться а стандартных понятиях , либо ранее определенных (по тексту). В данном случае для того. чтобы определить тип pel необходимо знать определение типа tel, который определяется ниже по тексту. А для того, чтобы определить тип tel, необходимо знать определение типа pel. Для устранения этой неоднозначности принято следующее правило – ссылочный (указательный) тип необходимо определять ранее базового типа, на который указывает ссылочный тип.
Стек может быть представлен следующим образом:
Включение и исключение элементов стека производится «через голову списка» - новый элемент всегда включается первым, текущий исключаемый элемент всегда первый из списка. Просмотр осуществляется последовательно - подряд от первого до последнего элементов.
Логическая структура программы
Разработка подпрограмм Разработка первой подпрограммы
-
Спецификация
-
Назначение: включение нового элемента в стек
-
Имя: VKL
-
Вид: процедура
-
Перечень параметров:
Статус
Назначение
Имя
Тип
Вид
Вход/выход
Голова стека
Head
PEL
Параметр-переменная
Вход
Информация, включаемая в стек
Inf
Tinf
Параметр-значение
-
Заголовок:
Procedure VKL (Var Head:PEL; Inf: Tinf);
-
Метод решения
1. Создать структуру, соответствующую элементу списка, с помощью рабочей ссылочной переменной new(tek);
2. Заполнить информационную часть нового элемента tek^.inf:=Inf;
3. Организовать связь между новым элементом и первым элементом стека tek^.uk:=head;
4. Связать новый элемент с головой стека Head:=tek .
-
Информационная модель
Назначение |
Имя |
Тип |
Указатель на новый элемент |
tek |
PEL |