- •Лабораторная работа № 1 Массивы n-мерные: ввод, вывод, сортировка, поиск. Работа со структурами-записями. Массивы записей
- •Пример выполнения лабораторной работы № 1
- •Запросы:
- •Структура записи «товар»
- •Текст программы tovar_1.Pas
- •Структура базы данных «товаРы»
- •Описание программы и алгоритмов
- •Описание главной программы
- •Алгоритм выполнения функции MainMenu
- •Алгоритм выполнения процедуры UpDown (var Vari: integer; Im: byte)
- •Описание процедур TopT и EndT
- •Описание процедуры InputFields(var Rec: RecType)
- •Описание процедуры OutputRec(rec: RecType)
- •Описание процедуры InputRecord
- •Описание процедуры OutRecord (MaxElem :integer)
- •Описание процедуры Zapros1
- •Описание процедуры KeyRec
- •Алгоритм выполнения процедуры ChangeDel (flag: boolean)
- •Алгоритм выполнения процедуры AddRecord
- •Варианты
- •Запросы:
- •Запросы:
- •Запросы:
- •Запросы:
- •Запросы:
- •Запросы:
Структура базы данных «товаРы»
Запись 1
Запись 2
. . .
Запись i
Рис. 2. Массив записей Mas : Array [1.. ColRec] of RecType
В программе предусмотрен жесткий контроль ввода исходных данных (символьных, целочисленных и вещественных) - см. Процедуры InputString, InputNumber, InputReal. Вывод информационных и аварийных сообщений оформлен единообразно - через процедуру OutMessageXY. Для ориентации пользователя в количестве допустимых символов для каждого поля записи введена процедура OutPutString. В данной программе задействованы такие понятия, как атрибут вывода (переменная TextAttr), позиция курсора (WhereX, WhereY, GotoXY), а также обработка обычных (ESC, ENTER, пробел, символы псевдографики) и расширенных ASCII-кодов (клавиш - стрелок).
Описание программы и алгоритмов
В процессе детализации предложенного текста программы следует составить структурную схему программы, что поможет в выполнении задания.
Структурной называют схему, отражающую состав и взаимодействие по управлению частями разрабатываемого программного обеспечения. Структурная схема - это совокупность элементарных звеньев объекта и связей между ними, определяется архитектурой разрабатываемого ПО. Элементарные звенья изображаются прямоугольниками, а связи между ними - сплошными линиями со стрелками, показывающими направление действия звена. В качестве отдельного звена рассматривается каждая подпрограмма, при этом ее имя вписывается в прямоугольник. Стрелки показывают направление передачи управления от подпрограммы к подпрограмме. Схема может быть многоуровневой. Таким образом, формируется иерархия, соответствующая архитектуре разрабатываемого ПО.
Описание главной программы
Сначала очищается экран, затем в цикле REPEAT - UNTIL выводится главное меню через обращение к функции MainMenu. Условие выхода из цикла - MainMenu = TRUE.
Алгоритм выполнения функции MainMenu
Эта функция реализует главное меню в программе. Передвигая курсор (стрелки) по строкам меню, выбираем необходимый режим работы. В начальном положении курсор находится в начале первой строки. Коррекция положения курсора при его перемещении вниз или вверх по строкам меню реализуется с помощью процедуры UpDown.
В бесконечном цикле REPEAT...UNTIL FALSE анализируется код нажатой клавиши (Ch), если он равен #32 (код клавиши пробел) или #13 (код клавиши ENTER), то в зависимости от того, на какой строке находится курсор (номер строки запоминается в переменной I, число выводимых строк меню равно 8), управление передается следующим процедурам, используя оператор CASE:
case i of
1: InputRecord; {Создать массив записей}
2: OutRecord(MaxElem); {Вывести данные на экран}
3: Zapros1; {Вычислить общее количество товаров за определенный год}
4: KeyRec; {Вывести содержимое записи по ключу}
5: AddRecord; {Добавить запись}
6: ChangeDel(true); {Изменить запись}
7: ChangeDel(false); {Удалить запись}
8: begin
Mainmenu := true;
exit;
end;
Если курсор находится на 8 строке и нажата клавиша ENTER или пробел, функция Mainmenu получает значение true, управление передается в основную программу и программа завершает свою работу.