Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

Лабораторная работа 15 Модульное программирование

Структура модуля:

UNIT <ИмяМодуля>;

INTERFACE

<интерфейсная часть> {раздел описаний}

IMPLEMENTATION

<исполняемая часть> {описания подпрограмм}

BEGIN

<инициирующая часть> {фрагмент программы}

END. признак конца модуля

Пример. Найти соотношение между максимальными элементами для массивов А и В.

Выделим вычисление наибольшего элемента в подпрограмму, которую вынесем в отдельный модуль.

Program s_mod; {Главная программа}

uses crt,r_pos; {подключается модуль R_pos }

var a, b: mass;

i, s: integer;

begin

clrscr;

writeln('Введи массив А из 8 чисел типа integer');

for i:=1 to 8 do

read(a[i]);

writeln('Введи массив В из 8 чисел типа integer');

for i:=1 to 8 do

read(b[i]);

write('Соотношение =');

writeln('maxA/maxB'=MAX(a)/ MAX(b):6:3); readln;

end.

UNIT r_pos; {Подключаемый модуль с именем R_pos.pas}

INTERFACE

type

mass=array[1..8] of integer;

function max(d:mass):integer;

IMPLEMENTATION

function max(d:mass):integer;

var mx,i:integer;

begin

mx:=d[1];

for i:=2 to 8 do if mx<d[i] then mx:= d[i];

max:=mx;

write(mx,':');

end;

END.

Задание (программы 14_1 и 14_2)

Для задач 8_3 и 9_2 разработать программы, скрыв подпрограммы в отдельном файле (модуле).

Лабораторная работа 16 Графика

Цель работы: знакомство с графическими процедурами и функциями.

Пример: Пусть необходимо построить график циклоиды. Зададим ее математи­ческое описание:

x = a t - b sin t, y = a - b cos t,

при b<a циклоида получается укороченной, при b>a - удлиненной, b = a да­ет обычную циклоиду.

При разработке программы необходимо перед выводом графической ин­формации на экран дисплея инициализировать графический режим с указа­нием пути к графическому драйверу, а в конце программы его следует закрыть.

Поскольку в графическом режиме работы дисплея верхняя левая точка экрана имеет координаты (0,0), сместим ось 0Х на середину экрана, а ось 0У - на 10 пикселей вправо. Для наглядности увеличим график путем использования масштабных коэффициентов по каждой оси координат. Кроме того, нужно помнить, что координаты точки в графическом режиме могут быть только целого типа.

С учетом вышесказанного программа построения циклоиды имеет вид

program graph17pr;

uses graph; {подключение модуля GRAPH}

var a, b, t: integer; {a, b - переменные, определяющие a - тип драйвера и }

x, y, tt: real; {b - видеорежим }

begin

detectgraph(a,b); {автоопределение типа драйвера и видеорежима}

initgraph(a,b,'c:\progDOS\BP\BGI'); {инициализация графического режима}

setgraphmode(2); {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона – черный}

setcolor(4); {основной цвет рисования – красный}

moveTO(0,240); {смещает курсор для вычерчивания оси Х}

lineRel(625,0); {вычерчивание линии по приращению от указателя}

readln; {пауза до нажатия клавиши <Enter>}

setcolor(2); {основной цвет рисования – зеленый}

line(10,0,10,478); {рисует линию от точки (Х1,Х2) до т.(Х2,У2)}

readln; {пауза до нажатия <Enter>}

setcolor(5); {основной цвет рисования – фиолетовый}

readln; {пауза до нажатия клавиши <Enter>}

moveTO(10,240); {смещение курсора к точке с кординатой (0,240)}

tt:=0.0;

for t:=1 to 200 do {расчет и вычерчивание циклоиды}

begin

x:= 0.4*tt - 0.5*sin(tt);

y:= 0.4 - 0.5*cos(tt);

{линия} lineTO(trunc(100*x)+10,trunc(100*y)+240);

tt:=tt+Pi/32

end;

readln; {пауза до нажатия клавиши <Enter>}

SettextStyle(0,0,3); {установка шрифта(0..4), стиля, размера текста} OutTextXY(50,440,'график циклоиды'); {выводит текст от т.(50,440)}

readln; {пауза до нажатия клавиши <Enter>}

closegraph; {закрывает графический режим и восстанавливает текстовый}

end.

Поскольку вычисляемые в программе координаты являются веществен­ными, то для их преобразования к целым значениям использована функция TRUNC().

При разработке графических программ необходимо следить, чтобы значения координат не выходили за пределы экрана. Для этого рекоменду­ется рассчитывать коэффициенты увеличения или уменьшения, а также па­раметры смещения изображения.

Задание 1 (программа 16_1)

Начертить графики функций F1(x) и F2(x) для результатов, получен­ных в программе 3_2.pas. На экран должен выводиться график с надписью выводимой функции.

Задание 2 (программа 16_2)

Напишите и отладьте программу для одной следующих задач.

1. Подготовить и отладить программу вычерчивания квадрата, вписанного в окружность. Запрограммировать изменение цветов окружности.

2. Организовать вывод на экран разноцветных цифр поочередно гори­зонтально и вертикально.

3. Отладить программу вычерчивания нескольких окружностей заданного радиуса в произ­вольном месте экрана разными цветами. Предусмотреть их мерцание.

4. Разработать программу изображения точки, движущейся по косинусоиде

( y =cos(x) ).

5. Отладить программу рисования квадрата с диагоналями, пресекающимися в центре эк­рана. Создать иллюзию его уменьшения.

6. Начертить на экране картинку «круги на воде».

7. Изобразить движущийся на зрителя экран (прямоугольник).

8. Подготовить и отладить программу изображения правильного треугольника, вращающегося вокруг своей (любой) медианы.

9. Разработать программу вывода на экран компьютера квадратов по углам и в середине экрана. Зап­рограммировать поочередный вывод их разными цветами.

10. Разными цветами в различных точках экрана выводить надпись «TurboPascal» с изменением размера шрифта.

11. Изобразить трубу, образованную разноцветными окружностями.

12. Организовать вывод на экран названия континентов разными цве­тами в различных точках экрана готическим и обычным шрифтами.

13. Изобразить спутник (точку), вращающийся вокруг планеты.

14. Изобразить НЛО, приземляющийся в различных точках экрана.

15. Организовать вывод на экран разноцветных русских букв разных размеров поочередно высвечивая или заполняя экран в хаотическом порядке.

16. Отладить программу вычерчивания графиков функций y = sin(x) и y = =sin(2x) разными цветами с разными осями координат.

17. Организовать вывод на экран формул химических элементов разными цве­тами в различных точках экрана.

18. Начертить на экране ряд геометрических фигур: квадрат, круг, треугольник, прямоугольник, используя разные цвета.

19. Изобразить схематично на экране движущегося человечка.

20. Изобразить движение объекта по прямоугольной спирали.