Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

Графіка

Графічний режим. Графічний екран дисплея складається з точок, які можна засвічувати певним кольором або гасити, внаслідок чого на екрані створюється деяке зображення. Точки називають пікселями. Кількість точок на екрані може бути різною. Це залежить від якості монітора. Розглянемо екран, який має 640 точок в горизонтальному (х) напрямі і 480 - у вертикальному (у). Початок відліку точок знаходиться в лівому верхньому куту екрану. Кожна точка характеризується двома координатами (х, у).

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

<разділи описів і оголошень конкретної програми>;

{Змінні для визначення характеристик дисплея}

var driver, mode : integer;

begin

driver := detect; {detect - стандартна постійна}

{завдання графічного режиму}

initgraph (driver, mode ");

if graphresult <> 0 then

begin

writeln('Графічний режим задати не вдалось');

halt

end;

<текст конкретної програми з графічними командами>

end.

Кольори.

Кольори задають числами або англійськими назвами:

black=0 - чорний;

blue=l - синій;

green=2 - зелений;

суап=3 - голубий;

red=4 - червоний;

magenta=5 - фіолетовий;

brown=6 - коричневий;

lightgray=7 - світло-сірий;

darkgray=8 - темно-сірий;

lightblue=9 - яскраво-синій;

lightgreen=10 - яскраво-зелений

lightcyan=11 - яскраво-голубий;

lightred=12 - яскраво-червоний;

lightmagenta=13 - яскраво-фіолетовий;

yellow=14 - жовтий;

white=15 -білий.

Запитання

  1. Компіляція і компоновка програми.

  2. Поняття модуля.

  3. Як оформляється бібліотечний модуль?

  4. Коли підключаються процедури і функції, що містяться в модулі до програми яка їх використовує?

  5. Структура модуля.

  6. Для чого служить ім'я модуля?

  7. Ім'я модуля повинне співпадати з ім'ям чого?

  8. Режими компіляції.

  9. Модулі користувача

  10. Стандартні модулі.

  11. Підпрограми модуля Crt.

  12. Модуль GRAPH.

  13. Завантаження графічного драйвера і ініціалізація графіки.

Завдання 17:

Створити емблему: В заданій частині графічного екрану намалювати фігуру Еліпс, в середині Еліпса - фігуру Прямокутник, а в середині Прямокутника - текст: прізвище і ініціали. Всі елементи малюнка виконати різними кольорами. Замкнуті області зафарбувати. Пожвавити зображення.

Література: 2.с.193..234.

Записи. Команда приєднання With.

Основні розділи теми.

  1. Поняття модуля.

  2. Структура модуля.

  3. Компіляція модулів.

  4. Стандартні модулі.

  5. ГРАФІКА.

Запис — це структура даних, що складається з фіксованого числа компонентів, званих полями запису. На відміну від масиву, компоненти (поля) запису можуть бути різного типу. Щоб можна було посилатися на той або інший компонент запису, поля іменуються.

Структура оголошення типу запису така:

<Ім’я типу> = RECORD <список полів> END

Тут < Ім’я типу > — правильний ідентифікатор;

RECORD, END — зарезервовані слова (запис, кінець); <список полів> — список полів; є послідовністю розділів запису, між якими ставиться крапка з комою.

Кожний розділ запису складається з одного або декількох ідентифікаторів полів, відокремлюваних один від одного комами. За ідентифікатором (ідентифікаторами) ставиться двокрапка і опис типу поля (полів).

Приклад .

Type BirthDay = record

day,month : byte;

year : word

end;

var

а,b : Birthday;

В даному прикладі тип BIRTHDAY (день народження) є запис з полями DAY, MONTH і YEAR (день, місяць, і рік); змінні А і В в записі типу BIRTHDAY.

Як і в масиві, значення змінних типу запису можна привласнювати іншим змінним того ж типу, наприклад

а := b;

До кожного з компонентів запису можна отримати доступ, якщо використовувати складене ім'я, тобто вказати ім'я змінної, потім точку і ім'я поля:

a.day := 27;

b.year := 1939;

Приклад .

type

BirthDay = record

day,month: byte;

year : word

end;

begin

.

if BirthDay.year = 1939 then .

end.

Для спрощення доступу до полів запису використовується оператор приєднання WITH:

WITH <змінна > DO <оператор >

Тут WITH, DO — ключові слова;

< змінна > — ім'я змінної типу запис, за яким можливо, слідує список вкладених полів;

<оператор> — будь-який оператор Турбо Паскаля.

Приклад .

with c.bd do month:=9;

Це еквівалентно

with c do with bd do month : = 9;

або

with с.bd do month := 9;

або

c.bd.month= 9;

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

Новий тип можна використовувати і для введення в програму констант, що типізуються.

Приклад .

Type

Point = record x,y: Real;

Vector = Array [0..1) Point end;

Const Origin : Point = (X: 0.0; У: 0.0);

Line : Vector = ((X: -1.9; У: 1.7) (X: 2.0; У: 1.7));

або

Type

Month = (Jan,Feb,Mar,Apr,May,Jun,Jly,Aug,Sep,Oct,Nov,Dec);

Date == record D: 1..31; M: Month; У: 1917..2017 end;

Const BirthDate: Date = (D: 26; M: Jun; У: 1985);

Задача 32.

Багаж пасажира характеризується кількістю речей і загальною вагою речей. Є інформація про багаж декількох пасажирів - відповідні пари чисел. Підрахувати загальну кількість речей і з'ясувати, чи є багаж пасажира, який складається з однієї речі вагою не менше 30кг.

Const z:String(3)=' не' ;

total:Byte=0;

Турі In£o = record

q: Byte;

w: Real;

end;

Var luggage: Info;

i,n : Byte;

BEGIN

Write ('Введіть число пасажирів ');

ReadLn(n);

WriteLn('Введіть пари чисел (кількість і вага) ');

for i:=1 to n do

begin

ReadLn(luggage.q, luggage.w);

Inc(total,luggage.q);

if (luggage. q=1) and (luggage.w>=30) then z:= ' ';

end;

WriteLn('Сумарна кількість речей: ', total);

WriteLn('Шуканий пасажир', z,' є';

ReadLn;

END.

Визначимо тип Info - запис з двома полями. Імена полів q (кількість речей одного пасажира) і w (загальна вага речей одного пасажира); типи полів Byte і Real. Luggage - ідентифікатор змінної введеного типу. Введемо дані з клавіатури і, використовуючи складові імена полів запису luggage.q і luggage.w, знайдемо шукані величини.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]