Згідно з варіантом виконати завдання зазначене в таблиці 11, використовуючи програму обробки строкових змін та символів, а також побудувати графік функції із створеного файлу.
Контрольні питання
1. Що таке файл?
2. Як ви розумієте поняття послідовного і довільного доступу до файлу?
3. Які види файлів підтримує Паскаль?
4. Які етапи обов’язково містить програма обробки файлових змінних?
5. Чим відрізняються процедури Assign i Reset?
6. Навіщо використовується процедура Rename?
7. Чим відрізняється опис текстових файлів від інших файлових змінних?
8. Поясніть різницю між Write i Rewrite.
Лабораторна робота № 19 (21)
Тема: Використання процедур та функцій модуля Graph при розробці анімації.
Мета: Навчитися використовувати особливості модуля Graph при побудові рухомих зображень.
Хід роботи
Розробити програму рухомого об’єкту згідно свого варіанту (Див. Додаток Таблиця 8)
Приклад:
{ Рухомий об’єкт }
program titanik;
uses Graph, Crt;
Var
grDriver:integer; { драйвер }
grMode:integer; { графічний режим }
grPath:string; { місце розташування драйвера }
ErrCode:integer; { результат ініціалізації граф. режиму }
x,y:integer; { координати кораблика }
color:word; { колір кораблика }
bkcolor:word; { колір тла екрана }
{ Кораблик }
ProcedureTitan(x,y:integer; { координати базової точки }
color:word); { колір корабля }
Const
dx=5; dy=5;
Var
OldColor:word;
Begin
OldColor:=GetColor; { зберегти поточний колір }
SetColor(color); { встановити новий колір }
{ корпус }
MoveTo(x,y);
LineTo(x,y-2*dy);
LineTo(x+10*dx,y-2*dy);
LineTo(x+11*dx,y-3*dy);
LineTo(x+17*dx,y-3*dy);
LineTo(x+14*dx,y);
LineTo(x,y);
{ надстройка }
MoveTo(x+3*dx,y-2*dy);
LineTo(x+4*dx,y-3*dy);
LineTo(x+4*dx,y-4*dy);
LineTo(x+13*dx,y-4*dy);
LineTo(x+13*dx,y-3*dy);
Line(x+5*dx,y-3*dy,x+9*dx,y-3*dy);
{ капітанський мостик }
Rectangle(x+8*dx,y-4*dy,x+11*dx,y-5*dy);
{ труба}
Rectangle(x+7*dx,y-4*dy,x+8*dx,y-7*dy);
{ іллюмінатори }
Circle(x+12*dx,y-2*dy,Trunc(dx/2));
Circle(x+14*dx,y-2*dy,Trunc(dx/2));
{ мачта }
Line(x+10*dx,y-5*dy,x+10*dx,y-10*dy);
{ облаштування }
MoveTo(x+17*dx,y-3*dy);
LineTo(x+10*dx,y-10*dy);
LineTo(x,y-2*dy);
SetColor(OldColor); { відновити поточний колір }
end;
Begin
Readln;
grDriver := VGA; { режим VGA}
grMode:=VGAHi; { розширення 640х480}
grPath:=’d:\bp\bgi’; { драйвер, файл EGAVGA.BGI, знаходиться
в каталозі d:\bp\bgi }
InitGraph(grDriver, grMode,grPath);
ErrCode := GraphResult;
if ErrCode <> grOk then Halt(1);
x:=10;
y:=200;
color:=Yellow;
SetBkColor(Blue);
bkcolor:=GetBkColor;
repeat
Titan(x,y,color); { намалювати корабель }
Delay(100);
Titan(x,y,bkcolor); { стерти корабель }
PutPixel(x,y,color); { слід від корабля }
x:=x+2;
Delay(400);
until (x>500);
OutTextXY(10,10,’Рейс завершен!’);
readln;
CloseGraph; end.
Контрольні питання
1. Що таке ініціалізація графіки?
2. Які параметри необхідно задати для ініціалізації графіки, що вони означають?
3. Якою процедурою заливають фон екрану?
4. Як задають кольори в графічному режимі?
5. Які параметри необхідно задати для процедури малювання еліпса, що вони означають?
6. Які параметри необхідно задати для процедури стилю шрифту, що вони означають? На які етапи можна розбити виконання функції?
7. Чим відрізняється робота процедури від роботи функції?
8. Коли варто використовувати процедуру, а коли – функцію?