Лабораторная работа Модульное программирование
При разработке больших программ целесообразно часть подпрограмм и других ресурсов, таких как константы, объявление типов, собирать вместе и компилировать отдельно от основной программы в виде библиотек ресурсов или модулей.
Модуль – это автономно компилируемая коллекция программных ресурсов, предназначенная для использования другими модулями и программами.
Модульное программирование – это технология программирования, приводящая к значительному уменьшению сроков разработки программ и количества программных ошибок.
Все ресурсы модуля делятся на две группы: внешние – предназначенные для использования другими программными единицами, и внутренние – рабочие ресурсы данного модуля.
Структура модуля имеет вид:
Implementation
END.
Имя модуля должно совпадать с именем файла, в котором он содержится.
Интерфейсная секция содержит объявления ресурсов (в том числе заголовки подпрограмм), к которым возможны обращения извне.
Секция реализации содержит описание подпрограмм, объявленных в интерфейсной секции, и описание внутренних ресурсов модуля. Обращение к этим ресурсам возможно только из подпрограмм, описанных в том же модуле.
Секция инициализации содержит операторы, которые выполняют некоторые действия, необходимые для нормальной работы процедур модуля (например, открывают файлы, изменяют цвет, выдают информацию о разработчике и т.п.) Операции этой секции выполняются один раз при включении модуля до начала выполнения основной программы. Эта секция в модуле может отсутствовать, что показано включением ее в квадратные скобки ([ ]).
В результате компиляции модуля система формирует одноимённый файл, имеющий расширение .tpu.
Среда языка Borland Pascal предусматривает три режима компиляции программы, использующей модули (главное меню, пункт Compile):
- Compile – компилируется только основная программа, все модули должны быть предварительно откомпилированы в tpu–файлы и размещены либо в текущем каталоге, либо в одном из каталогов, указанных как источники tpu–файлов в настройках среды (Options/Directories);
- Make – модули, для которых не обнаружены tpu–файлы компилируются из соответствующих pas–файлов, которые должны находиться либо в текущем каталоге, либо в одном из каталогов, указанных как источники pas–файлов в настройках среды (Options/Directories);
- Build – все ранее откомпилированные tpu–модули игнорируются и все модули компилируются из своих исходных файлов заново.
- Чем отличается модульное программирование от процедурного?
- Как подключить пользовательский модуль к программе?
- Какой пункт главного меню содержит информацию о размещении tpu и pas–файлов?
- Ваши действия в случае, если при запуске программы на выполнение система выдаст ошибку ‘15Filenotfound’?
- Модуль – это отдельно компилируемая или отдельно исполняемая конструкция языка?
- Какому условию должны удовлетворять имя модуля и имя файла, хранящего этот модуль?
- Какая секция модуля должна быть отражена в инструкции при передаче его в пользование?
- Объявите в модуле подпрограмму-функцию и подпрограмму-процедуру нахождения номера наибольшего по значению элемента одномерного массива.
Лабораторная работа 15 Модульное программирование
Пример. Найти соотношение между максимальными элементами для массивов А и В.
Выделим вычисление наибольшего элемента в подпрограмму, которую вынесем в отдельный модуль.
writeln(‘Введи массив А из 8 чисел типа integer’);
writeln(‘Введи массив В из 8 чисел типа integer’);
writeln(‘maxA/maxB’=MAX(a)/ MAX(b):6:3); readln;
Задание (программы 14_1 и 14_2)
Для задач 8_3 и 9_2 разработать программы, скрыв подпрограммы в отдельном файле (модуле).
Лабораторная работа 16 Графика
Цель работы: знакомство с графическими процедурами и функциями.
Пример: Пусть необходимо построить график циклоиды. Зададим ее математическое описание:
x = a t — b sin t, y = a — b cos t,
при ba — удлиненной, b = a дает обычную циклоиду.
При разработке программы необходимо перед выводом графической информации на экран дисплея инициализировать графический режим с указанием пути к графическому драйверу, а в конце программы его следует закрыть.
Поскольку в графическом режиме работы дисплея верхняя левая точка экрана имеет координаты (0,0), сместим ось 0Х на середину экрана, а ось 0У — на 10 пикселей вправо. Для наглядности увеличим график путем использования масштабных коэффициентов по каждой оси координат. Кроме того, нужно помнить, что координаты точки в графическом режиме могут быть только целого типа.
С учетом вышесказанного программа построения циклоиды имеет вид
Поскольку вычисляемые в программе координаты являются вещественными, то для их преобразования к целым значениям использована функция TRUNC().
При разработке графических программ необходимо следить, чтобы значения координат не выходили за пределы экрана. Для этого рекомендуется рассчитывать коэффициенты увеличения или уменьшения, а также параметры смещения изображения.
Задание 1 (программа 16_1)
Начертить графики функций F1(x) и F2(x) для результатов, полученных в программе 3_2.pas. На экран должен выводиться график с надписью выводимой функции.
Задание 2 (программа 16_2)
Напишите и отладьте программу для одной следующих задач.
1. Подготовить и отладить программу вычерчивания квадрата, вписанного в окружность. Запрограммировать изменение цветов окружности.
2. Организовать вывод на экран разноцветных цифр поочередно горизонтально и вертикально.
3. Отладить программу вычерчивания нескольких окружностей заданного радиуса в произвольном месте экрана разными цветами. Предусмотреть их мерцание.
4. Разработать программу изображения точки, движущейся по косинусоиде
5. Отладить программу рисования квадрата с диагоналями, пресекающимися в центре экрана. Создать иллюзию его уменьшения.
6. Начертить на экране картинку «круги на воде».
7. Изобразить движущийся на зрителя экран (прямоугольник).
8. Подготовить и отладить программу изображения правильного треугольника, вращающегося вокруг своей (любой) медианы.
9. Разработать программу вывода на экран компьютера квадратов по углам и в середине экрана. Запрограммировать поочередный вывод их разными цветами.
10. Разными цветами в различных точках экрана выводить надпись «TurboPascal» с изменением размера шрифта.
11. Изобразить трубу, образованную разноцветными окружностями.
12. Организовать вывод на экран названия континентов разными цветами в различных точках экрана готическим и обычным шрифтами.
13. Изобразить спутник (точку), вращающийся вокруг планеты.
14. Изобразить НЛО, приземляющийся в различных точках экрана.
15. Организовать вывод на экран разноцветных русских букв разных размеров поочередно высвечивая или заполняя экран в хаотическом порядке.
16. Отладить программу вычерчивания графиков функций y = sin(x) и y = =sin(2x) разными цветами с разными осями координат.
17. Организовать вывод на экран формул химических элементов разными цветами в различных точках экрана.
18. Начертить на экране ряд геометрических фигур: квадрат, круг, треугольник, прямоугольник, используя разные цвета.
19. Изобразить схематично на экране движущегося человечка.
20. Изобразить движение объекта по прямоугольной спирали.