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

Лабораторна робота №18 (20) Тема : Обробка файлових даних.

Мета : Оволодіння практичними навичками обробки файлів, що вміщують деяку інформацію. Побудова графіків функції із створеного файлу.

Теоретичні відомості

Файл – поіменована область пам’яті на диску або іншому зовнішньому запам’ятовуючому пристрої.

Паскаль підтримує текстові (тип Text) типовані (типу File of …) і безтипові файли (типу File). Кожна програма обробки файлів обов’язково проходить такі кроки: відкриття, обробка та закриття файлів.

Для файлів існують загальні Текстові файли розглядають як послідовності символів розбиті на рядки. В кінці кожного рядка є два спеціальних символи #13 i #10. Кінець файлу #26(Ctrl+Z).

Введеня\виведення за допомогою процедур read\write.

Крім загальних процедур і функцій є процедури і функції обробки файлових змінних (див. Додаток. Таблиця 6.)

p

приклад

rogram;

uses crt;

var f: File of real;

x, xn, xk, dx, w: Real;

b egin

Clrscr;

Assign (f, ‘func.dat’);

Rewrite (f);

Write (f);

Write (‘input variables xn, xk’)

Readln (xn, xk);

Dx:=(xk-xn)/240;

X:=xn;

Repeat

If x<1 then w:=1,5*sqr(cos(x));

If (x<=x) and (x<=2) then w:=exp(3*ln(abs(x-2)))+6*x;

If x>2 then w:=3*sin (x)-2*cos(x);

Write (f, x, w); X:=x+dx;

Until x>xk;

Close (f);

Writeln (‘ok’);

Readln;

End.

Хід роботи

Згідно з варіантом виконати завдання зазначене в таблиці 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; { колір тла екрана }

{ Кораблик }

Procedure Titan(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.