- •Московский государственный технический университет
- •Содержание.
- •Предисловие
- •Лабораторная работа №1 Процедурные типы
- •1. Теоретические сведения
- •Var X: real; I: integer;
- •X, y : byte;
- •VarFunc : FuncType;
- •I : integer;
- •2.Задачи для самостоятельного решения
- •Лабораторная работа №2 Модули
- •Теоретическая часть
- •Структура модулей
- •Связь модулей друг с другом
- •ISwap(a,b);
- •Var I, y :integer;
- •2.2. Практическая часть
- •Interface
- •Implementation
- •I: Integer;
- •3. Задачи, для самостоятельного решения
- •Лабораторная работа №3 Меню
- •1. Теоретическая часть
- •Var X,y,I: byte;
- •XUpLeft;
- •Var npos,I: integer;
- •Case npos of
- •Лабораторная работа №4.
- •2.Задачи, для самостоятельного решения:
- •Лабораторная работа № 5 Указатели. Связанные списки
- •1. Теоретические сведения
- •1.1. Указатели
- •1.2. Связные списки записей
- •1.3. Управление связанным списком записей (на примере)
- •1.3.1. Построение списка
- •Var ListOfChecks, CurrentCheck: pCheck;
- •1.3.2. Перемещение по списку
- •Var p: Pint;
- •2. Демонстрационные примеры
- •X1,y1,x2,y2: word;
- •Var npos,I,n,j :integer;
- •3: Begin
- •Interface
- •Задачи 1..4. Создать типизированный файл записей, содержащих сведения о багаже пассажира. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current: pnt;
- •Задача 5. Создать типизированный файл записей, содержащих сведения об автомобиле. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current : pnt;
- •Задача 22. Создать типизированный файл записей, содержащих сведения о книгах. Структура записи имеет следующий вид:
- •1.2.Объект и инкапсуляция
- •1.3. Иерархия объектов и наследование
- •Visible: Boolean;
- •Init(x1,y1);
- •Interface
- •Interface
- •X,y : Integer;
- •Visible : Boolean;
- •Implementation
- •Var Temp : Word;
- •Var Temp : Word;
- •Var gm,gd:Integer;
- •Xp:Point;
- •Xs:Square;
- •Xps:PaintSquare;
- •InitGraph(Gd,Gm,'');
- •2. Демонстрационные примеры
- •X,y:integer;
- •Inherited init(ax,ay);
- •Задача 12. Простые объекты.
- •Задача 14. Простые объекты.
- •Задача 15. Простые объекты.
- •Задача 20. Простые объекты.
- •Задача 21. Простые объекты.
- •Задача 22. Простые объекты.
- •Задача 23. Простые объекты.
- •Задача 25. Простые объекты.
- •Лабораторная работа №8 Статические объекты
- •Теоретическая часть
- •1.1.Вывод точек и линий
- •1.2.Вывод многоугольников
- •Виды закраски определяется константами.
- •1.3.Вывод дуг, окружностей, эллипсов
- •1.4.Вывод текста
- •Демонстрационные примеры
- •Лабораторная работа №9
- •2. Задачи, для самостоятельного решения
- •Лабораторная работа №10
- •1.2. Перенос изображения
- •1.3. Масштабирование изображения
- •1.4. Масштабирование рисунка
- •1.5. Поворот изображения
- •1.5.1.Поворот точки
- •1.5.2. Поворот рисунка
- •1.6. Композиция преобразований
- •2. Демонстрационные примеры
- •X,y:integer;
- •1: CloseGraph;
- •3.Задачи, для самостоятельного решения
- •Лабораторная работа №12 Рубежный контроль №2
- •Задачи, для самостоятельного решения
Лабораторная работа №4.
Двухуровневое меню
Цель работы – овладение практическими навыками программирования по созданию многоуровневых пользовательских меню, для решения собственных задач.
1. Практическая часть
Результаты выполнения данной лабораторной работы должны быть сведены в два модуля:
модуль численного интегрирования;
и модуль численного решения уравнений.
Написать программу двухуровневого меню, в которой меню 1-го уровня имеет вид (ориентировочно)
Unit1
Unit2
Exit
а меню 2-го уровня имеют вид (ориентировочно)
Метод 1 Метод 1
Метод 2 Метод 2
Метод3 Возврат
Возврат
Меню 2-го уровня должны частично перекрывать меню 1-го уровня, например, так
Unit2
Unit2
Метод 1
Метод 2
Выход
Для "анимации" меню использовать клавиши "Стрелка вверх", "Стрелка вниз", Home, End. Для выполнения пункта меню использовать клавишу Enter. Для возврата из меню 2-го уровня в меню 1-го уровня допустить использование клавиши Esc. Для завершения программы допустить использование комбинаций клавиш Alt-X или Ctrl-C. Нажатие всех прочих клавиш сопровождать звуковым сигналом. При работе с меню курсор временно выключать. Ввод данных и вывод результатов выполнять в диалоговых окнах. При возможности все процедуры и функции работы с окнами и меню собрать в отдельный модуль, с тем, чтобы главная программа была как можно меньшей.
В качестве ориентира предлагается текст главной программы, реализующей одноуровневое меню (файл MENEDEMO.PAS). Для зажигания/гашения курсора используется модуль Cursor (файл CURSOR.PAS).
2.Задачи, для самостоятельного решения:
Задача 1. Разработать двухмерное меню с выделением цветом нужного режима:
Для выбора режима используйте клавиши: , , , , Ввод. Методика выбора состоит в перемещении по меню, как по горизонтали, так и вертикали, с выделением цвета. Активизируется яркий режим нажатием клавиши «Ввод».
Задача 2. Разработать меню с указателем на нужный режим:
Для указания режима используйте клавиши ,, и ввод. Яркая стрелка первоначально указывает на первый яркий режим. Нажатие клавиши перемещает стрелку на новый режим и делает его ярким, а предыдущий становиться тусклым.
Задача 3. Меню с элементами мультипликации:
Для указания режима используйте клавиши ,, и ввод. Текущим, считается окно полностью показанное. Нажатие указанных клавиш позволяет выбирать нужный режим.
Задача 4. Написать программу двухуровневого меню, которое должно иметь вид:
Методы численного решения уравнений,
метод деления отрезка пополам,
метод Ньютона,
метод хорд,
метод итераций.
Методы численного интегрирования,
метод прямоугольников,
метод трапеций,
метод Симпсона.
Выход.
Лабораторная работа № 5 Указатели. Связанные списки
Цель работы – овладение практическими приемами и навыками разработки программ с динамическими переменными, типа указатели.