Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет. вказ. Программирование (2 сем).doc
Скачиваний:
24
Добавлен:
26.11.2018
Размер:
2.57 Mб
Скачать

Функції.

GetMax і GetMax Повертає значення максимальних координат екрана в поточному режимі роботи відповідно по горизонталі і вертикалі.

GraphResult Повертає значення GrOk, що відповідає коду 0, якщо всі графічні операції програми виконалися без помилок, чи повертає числовий код помилки (від -1 до -14).

Закриття відеорежиму. Коли всі заплановані графічні роботи виконані, необхідно вийти з графічного режиму. Це робиться за допомогою не має параметрів процедури ClozeGraph. У процесі виконання ця процедура звільняє пам'ять, розподілену під драйвери графіки, файли шрифтів і проміжні дані, і відновлює режим роботи адаптера в той стан, у якому він знаходився до виконання ініціалізації системи.

Приклад. Побудувати правильний n - кутник.

Центр многоугольника сполучаємо з центром екрана. Центральний кут сторони Angle=2*Pi/N. Початкову вершину багатокутника помістимо на горизонтальній осі (праворуч від центра). Кут нахилу i-ої сторони до осі Х складає Angle * i, а її центральні координати – X = round(R*cos(Angle*i)); Y = round (R*sin(Angle*i)); де R – радіус описаного кола.

Проводимо i-ю сторону, з'єднуючи лінією знайдену i-ю і попередню вершини. Виконавши цю побудову для всіх і від 1 до N, одержимо наш багатокутник. (Відзначимо, що N-я вершина збігається з початковою).

program example12;

uses graph, crt;

Const

Pr:real=80; { Довжина діаметра описаного кола в % від висоти екрана}

PATH=''; { файли *.BGI знаходяться в робочому каталозі}

Var W,H,gd,gm,i,N,X,Y.R:integer; Angle:real;

{ перехід від центральних координат до екранних}

procedure WH (var W,H:integer); { ширина і висота екрана}

begin

W:=( GetMax+1); { ширина} H:=( GetMax+1); { висота}

end;

Function Xscr (X:integer):integer;

Begin Xscr:=X + W div 2 end;

Function Yscr (Y:integer):integer;

Begin Yscr:=H div 2 – Y end;

BEGIN

repeat

write (' Укажіть число сторін правильного багатокутника, не менш 3');

readln(N);

until N>2;

gd:=DETECT;

initgraph (gd,gm,path);

WH(W,H); { визначаємо ширину і висоту екрана}

R:=round(Pr*0.01/*H/2); { радіус описаної окружності}

Angle :=2*pi/N; { центральний кут сторони в радіусах}

MoveTo (Xscr(R), Yscr(0)); { перша вершина в екранних координатах}

SetColor (Yellow); { колір багатокутника - жовтий}

For і:=1 to N do begin {цикл сторін}

{X і Y – центральні координати чергової вершини}

X:=round (R*cos(Angle*і));

Y:= round (R*sin(Angle*і));

{проводимо чергову сторону}

LineTo (Xscr(X), Yscr(Y));

End; {цикл сторін}

Repeat until keypressed; { вихід – натисканням будь-якої клавіші}

CloseGraph; { перехід у текстовий режим}

End.

Лабораторна робота 12 Контрольна робота

Мета роботи: Узагальнити знання і навички, отримані при виконанні попередніх лабораторних робіт.

При виконанні наступних завдань випливає максимальним чином структурізовати свої програми. Пам’ятайте, що використання підпрограм робить програму більш універсальною, дозволяє легше розібратися з роботою кожного з її блоків.

Контрольні питання

  1. Перелічите основні етапи розробки програми;

  2. Правила використання типу "масив";

  3. Правила використання типу "запис";

  4. Правила використання типу "рядок";

  5. Правила використання типу "множина";

  6. Правила програмування і використання файлів програмах на Pascal;

  7. Правила програмування і використання процедур і функцій;

  8. Види параметрів процедур і функцій.

Задачі

Необхідно скласти програму ідентифікації трикутника (гострокутний, прямокутний, тупокутний, рівнобедрений, рівносторонній) по його елементах. Величини зазначених елементів генеруються випадково як цілі числа в припустимих діапазонах (наприклад, кути - у діапазоні від 1 до 180). Передбачити можливість введення величини елементів для ідентифікації фігур із клавіатури, передбачивши захист від невірного введення даних. 1. Ідентифікація трикутника по двох його кутах U1 і U2

2. Ідентифікація трикутника по трьох його сторонах.

3. Ідентифікація трикутника по двох сторонах і куту між ними. 4. Ідентифікувати трапецію (звичайна, прямокутна, рівнобедрена) по двох кутах, прилеглих до більшої основи.

5. Скласти програму, що аналізує натиснуту клавішу на її приналежність до визначеної групи клавіш. Відповідні повідомлення видаються для цифрових клавіш, великих букв і малих букв латинського алфавіту. 6. Скласти програму випадкового вибору чергового зі списку, у якому 4 хлопчика і 4 дівчинки, причому для дівчинок імовірність вибору в два рази нижче, ніж для хлопчиків.

Необхідно вивести цілком оформлену таблицю - у рамці і з елементами, що вказують зміст рядків і стовпців з точністю 0,0001.

  1. Цілі степені N для чисел , , і їх відношення . N=1..6.

  2. Логарифми цілих N=2..20 з цілою основою M=2..10.