Главная / Информатика / Методические рекомендации графических возможностей в Паскале

Методические рекомендации графических возможностей в Паскале

Навчальний предмет. Інформатика. 11 клас філологічного профілю

Розділ. Основи програмування

Тема. Графічні можливості мови TURBO PASCАL 7.0

Тип уроку: урок формування вмінь і навичок

Автор: Подимаа василь Юрійович, учитель інформатики Руднянської ЗОШ І-ІІІ ступенів Броварського району,

учитель-методист

Програма, за якою працює учитель: Інформатика. Навчальна програма для учнів 11 класу загальноосвітніх навчальних закладів (авт.:Ю.О.Дорошенко,І.О.Завадський, Ж.В.Потапова), http://www.mon.gov.ua/main.php?query=education/average/new_pr



Мета уроку.

Навчальна: Ознайомити учнів з ініціалізацією графічного режиму в програмі Turbo Pascal 7.0

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

Виховна: Показати широке коло застосування властивостей графічного режиму в інформатиці для вивчення математики.

Розвиваюча: Розвиток просторового уявлення, уваги, акуратність та скрупульозність при створені графічної програми, уявлень про математичне моделювання як потужний метод наукового пізнання, загального кругозору школярів, мотивація до свідомої навчальної діяльності.


Форма роботи. Діалог, інтерактивне спілкування, коментарі до мультимедійного супроводу, практичне застосування набутих навичок при програмуванні.


Обладнання.

Комп’ютери, програмне забезпечення, флеш-диск, PPT- презентація, мультимедійний проектор, дошка , підручники, додаткова навчально-методична література.


Термінологічний словник основних понять: ініціалізація, вхід в графічний режим, вихід з графічного режиму, підключення модуля Graph, процедури і функції в графічному режимі та їх властивості.

І. Організаційний момент.

Робота в комп’ютерному класі - практичне заняття;

  • пояснення деяких завдань, запис програм на дошці;

  • парна та індивідуальна робота за комп’ютером.





ІІ. Мотивація навчальної діяльності у вивченні теми «Графічні можливості мови

TURBO PASCАL 7.0 ».

/Слайди 1-15 мультимедійної презентації/


hello_html_70865143.png


Серед різних режимів роботи в системі програмування TURBO PASCАL 7.0 графічний режим займає особливе місце. За допомогою графічного режиму є можливість показати об’ємні геометричні фігури та їх розрізи, малювати малнки, створити динамічну графіку та анімацію не складних малюнків.

Саме тому предметом нашого сьогоднішнього дослідження буде графічний режим в системі мови програмування.

ІІІ. Актуалізація опорних знань.

Питання до класу:

  1. Яка процедура встановлює графічний режим?

  2. Назвати процедуру для задання кольору фону.

  3. Назвати процедуру для задання кольору майбутнього зображення.

  4. Перелічити процедури для роботи з пікселями.

  5. Перелічити процедури для роботи з дугами.

  6. Перелічити процедури для роботи з колом, еліпсом.

ІV. Пояснення нового матеріалу.

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

hello_html_7754c2d.png

Рис. 2. Координати точок на графічному екрані 640х480

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

Сам модуль може бути в бiблiотеці Turbo.tpl або в деякому каталозі на диску. В останньому випадку модуль треба приєднати командою uses на початку програми. Потрібний також файл egavga.bgi — драйвер для VGA адаптера чи файл cga.bgi для відповідного CGA адаптера монітора тощо.


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


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

var driver, mode : integer; {Для характеристик дисплея}

begin

driver:= detect; {detect - стандартна стала}

initgraph (driver, mode, ''); {Задання графічного режиму}

if graphresult < > 0 then

begin

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

halt {Стоп}

end;

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

end.








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


black=0 – чорний;

blue=1 – синій;

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

cyan=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 – білий.


Далі розглядатимемо процедури, що стосуються виведення текстової інформації в графічному режимі. Оскільки після ініціалізації графіки будь-які зображення виводяться по пікселях, то це стосується і текстової інформації. Таке виведення тексту від­бувається набагато повільніше, ніж у текстовому режимі.

Для вибору певного шрифта існує процедура: SetTextStyle (Font, Direction: word; CharSize: word), де Font задає один з типів шрифтів, Direction — горизонтальне (0) чи вертикальне (1) виведення тексту, a CharSize — розмір шрифта (від 1 до 10).

Паскаль дозволяє працювати зі стандартними шрифтами, перелік яких наведено в таблиці 1:


hello_html_m6c4676dc.gifhello_html_m6c4676dc.gifТаблиця 1

hello_html_m62b14f67.gifНазва Код Опис DefaultFont 0 матричний шрифт 8 х 8 TriplexFont 1 напівжирний шрифт

SmallFont 2 світлий шрифт

SansSerifFont 3 книжкова гарнітура

GothicFont 4 готичний шрифт


Для роботи з шрифтами у графічному режимі неоохідно, щоо у поточному каталозі були файли відповідних шрифтів з розширенням «chr». Шрифт DefaultFont встановлюється після ініціалізації графічного режиму автоматично і не потребує файла шрифта. Інші шрифти реалізовані відповідно у файлах trip.chr, small.chr, sans.chr, goth.chr.

Перш ніж скористатися в програмі додатковими шрифтами, їх необхідно зареєструвати. Для цього існує функція: InstallUserFont (FontName: string): integer, яка повертає числовий код, під яким буде зареєстровано даний шрифт.

FontName — файл шрифта без розширення «chr».






Тепер розглянемо основні процедури та функції Graph.


initgraph (driver, mode, <шлях до драйвера>) — задає графічний режим. Шляхдо драйвера зазначають (у лапках), якщо він не є в тому ж каталозі, що й файл turbo.exe;

detectgraph (<драйвер>, <режим>) — повертає значення характеристикдисплея;

setcolor (<колір>) — задає колір майбутнього зображення;

setbkcolor (<колір>) — задає колір тла;

putpixel (x, y, <колір>) — висвітлює точку (x,y) заданим кольором;

line (x1, y1, x2, y2) — рисує лінію між двома точками;

lineto (x, y) — рисує лінію від поточної точки до точки (x,y);

linerel (dx, dy) — рисує лінію від поточної точки з заданими приростами;

rectangle (x1, y1, x2, y2) — рисує прямокутник з заданими координатами діагонально

протилежних вершин (лівої верхньої та правої нижньої);

setviewport (x1, y1, x2, y2, true) — задає координати нового графічного вікна. Логічна

стала true задає режим відсікання зображення, яке виходитиме за межівікна;

bar (x1, y1, x2, y2) — рисує зафарбований прямокутник;

bar3d (x1, y1, x2, y2, <об'ємна глибина>, true) — рисує паралелепіпед;

circle (x, y, R) — рисує коло з радіусом R і центром у (x,y);

arc (x, y, <початковий кут>, <кінцевий кут>, <радіус>) — рисує дугу;

pieslice (x, y, <початковий кут>, <кінцевий кут>, <радіус>) — рисує зафарбований

сектор;

ellipse (x, y, <початковий кут>, <кінцевий кут>, <горизонт. радіус>, <вертик.радіус>) —

рисує еліпс чи дугу еліпса;

setfillstyle (<заповнення>, <колір>) — задає спосіб заповнення замкнутоїобласті залежно від значення параметра заповнення: 0 — заповнення кольоромфону, 1 — суцільне заповнення, 2 — заповнення товстими горизонтальнимилініями, 3 — заповнення нахиленими лініями, ..., 10 — заповнення точками,11—щільне заповнення точками;

floodfill (x, y, <колір межі>) — заповнює замкнену область, що містить точку(x,y);

closegraph — закриває графічний режим;

outtext (<текст>) — виводить заданий текст з поточної позиції;

outtextxy (x, y, <текст>) — виводить текст у заданому місці;

settextstyle (<шрифт>, <напрям>, <розмір>) — задає вигляд символів,напрямок виведення: 0 — горизонтально чи 1 — вертикально, і розміри символів: 1,2, 3.


Процедури зaповнення методом штрихувaння зaмкнутої поверхнi.


SetFillStyle(Fill,Color :Word)- Fill- тип зaповнення, Color-кольор зaповнення.

У типa (Fill) зaповн. можливi тaкi пaрaметри i цифровi коди:

EmptyFill =0; (Зaповнення фоном (мозaїкa вiдсутня ))

SolidFill =1; (Зaповн. цiлим одним кольором, суцiл.)

LineFil =2; (Зaповнення --------------)

LtSlashFill =3; (Зaповнення //////////////)

SlashFill =4; (Зaповнення товстiшим //////////////)

BkSlashFill =5; (Зaповнення товстiшим \\\\\\\\\\\\\\)

LtBkSlashFill =6; (Зaповнення \\\\\\\\\\\\\\)

HatchFill =7; (Зaповнення ++++++++++++++)

XHatchFill =8; (Зaповнення xxxxxxxxxxxxxx)

InterleavelFill =9; (Зaповнення прямокутною клiточкою)

WideDotFill =10; (Зaповнення рiдкими крaпочкaми . . . . .)

CloseDotFill =11; (Зaповнення густiшими крaпочкaми .......)

UserFill =12; (Мaлюнок визнaчaється зaмовником, Вaми )




Практичне застосування процедур і функції для графічних побудов


Приклад №1

Демонстрaцiйнa прогрaмa всiх типiв зaповнення шриховкaми прямокутникiв.

Program Style;

Uses Crt,Graph;

Var d,r,k,j,x,y:integer;

BEGIN

d:=detect; initgraph(d,r,'') ;

x:=GetmaxX div 7; {Розміщення графіки }

y:=GetmaxX div 6; {нa екрaні}

For j:=0 to 2 do {Три рядкa}

For k:=0 to 3 do begin {по чотири квaдрaтa}

Rectangle((k+1)*x,(j+1)*y,(k+2)*x,(j+2)*y);

SetFillStyle(k+j*4,j+1);

Bar((k+1)*x+1,(j+1)*y+1,(k+2)*x-1,(J+2)*y-1) End;

If Readkey=#0 then k:=ord(Readkey); Closegraph

END.


Після запуску програми ми отримаємо наступний малюнок


hello_html_m110592e9.jpg



Приклад №2. Побудова стовпчикової діаграми.

У першій чверті успішність становила 75%, у другій - 50% , у третій - 25%. Побудуємо таку діаграму за допомогою програми, розмістивши найвищий стовпець у цен­тральній частині екрана (його довжина — 480:3 = 160 пікселів) і розрахувавши решту пропорційно їх значенням відносно цього розміру. За шириною вся діаграма займає також 1/3 частину екрана, тобто початкове значення коорди­нати х дорівнює 210 пікселів, ширина стовпців по 35 і відстань між ними також 35 пікселів. Для обчислення висоти другого стовпця складемо пропорцію 75:50 = 160:х. Звідси х=106 округленням до цілого). Висота другого стовпця 53 пікселі. Оскільки нижні осно­ви прямокутників знаходяться на одному рівні, на якому у=320, то інші координати (вздовж осі Оу) обчислюються відніманням від 320 висоти відповідного стовпця.

Розміщення тексту на зобра­женні здійснюється за допомо­гою оператора

ОutTехtХУ (х, у, 'текст');

де х, у — координати, починаю­чи з яких буде виведено текст.

Програма побудови стовпча­стої діаграми


program diagrama;

uses Graph, Crt;

procedure Init;

var gr, gm: integer;

Begin

lnitGraph( gr, gm, ' '); {файл egavga.bgi знаходиться

в одному каталозі з turbo.exe}

if GraphResult <> grOk

then Halt (1) {перевірка правильності встановлення графічного режиму }

end;

procedure Diagram"!; begin

SetColor(14); Bar(210, 160, 245, 320); SetColor(10); Bar(210 + 2*35, 320 - 106, 210 + 3*35,320); SetColor(2); Bar(210 + 4*35, 320 - 53, 210 + 5*35, 320); OutTextXY(210, 320 + ЗО, 'Успішність по чвертях') end;

begin {головна програма} I nit; {виклик процедури встановлення графічного

режиму} Diagram 1;

repeat until keypressed

end.


Успішність %



hello_html_28fc0007.gif

75%


hello_html_m6174ead1.gifhello_html_m7eb1cc8c.gif

чверті

50%

25%

Створена діаграма успішності учня по чвертям




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

Розглянемо нриклад побудови графіка функції


Приклад № 3. Нарисувати графік функції y=2sin(2x)+1 на проміжку [0; 2p], табулюючи функцію з кроком h=0,1. У результаті експериментів, міняючи значення амплітуди в пікселях (за допомогою множника М), зобразити графік на екрані якнайкраще.

Програма побудови графікa функції y=2sin(2x)+1


program GrafikSin;

uses Crt, Graph;

const a=0; b=2*pi; h=0.1; h1=5; x0=60; y0=240; M=50;

var driver, mode,x1,y1:integer; x,y:real;

function f(x:real):real;

begin f:=2*sin(2*x)+1 end;

begin clrscr;

driver := detect; initgraph(driver,mode,'');

setcolor(14); setbkcolor(1);

line(20,y0,600,y0); line (x0,440,x0,20); {Координатні осі}

x:=a; x1:= x0+trunc(M*x); {x,y – математичні координати}

y:=f(x); y1:=y0-trunc(M*y); {x1,y1 – графічні координати}

moveto(x1,y1);setcolor(15);

while x<=b do begin

y:= f(x); y1:=y0-trunc(M*y); lineto(x1,y1);

x1:=x1+h1;x:=x+h end;

settextstyle(0,0,1);

outtextxy(60,245,'0');outtextxy(360,245,'6.3');

settextstyle(0,0,2);

outtextxy(200,380,'Графік функції y=2sin2x+1');readln

CloseGraph;

end.

hello_html_m43cb24e3.png








Графіцний режим можна застосовувати для вивчення правил дорожнього руху

Розглянемо нриклад роботу світлофора.


Приклад №4. Скласти програму яка виводить на екран малюнок працюючого світлофора. Рекомендуємий вигляд світлофора і алгоритм його роботи приведено

нhello_html_6347f1eb.gifhello_html_30321328.gifижче.

hello_html_m22727177.gif

hello_html_m13cc51c7.jpg




Програма побудови світлофора


{ Світлофор }

Program Svetofor;

uses Graph, Crt;

var

grDriver: Integer;

grMode: Integer;

ErrCode: Integer;

res: integer;

i,j: integer; { лічильники циклів }

{ Малює круг заданого кольору}

{ х,у,г - координати центру і радіусу круга }

{ fc,bc - Колір круга і окружності }

Procedure Krug(x,y,r: integer; fc,bc: integer);

begin

SetFillStyle(SolidFill, fc) ;

SetColor(fc);

PieSlice(x,y,0,360, r) ;

SetColor(bc);

Circle(x,y,r);

end;

{Основна програма }

begin

grDriver := detect;

InitGraph(grDriver, grMode,'c:\tp7\bgi');

ErrCode := GraphResult;

if ErrCode = grOk then

begin

OutTextXY(10,10,'Зберігайте правила дорожнього руху’);

Rectangle(88,88,112,152);

{ Горить червоне світло }

Krug(100, 100,10,Red,White) ;

Krug(100, 120,10, LightGray, White) ;

Krug(100,140,10,LightGray,White);

for i:=1 to 3 do begin

{ Тут горит червонийй }

Delay(3000); {затримка 3 секунди }

Krug(100,120,10,Yellow,White); { Включить жавтий }

Delay(1000);

Krug(100, 100,10, LightGray,White) ; { Виключить червонийй }

Krug(100, 120,10,LightGray,White) ; { Виключить жовтийй }

Krug(100,140,10,Green,White); { Включить зелений }

Delay(2000);

{ Мигаючий зелений сигнал }

for j:=1 to 3 do { Мигає 5 раз }

begin Delay(500);

Krug(100,140,10,Green,White) ; { Включить зелений }

Delay(500);

Krug(100,140,10,LightGray,White); { Виключить зелений }

end;

Krug(100,120,10,Yellow,White);

{Включить жовтий }

Delay(1500);

Krug(100, 120,10, LightGray, White) ;

Krug(100,100,10,Red,White); {Включить червоний}

End; End; Readln;

CloseGraph;

END.


Після запуску програми ми оримаємо такий вид виконання

Зберігайте правила дорожнього руху


hello_html_m293d6a18.gifhello_html_337c90c5.gif

hello_html_25d21cc5.gif


hello_html_56844429.gif





Дуже часто доводиться виводити на екран монітора геометричні фігури. Але при цьому слід враховувати специфіку екранних координат: точка з координатами (0;0) виводиться на екран монітора у лівому верхньому куті, збільшення по осі ОХ іде зліва направо, а от по осі OY— зверху вниз. Тому виникає необхідність відслідкову­вати вихід значень координат точок за межі екрана, а також наявність від'ємних та дробових значень координат.


Практична робота №1


Порядок виконання практичної роботи

ТЕМА: Створення графічних примітивів.

МЕТА: Навчитись переходити в графічний режим роботи і створювати найпростіші графічні примітиви.

ЗАВДАННЯ ДЛЯ ПРАКТИЧНОЇ РОБОТИ.

1. Вивчити теоретичний матеріал з даної теми:

  • перехід до графічного режиму роботи дисплея;

  • вигляд "координатної сітки" екрану дисплея;

  • запис процедур та функцій зображення ліній та фігур;

запис процедур та функцій встановлення кольорів фону та штрихування фігур.

  1. Скласти програму створення графічних примітивів.

  2. Виконати дану програму і вивести зображення малювання на екран дисплея.

  3. Оформити звіт з практичної роботи.


Приклад №5.

Зразок виконання практичної роботи

ПРАКТИЧНА РОБОТА № 1

ТЕМА: Створення графічних примітивів.

МЕТА: Скласти програму створення зображення малюнка.

Програма розв'язку даної задачі мовою програмування Пас­каль має вигляд:

Програма побудови малюнка

Program Pr_Rob_1;

Uses CRT,GRAPH;

Const COORDINATI:array[1..24] of integer=

(500, 150, 530, 210, 520, 210, 570, 280,550, 280, 600, 345,

400, 345, 460, 280,440, 280, 480, 210, 470, 210, 500, 150);

{Coordinati — координати вершин ялинки}

Var GRAPHDRIVER,GRAPHMODE,ERRORCODE:integer; begin

GRAPHDRIVER:=Detect;

InitGraph(GRAPHDRIVER,GRAPHMODE,'c:\tp7'); ERRORCODE :=GraphResult;

if ERRORCODE<>0 then

begin

writeln('Помилка графіки:');

writeln(GraphErrorMsg(ERRORCODE));

writeln('Програму закінчено');

Halt(1);

end;

ClearDevice; {Очищення екрану дисплея}

SetBKColor(11); {Встановлення кольору фону — голубого}

SetFillStyle(1,15); {Встановлення кольору замальовування — білого}

bar(0,400,640,480); {Малювання снігу} SetColor(7);

Ellipse( 150,400,0,360,100,75);Ellipse( 150,275,0,360,74,50);

Ellipse(150,175,0,360,50,50);FloodFill( 150,400,7);

FloodFill( 150,275,7); FloodFill( 150,175,7); SetColor(8);

Line( 140,60,160,60); Line(140,60,130,120); Line( 160,60,170,120);

SetColor(4); Line(225,200,225,350); SetColor(4);

Line(225,200,210,160);Line(225,200,240,160); Line(225,200,225,160);

SetColor(9); SetFillStyle(1,9); Circle(135,160,5); Circle(165,160,5);

FloodFill(135,160,9); FloodFill(165,160,9); SetColor(4);

Line(140,200,160,200); SetColor(12); Line(150,170,150,190);

SetColor(5); SetFillStyle(1,6); Circle(150,255,8); Circle(150,285,8);

Circle(150,365,8); Circle(150,400,8); Circle(150,435,8);

FloodFill(150,255,5); FloodFill(150,285,5); FloodFill(150,365,5);

FloodFill(150,400,5); FloodFill( 150,435,5);

SetFillStyle(1,2); {Встановлення кольору замальовування — зеленого}

FillPoly(12,Coordinati); {малювання багатокутника — ялинки}

bar(475,345,525,450);

repeat {Затримка зображення}

until keypressed; {на екрані}

CloseGraph; {Закриття графічного режиму}

end.


Після запуску програми ми отримаємо наступний малюнок


hello_html_13ce6ba2.jpg


Приклад №6.

Зразок виконання практичної роботи№2

ПРАКТИЧНА РОБОТА № 2

ТЕМА: Створення піраміди.

МЕТА: Скласти програму створення перерізу піраміди.

Програма розв'язку даної задачі мовою програмування Пас­каль має вигляд:


Програма побудови піраміди

Program Piramida;

Uses Crt,Graph;

Const p1:array[1..12]of

integer=(283,77,220,77,160,135,400,135,470,77,365,77);

p2:array[1..10]of integer=(295,93,250,120,350,120,380,93,295,93);

Var d,r:integer;

BEGIN

d:=detect; initgraph(d,r,''); SetColor(14);

line(320,30,250,120);line(320,30,350,120);

line(320,30,380,93);line(240,135,180,225);

line(350,135,380,225);line(410,125,460,180);

line(180,225,380,225);line(380,225,460,180);

DrawPoly(6,p1);drawPoly(5,p2);

SetFillStyle(1,7);FloodFill(400,105,14);

SetFillStyle(3,13);FloodFill(340,105,14);

FloodFill(360,100,14); SetColor(9);

SetLineStyle(2,2,1);line(180,225,260,180);

line(260,180,460,180);line(320,30,295,93);

line(260,180,278,135); SetColor(4);

line(320,30,320,200);line(380,165,260,240);

line(260,180,380,225);line(260,105,380,105);

SetColor(14); OutTextXY(275,255,'P I R A M I D A');SetColor(15);

SetLineStyle(3,3,3);Line(267,270,395,270); SetColor(14);

SetTextStyle(0,1,1);OutTextXY(120,80,'P E R E R I Z');SetColor(13);

SetTextStyle(0,0,1);OutTextXY(120,300,'Z A L I K Z G R A F I C H

N O G O R E J I M U.');

SetColor(15);SetLineStyle(1,1,1);Line(120,310,520,310);

Repeat Until readkey=#13;

Closegraph

END.




hello_html_m2db03d49.jpg


Запитання для самоконтролю

  1. У чому полягає особливість програмування з використанням
    графіки?

  2. Що таке ініціалізація графічного режиму?

  3. Які процедури модуля Graph дають змогу виводити на екран
    монітора прості геометричні фігури?

  4. Які процедури модуля Graph дають змогу працювати з
    кольорами? Які їх особливості?

  5. Які процедури та функції модуля Graph реалізують роботу з
    текстами?


Т е с т и


1. Вкажіть яка, з перерахованих нижче графічних процедур, малює на екрані:

  1. Точку________________ a) PutPixel

  2. відрізок прямої б) SetBKColor

  3. дугу в) Arc

  4. прямокутник г) Circle

  5. встановлює колір д) Rectangle

фону на екрані е) SetColor

  1. еліпс с) Line

  2. встановлює колір ж) Ellipse

малювання ліній


2. Для роботи в графічному режимі необхідно підключити

модуль:

a) DOS б) CRT в) GRAPH

3. Яка з вказівок ініціалізації графічного режиму записана пра-
вильно:

а) InitGraph(VGA,2,'D:\TP70')

б) InitGraph(2,VGA,'D:\TP70')

в) InitGraph('D:\TP70',VGA,2)


4. Колір зображення точок та ліній можна встановити з допомо-
гою процедури:

а) SetBkColor в) SetFillStyle

б) SetColor г) CloseGraph


5. Колір фону можна встановити з допомогою процедури:

а) SetBkColor в) SetFillStyle

б) SetColor г) CloseGraph


6. Вид штрихування можна встановити з допомогою процедури:


а) SetBkColor в) SetFillStyle

б) SetColor г) CloseGraph


7. Встановити відповідність між процедурами та результатами їх дії:

  1. ClearDevice а) Закриття графічного режиму

  2. CloseGraph б) Затримка зображення

  3. Repeat Until KeyPressed в) Очищення екрану



Не припускайтеся помилок!

Якщо при звертанні до процедур або функцій модуля Graph, ви одержуєте повідомлення про помилку:

Error 3: Unknown identifier , то це означає, що ви забули підключити модуль Graph.

Якщо компілятор на назву модуля Graph в розділі Uses реагує виведенням повідомлення про помилку:

Error 15: File not found (GRAPH.TPU) , то це означає, що компілятор не може знайти файл graph.tpu.

Якщо в поточному підкаталозі відсутній файл .bgi, то одержите повідомлення про помилку під час виконання програми

BGI Error: Graphics not initialized (use InitGraph) .

Якщо програма виконує виведення графічних образів, але їх не видно на екрані, то це може відповідати таким помилковим ситуаціям:

  • колір графічного образу збігається з кольором фону;

  • координати точок виходять за межі екрана.




Виконайте завдання


1. Створіть програму та обчисліть об’єм полого циліндра.

hello_html_27c7d132.jpg

Радіус циліндра


Радіус отвору

Висота циліндра


2. Створіть програму та обчисліть об’єм конуса.

hello_html_680faa6f.jpg

3. Написати програму, яка накреслить на екрані ко­раблик.

hello_html_m1b606559.jpg

4. . Написати програму, яка накреслить на екрані ракету.

hello_html_27afcb3f.jpg


  1. . Написати програму, яка накреслить на екрані ко­раблик, використовуючи методику базової точки.

hello_html_m530e1ca5.jpg

Группа 4



Тема уроку№2: "Методи створення рухомих графічних об'єктів засобами мови

Паскаль"


Учні повинні знати:

  • принципи побудови опису програми мовою програмування;

  • призначення та правила описування вказівок звернення до алгоритмів; поняття про алгоритми-процедури й алгоритми-функції;

  • основні правила опису графічних операцій навчальною алгоритмічною мовою та мовою програмування;

  • процедури та функції для побудови найпростіших графічних зображень.



Учні повинні мати уявлення про:

  • класифікацію мов програмування;

  • інтерпретацію та компіляцію;

  • системи програмування;

  • інтегровані середовища програмування.

Учні повинні вміти:

  • застосовувати різні форми опису алгоритмів і переходити від однієї форми опису алгоритмів до іншої;

  • визначати тип величини, описувати її навчальною алгоритмічною мовою та мовою програмування;

  • застосовувати метод послідовних уточнень при побудові алгоритмів і програм;

  • описувати алгоритми розв’язування задач різних типів навчальною алгоритмічною мовою та мовою програмування;

  • складати й реалізовувати найпростіші алгоритми на опрацювання графічної інформації, на використання допоміжних функцій і процедур;

  • вводити та налагоджувати програми на комп’ютері.

Мета: показати можливості створення рухомих графічних об'єктів та простих

мультиплікаційних зображень засобами мови Паскаль на прикладах

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

Обладнання: персональні комп’ютери, опорний конспект до заданої теми, роздатковий матеріал, PPT- презентація, мультимедійний проектор.

Тип уроку: урок формування умінь і навичок.


Форма організації уроку.


Робота в комп’ютерному класі - практичне заняття;

  • пояснення деяких завдань, запис програм на дошці;

  • парна та індивідуальна робота за комп’ютером.

Хід уроку


1. Актуалізація опорних знань.


Перш ніж перейти до нової теми, давайте знову згадаємо цикли:

- Як виконувалось завдання про “ підскакуючого хлопчика”?

- Як виконувавця рух фігурками у псевдографіці?

- Як виконувалось завдання для побудови концентричних кіл?






Пояснення нового матеріалу.

Теоретичний матеріал

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

hello_html_2094ecf8.png


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

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


Задача № 1.

Умова: "Годинник". Змоделювати рух годинної та хвилинної стрілок.

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

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

Формули, за якими обчислюються координати рухомого кінця стрілки, відомі учням з курсу математики (поворот точки на заданий кут відносно нерухомого центру з координатами x0, y0). Тому наводимо їх тут без пояснень:

x = x0 + L*cosa

y = y0 + L*sina

де L - відстань, на якій знаходиться точка від центру повороту,

a - кут, на який повертається точка.

Зверніть увагу тільки на те, що в програмі друга формула замість знаку "-" буде містити знак "+", тому що екранні координати мають направленість осей, зворотну до реальних Декартових координат (на екрані значення координати Y збільшується в напрямку зверху вниз).

Малювання поділок на циферблаті виконується теж за допомогою вище наведених формул

Програма, що реалізує запропонований алгоритм, наведена нижче. Зверніть увагу, що в цій програмі

L_min, L_time - довжини хвилинної та годинникової стрілок відповідно;

Color_min, Color_time - кольори хвилинної та годинникової стрілок відповідно;

R - радіус циферблату годинника;

х_centr, y_centr - координати центра екрану (визначаються у відповідності до поточної роздільної здатності за допомогою функцій getmaxx та getmaxy;

х_min, y_min - координати рухомого кінця хвилинної стрілки;

х_time, y_time - координати рухомого кінця годинникової стрілки;

Ang_min, Ang_time - кути повороту хвилинної та годинникової стрілок відповідно.

Рух стрілок по циферблату здійснюється за рахунок постійного їх перемалювання то активним кольором малювання стрілки, то кольором тла ("затирання" зображення). Програма завершується після натискання будь-якої клавіші за рахунок використання циклу repeat until keypressed.


Програма побудови годинника

Program Schasi;

Uses crt,graph; {Підключення бібліотек}

const L_min=174;

L_time=145;

Color_min=white;

Color_time=white;

R = 200;

var gd,gm:integer;

S:string[2];

x_centr, y_centr:integer;

i,x_min,y_min:integer;

x_time,y_time:integer;

Ang_min,Ang_time:real;

begin

{Ініціалізація графічного режиму}

gd:=VGA; gm:=VGAHi;

InitGraph (gd,gm,'egavga.bgi');

{Визначення центра екрану}

x_centr := getmaxx div 2;

y_centr := getmaxy div 2;

{Малювання статичної частини малюнку}

SetColor(brown);

SetFillStyle(1,brown);

{Малювання циферблату коричневого кольору}

FillEllipse(x_centr,y_centr,R,R); Ang_time:=-90;

{Встановлення кольору малювання, стилю та вирівнювання тексту}

SetColor(yellow);

SetTextJustify(CenterText, CenterText);

SetTextStyle(DefaultFont, HorizDir, 2);

{Малювання поділок жовтого кольору та цифр}

for i:=1 to 12 do begin

Ang_time:=Ang_time+30;

x_time:=round(x_centr+185*cos(Ang_time*pi/180));

y_time:=round(y_centr+185*sin(Ang_time*pi/180));

str(i,S); OutTextXy(x_time,y_time,S); end;

{Малювання ходу годинника}

Ang_min:=-90; Ang_time:=-90;

repeat

x_time:=round(x_centr+L_time*cos(Ang_time*pi/180));

y_time:=round(y_centr+L_time*sin(Ang_time*pi/180)); SetColor(Color_min);

Line(x_centr,y_centr,x_time,y_time);

x_min:=round(x_centr+L_min*cos(Ang_min*pi/180));

y_min:=round(y_centr+L_min*sin(Ang_min*pi/180)); SetColor(Color_min);

Line(x_centr,y_centr,x_min,y_min);

Delay(10000); {Затримка зображення на екрані}

SetColor(brown);

Line(x_centr,y_centr,x_time,y_time);

Line(x_centr,y_centr,x_min,y_min);

Ang_min:=Ang_min+6;

Ang_time:=Ang_time+0.5;

until keypressed;

readkey;

CloseGraph;

end.

Після запуску програми ми отримаємо малюнак. Рух стрілок годинника.


hello_html_5bc16807.jpg


Запропонований метод побудови мультиплікаційних об'єктів являється найпростішим, але якщо об'єкт, що рухається, має більші лінійні розміри, ніж в запропонований задачі, він буде суттєво миготіти на екрані. Тому існує інший підхід до розв'язку цієї задачі. В цьому випадку пропонується наступний алгоритм:

а) намалювати бажаний об'єкт;

б) запам'ятати область екрана, з виведеним малюнком;

в) відновити екран в місці, де був малюнок (тобто стерти малюнок);

г) вивести малюнок на нове місце і т.д.

Цей підхід дуже схожий на попередній варіант, але має суттєві переваги в тому, що не потребує багаторазового перемалювання малюнку. Об'єкт створюється один раз, зберігається його копія, а потім виводиться в потрібному місці.

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

1. GetImage(x1,y1,x2,y2,BitMap) - зберігає образ вказаної прямокутної області екрана в динамічній області пам'яті.

В цій підпрограмі

х1, y1, x2, y2 - координати лівого верхнього та правого нижнього кутів прямокутної області екрана, образ якої ми хочемо зберегти;

BitMap - адреса області пам'яті, в якій ми зберігаємо об'єкт.

2. PutImage (x,y,BitMap,Mode) - відновлює збережений образ прямокутної області.

Тут x, y - координати верхнього лівого кута області екрана, в яку ми хочемо помістити зображення;

BitMap - адреса пам'яті, в якій було збережено зображення;

Mode - режим накладання зображення на екран. Режимів накладання існує 5 (від 0 до 4), але самими цікавими для нас являються CopyPut (0) - заміщення новим об'єктом старого зображення та XOR (1) - "витирання" старого об'єкта.

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

{визначається необхідний розмір області пам'яті}

Size := ImageSize(x1,y1,x2,y2);

{у системи запрошується оперативна пам'ять}

GetMem(BitMap,Size);

де x1, y1, x2, y2 - координати прямокутної області екрану, де знаходиться малюнок;

Size - розмір необхідної пам'яті (змінна цілого типу);

BitMap - адреса оперативної пам'яті, що виділяється системою (змінна типу вказівник для збереження адреси).

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




Задача № 2.

Умова: "Баскетбол". Зобразити на екрані відбивання від підлоги, стін та стелі м'яча, що зображається зафарбованим кругом. Для спрощення алгоритму траєкторію руху м'яча вважати ламаною лінією. Силою тертя повітря знехтувати.

У наведеній нижче програмі описані наступні константи:

- R являється радіусом м'яча,

- Time - час затримки зображення на екрані (підбирається емпіричним шляхом в залежності від типу ПЕОМ).

Крім того використовуються наступні змінні:

- x та y вказують на координати лівого верхнього кута області екрана, куди виводиться, а потім звідки витирається зображення;

- Size та BitMap - використовуються для збереження зображення в оперативній пам'яті (дивись вище);

- Step_x та Step_y - задають крок, на який пересувається об'єкт при кожному наступному перемалюванні (теж підбирається емпірично в залежності від типу ПЕОМ).

Перший м'яч малюється в лівому верхньому кутку екрану і напрямок його руху - зверху вниз, зліва направо, тому початкові координати області зображення x та y дорівнюють 0, а обидва кроки додатні. Далі, якщо об'єкт долітає до границі екрана, то крок змінюється на протилежний за знаком, і об'єкт починає рухатись в зворотному напрямку.

Програма, що реалізує запропонований алгоритм, має наступний вигляд:

Програма побудови рухливого м'ячика

Program Sharik;

uses crt,graph;

const R=20;

Time = 1000;

var gd,gm:integer;

x,y:integer;

Size:integer;

Step_x,Step_y:integer;

BitMap:pointer;

begin

x:=0; y:=0;

Step_x:=5;

Step_y:=5;

gd:=VGA; gm:=VGAHi;

InitGraph (gd,gm,'egavga.bgi');

SetColor(brown);

SetFillStyle(1,brown);

FillEllipse(R,R,R,R);

size:= ImageSize(0,0,2*R,2*R);

GetMeM(BitMap,Size);

GetImage(0,0,2*R,2*R,BitMap^);

repeat

delay(Time);

PutImage(x,y,BitMap^,1);

x:=x+Step_x;

y:=y+Step_y;

if (x+2*R >= getmaxx) or (x<=0)

then Step_x:=-Step_x;

if (y+2*R >= getmaxy) or (y<=0)

then Step_y:=-Step_y;

PutImage(x,y,BitMap^,1);

until keypressed;

readkey;

CloseGraph;

end.


hello_html_m49daf5e7.gifПісля запуску програми ми отримаємо малюнак. Шарик переміщається в

прямокутнику.


hello_html_m139cdc8f.gif





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

Gd - тип графічного адаптера (CGA, EGA, VGA і т.д.);

Gm - режим роботи графічного адаптера.

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

Один з таких режимів Gm=VGAMed дозволяє програмісту виводити 16-кольорове зображення з роздільною здатністю 640 на 350 пікселів, при цьому він підтримує дві графічних сторінки.

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

SetActivePage (Page) - задається номер активної сторінки (Page), тобто сторінки, на якій в даний момент буде будуватися зображення;

SetVisualPage (Page) - задається номер візуальної сторінки, тобто тієї сторінки, що являється видимою в даний момент.

В запропонованому режимі існує тільки дві сторінки, що мають номера 0 та 1, тому зміну сторінок можна виконувати змінною Page, що буде змінюватись за наступним законом:

Page := 1-Page,

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

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


Задача № 3.

Умова: Скласти програму, яка виводитиме на екран рух тіла, кинутого під кутом до горизонту. Опором повітря знехтувати.

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

G = 9.8 –прискорення;

Color - колір тіла, що кинуто;

Radius - радіус тіла;

Time - затримка зображення на екрані (підбирається емпіричним шляхом в залежності від типу ПЕОМ).


Програма побудови руху тіла

Program Tilo;

uses crt,graph;

const g=9.8;

Color = 2;

Radius = 20;

Time = 500;

var gd,gm:integer;

Page:byte;

Vx,Vy,X,Y:real;

begin

gd:=VGA; gm:=VGAMed;

InitGraph (gd,gm,'egavga.bgi');

Vx:=40; Vy:=30; X:=15; Y:=160;

SetColor (Color);

SetFillStyle(1,Color);

repeat

SetActivePage (Page);

ClearDevice;

Circle (round (X),round (Y),Radius);

FloodFill(round(X),round(Y),Color);

SetVisualPage (Page);

Page:=1-Page;

Delay (Time);

X:=X+Vx*0.1;

if Vy<>0 then Y:=Y-Vy*0.1;

Vy:=Vy-g*0.1;

Until keypressed;

CloseGraph;

end.


Після запуску програми ми отримаємо малюнак. Рух тіла кинутого до горизонту.


hello_html_m6d4ffb15.gifhello_html_1d5e0484.gif






hello_html_2135d917.gif

Закріплення матеріалу. Робота за комп’ютером.


Завдання


Нарисувати графік функції y=2sin(2x)+1 на проміжку [0; 2hello_html_1bfc1af9.gif],табулюючи функцію з кроком h=0,1. У результаті експерименту, міняючи значення амплітуди в пік селях(за допомогою множника М), зобразити графік на екрані якнайкраще.



Підведення підсумків.


- Що слід пам’ятати при робудові графіків функій в графічному режимі?

- Як здійснюється маштабування координат?

- Для чого здійснюється маштабування координат?


Домашнє завдання.


Написати програми для побудови графіків тригонометричних функцій з модулем, які розглядались на уроці математики














Рекомендована література


1. Аладьев В.З. Тупло В.Г. Turbo Pascal для всех. -К.: Техника, 1993. -176с.


2. Бартків А.Б. та ін.Турбо Паскаль: Алгоритми і програми. -К.: Вища школа, 1992. -248с.


3. Довгаль СИ., Сбитнев А.И. Интерфейс современной программной системы Турбо Паскаль 7.0. -К.: Информсистема-сервис, 1994. -416с.


4. Паскаль для персональных компьютеров: Справочное пособие. -М.: Высшая школа, 1991. -365с.


5. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. -М.:Нолидж, 1997. -432с.


6. Ян Белецкий. Турбо Паскаль с графикой для персональных компьютеров. -М.: Машиностроение, 1991. -320с.



Методические рекомендации графических возможностей в Паскале
  • Информатика
Описание:

 

Навчальний предмет. Інформатика. 11 клас філологічного профілю

Розділ.  Основи  програмування

Тема.    Графічні можливості мови   TURBO  PASCАL 7.0       

Тип уроку: урок формування вмінь і навичок

Автор: Подимаа василь Юрійович, учитель інформатики Руднянської ЗОШ  І-ІІІ ступенів Броварського району,

 учитель-методист

Програма, за якою працює учитель: Інформатика. Навчальна програма для учнів 11 класу загальноосвітніх навчальних закладів (авт.:Ю.О.Дорошенко,І.О.Завадський, Ж.В.Потапова), http://www.mon.gov.ua/main.php?query=education/average/new_pr

 

 

Мета уроку.

Навчальна:Ознайомити учнів з ініціалізацією графічного режиму в програмі TurboPascal 7.0

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

Виховна: Показати широке коло застосування властивостей графічного режиму в інформатиці для вивчення математики.

Розвиваюча: Розвиток просторового уявлення, уваги, акуратність та скрупульозність при створені графічної програми,  уявлень про математичне моделювання як потужний метод наукового пізнання, загального кругозору школярів, мотивація до свідомої навчальної діяльності.

 

Форма роботи. Діалог, інтерактивне спілкування, коментарі до мультимедійного супроводу, практичне застосування  набутих  навичок при програмуванні.

 

Обладнання.

Комп’ютери, програмне забезпечення, флеш-диск, PPT- презентація, мультимедійний проектор, дошка ,  підручники, додаткова навчально-методична література.

 

Термінологічний словник основних понять: ініціалізація, вхід в графічний режим, вихід з графічного режиму, підключення модуля Graph, процедури і функції в графічному режимі та їх властивості.

І. Організаційний момент.

  Робота в комп’ютерному класі  - практичне заняття;

-   пояснення деяких завдань, запис програм на дошці;

-   парна та індивідуальна робота за комп’ютером.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ІІ. Мотивація навчальної діяльності у вивченні теми «Графічні можливості мови 

                                                   TURBO  PASCАL 7.0 ».

                                 

                                         /Слайди 1-15 мультимедійної презентації/

 


 

Серед різних режимів роботи в системі програмування  TURBO  PASCАL 7.0 графічний режим  займає особливе місце. За допомогою графічного режиму є можливість показати об’ємні геометричні фігури та їх розрізи, малювати малнки, створити динамічну графіку та анімацію не складних малюнків.  

 Саме тому предметом нашого сьогоднішнього дослідження буде графічний режим в системі мови програмування.

ІІІ. Актуалізація опорних знань.

Питання до класу:

1)                          Яка процедура встановлює графічний режим?

2)                          Назвати процедуру для  задання кольору фону.

3)                          Назвати процедуру для  задання кольору майбутнього зображення.

4)                          Перелічити процедури для роботи з пікселями.

5)                          Перелічити процедури для роботи з дугами.

6)                          Перелічити процедури для роботи з колом, еліпсом.

&ІV. Пояснення нового матеріалу.

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


Рис. 2. Координати точок на графічному екрані 640х480

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

Сам модуль може бути в бiблiотеці Turbo.tpl або в деякому каталозі на диску. В останньому випадку модуль треба приєднати командою uses на початку програми. Потрібний також файл egavga.bgi — драйвер для VGA адаптера чи файл cga.bgi для відповідного CGA адаптера монітора тощо.

 

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

 

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

var driver, mode : integer;                  {Для характеристик дисплея}

begin

   driver:= detect;                                 {detect - стандартна стала}

   initgraph (driver, mode, '');               {Задання графічного режиму}

   if graphresult < > 0 then

      begin

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

      halt                                                 {Стоп}

      end;

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

end.

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

 

black=0 – чорний;

blue=1 – синій;

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

cyan=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 – білий.

 

Далі розглядатимемо процедури, що стосуються виведення текстової інформації в графічному режимі. Оскільки після ініціалізації графіки будь-які зображення виводяться по пікселях, то це стосується і текстової інформації. Таке виведення тексту від­бувається набагато повільніше, ніж у текстовому режимі.

 Для вибору певного шрифта існує процедура: SetTextStyle(Font, Direction: word; CharSize: word), де Fontзадає один з типів шрифтів, Direction— горизонтальне (0) чи вертикальне (1) виведення тексту, aCharSize— розмір шрифта (від 1 до 10).

Паскаль дозволяє працювати зі стандартними шрифтами, перелік яких наведено в таблиці 1:

 

                                       Таблиця 1

Назва                           Код                          Опис                           DefaultFont                          0                    матричний шрифт 8 х 8 TriplexFont                          1                   напівжирний шрифт

SmallFont                            2                   світлий шрифт

SansSerifFont                      3                    книжкова гарнітура

GothicFont                           4                    готичний шрифт

 

Для роботи з шрифтами у графічному режимі неоохідно, щоо у поточному каталозі були файли відповідних шрифтів з розширенням «chr». Шрифт DefaultFont встановлюється після ініціалізації графічного режиму автоматично і не потребує файла шрифта. Інші шрифти реалізовані відповідно у файлах trip.chr, small.chr, sans.chr, goth.chr.

   Перш ніж скористатися в програмі додатковими шрифтами, їх необхідно зареєструвати. Для цього існує функція: InstallUserFont(FontName: string): integer, яка повертає числовий код, під яким буде зареєстровано даний шрифт.

 FontName— файл шрифта без розширення «chr».

 

 

Автор Подыма Василий Юрьевич
Дата добавления 29.12.2014
Раздел Информатика
Подраздел
Просмотров 385
Номер материала 15896
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓