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

X,y,color,n:integer; {X,y - координати точки - 'Зірки',

color - колір точки, N - кількість точок}

і:integer; {і - змінна циклу}

Begin

Randomize;

GraphDriver:=VGA; GraphMode:=VGAHi;

InitGraph(GraphDriver,GraphMode,'');

{Генерується кількість точок в діапазоні від 200 до 1200}

N:=random(1000)+200;

for i:=1 to N do

begin

x:=random(640); у:=random(480); color:=random(14)+l;

putpixel (x,y, color) ; {Виведення піксела заданого кольору color у задані координати екрану х та у}

end;

Readkey;

Closegraph;

End.

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

  • Повторити сторінки 221 - 229 запропонованого підручника;

  • Задачі № 603 (26, 8), 605,606, 608.

УРОК 32. Ділова графіка

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

На цьому уроці пропонується показати можливості мови Паскаль при побудові графіків функцій та різного виду діаграм.

Задача № 614

Умова: Зобразити на екрані монітора декартову систему координат, початок якої збігається з центром екрана.

Розв'язування: Для малювання осей х та у слід скористатися процедурою line, причому координати початку та кінця цих прямих обчислити неважко, тому що вони мають розміщуватись в центрі екрану. Градуювання осей робиться теж за допомогою коротких відрізків довжиною 8 пікселів, що розташовані з кроком step пікселів (крок в програмі заданий у вигляді константи, хоча можна його задавати і іншим методом). Підписи на осях можна зробити таким чином: число, що треба написати, переводиться в рядок процедурою str, а потім виводиться на екран процедурою OutTextXy. Зверніть увагу на те, що на від'ємному проміжку вісі до числа ліворуч дописується знак «-» командою S := '-' + S, де S — рядок, що містить підпис під поділкою. Для якісного оформлення малюнку використовується процедура settextjustify (1,1), що забезпечує відцентроване виведення тексту у вказану позицію. Програма, що реалізує алгоритм, має вигляд:

Program Example_614;

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

Const

Step=25; {Крох між поділками на осях}

Var GraphDriver,GraphMode:integer;

X,у:integer; {X,y - координати центру декарт. Сист. Коорд.}

r:integer; {r - відстань від центру координат до чергової поділки}

S:string; {S - рядок, де зберігається символьне значення підпису для поділки)

Begin

Randomize;

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

GraphMode:=VGAHi;

InitGraph(GraphDriver,GraphMode,''); {Малювання осей}

line(0,240,640,240); line(320,0,320,480);

{Малювання стрілочок на кінцях осей}

line(630,235,640,240); line(630,245,640,240);

line(315,10,320,0); line(325,10,320,0);

{Підписи на осях}

outtextxy(330,5,'Y'); outtextxy(630,220,'X') ;

x:=320; y:=240; r: =0; {Малювання та підпис поділок на вісі X}

while x+r<640 do

begin

line(x+r,y-4,x+r,y+4); line(x-r,y-4,x-r,y+4);

r:=r+step;

str(r div step, S);

settextjustify (1,1);

outtextxy(x+r,y+10,S);

s:='-'+S;

outtextxy(x-r,y+10,S) ;

end;

r:=0; {Малювання та підпис поділок на вісі Y}

while y+r<4 80 do

begin

line(x+4,y+r,x-4,y+r); line(x+4,y-r,x-4,y-r);

r:=r+step;

str(r div step, S);

settextjustify (1,1); outtextxy(x-10,y-r,S);

s:='-'+S; outtextxy(x-10,y+r,S);

end;

Readkey;

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

End.