- •Тема 1. Основи алгоритмізації процесів оброблення інформації
- •Алгоритм і його властивості
- •Схеми алгоритмів
- •Графічне зображення різних видів обчислювальних процесів
- •Тема 2. Інстрментальні мови та системи програмування
- •Покоління та класифікація мов програмування
- •Компоненти інструментальних систем
- •Історія розвитку мови програмування Паскаль
- •Інтегрована інструментальна оболонка Турбо Паскаль 7.0
- •Етапи створення програми
- •Тема 3. Мова програмування Турбо Паскаль 7.0
- •Алфавіт мови Турбо Паскаль 7.0
- •Структура Паскаль-програми
- •Система типів даних мови програмування Паскаль
- •Тема 4. Лінійні програми в мові Паскаль
- •Оператор присвоєння
- •Оператор введення
- •Оператор виведення
- •Операції та вирази в мові паскаль
- •Стандартні функції мови Паскаль
- •Тема 5. Умовний оператор в мові паскаль
- •Умовний оператор
- •Оператор варіанту
- •Тема 6. Оператори Циклу в мові паскаль
- •Оператор безумовного переходу
- •Оператор_циклу «з передумовою»
- •Оператори циклу « з післяумовою»
- •Оператор циклу «з параметром»
- •Тема 7. Обробка масивів у Турбо Паскалі
- •Одновимірні масиви
- •Багатовимірні масиви
- •Тема 8. Підпрограми в мові Турбо Паскаль
- •Процедури
- •Функції
- •Тема 8. Стандартні засоби обробки файлів
- •Обробка типізованих файлів
- •Послідовний та прямий доступ до файлу
- •Робота з текстовими файлами
- •Обробка безтипових файлів
- •Тема 9. Робота з рядковими типами даних в середовищі Турбо Паскаль
- •Тема 10. Множини в мові паскаль
- •Тема 11. Записи в мові Паскаль
- •Тема 12. Комп'ютерна графіка
- •ЛАБОРАТОРНИЙ ПРАКТИКУМ
- •Лабораторна робота №1
- •Лабораторна робота №9
- •ДОВІДНИК
- •Типові помилки компіляції та виконання програми
- •Процедури модуля Graph
- •функції модуля Graph
- •Кольори модуля Graph
«Turbo Pascal » |
Значенко О.П. |
Знищення файлу
Процедура Erase знищує існуючий файл з диску. При цьому файлова змінна попередньо має бути пов’язана з реально існуючим файлом.
Приклад Знищення файлу lesson. dat
Assign (f,' а:\ lesson. dat’); Erase (f);
Приклад програми виведення на екран вмісту файлу
Program Р2; Var
f:file of integer; n:integer;
Begin
Writeln('Вміст файлу’); Assign(f,' а:\ numbers.dat');
Reset(f); {відкриття файлу для читання} While not EOF(f) do {доки не буде досягнуто кінець
файлу} |
|
Begin |
|
Read(f,n); |
{прочитати компонент файлу} |
Writeln(n); {вивести прочитаний компонент на |
|
екран} |
|
End; |
|
Close (f); |
{закриття файлу} |
Readln; |
|
End. |
|
Послідовний та прямий доступ до файлу
Файл – це послідовна структура даних. Після його відкриття доступний перший компонент. Можна послідовно зчитувати чи записувати один компонент файлу за іншим.
Для прямого доступу до компонентів файлу використовуються вбудовані
45
«Turbo Pascal » Значенко О.П.
процедури та функції Турбо Паскаля, які дозволяють визначити позицію необхідного компоненту у файлі та вказати безпосередньо на нього. При прямому доступі до файлу його компоненти нумеруються від нуля до n-1, де n – число компонентів у файлі. (0 – перший компонент)
Функція filesize(f), де f – файлова змінна, що повертає значення типу longint, тобто число реальних компонентів відкритого файлу f. (для пустого файлу вона покарне значення 0 )
Функція filepos(f) повертає значення типу longint - поточну позицію у файлі f, що має бути відкритий. Якщо файл щойно відкритий то значення filepos(f) = 0. Після зчитування останнього компоненту з файлу значення filepos(f) співпадає зі значенням filesize(f), що вказує на досягнення кінця файлу.
If filepos(f) = filesize(f) then
Writeln(' досягнуто кінця файлу')
Приклад програми визначення кількість компонентів файлу цілих чисел, та виведення вмісту файлу на екран.
Program Р3; |
|
Var |
|
f:file of integer; |
{типізований файл} |
i:word; |
|
n:integer |
{компоненти файлу} |
Begin |
|
Assign(f,'a:\numbers.dat'); |
{встановлення відповідності} |
Reset(f); |
{відкриття в режимі читання} |
Writeln (' у файлі numbers. dat', filesize(f), 'чисел'); |
|
for i:=1 to filesize(f) do |
|
Begin |
|
Read(f, n); |
|
Write(n, ' '); |
|
End; |
|
Close (f); |
{закриття файлу} |
Readln; |
|
End. |
|
46
«Turbo Pascal » |
Значенко О.П. |
Процедура seek(f,n) |
встановлює покажчик у відкритому файлі f на |
компонент з номером n. (нумерація починається з нуля).
Процедура truncate(f), де f – ім’я файлової змінної, відсікає частину відкритого файлу, починаючи з поточного компоненту та підтягує на його місце кінець файлу.
Приклад. Записати у файл 5 елементів масиву,зчитати їх, знайти сумму та дописати її у файл.
PROGRAM Р4;
VAR
f:file of integer; i,s,t:integer;
a:array [1..10] of integer;
BEGIN s:=0;
Assign(f,'d:\numbers.dat');
Rewrite(f); for i:=1 to 5 do
Begin
write('a[',i,']='); Readln(a[i]); Write(f,a[i]);
End; Close (f);
Reset(f);
for i:=1 to filesize(f) do
Begin
Read(f, a[i]); s:=s+a[i];
End;
seek(f,filesize(f)); write(f,s);
close(f);
reset(f);
for i:=1 to filesize(f) do begin
read(f,a[i]); Write(' ',a[i], ' ');
end; close(f); Readln;
END.
47
«Turbo Pascal » |
Значенко О.П. |
|
Робота з текстовими файлами |
При роботі з тестовими файлами дія процедур rewrite, reset, close, rename, erase та функції eof аналогічна їх дії при роботі з типізованими файлами.
При роботі з текстовими файлами користуються процедурою append – спеціальне відкриття файлу для запису в існуючи файли додаткової інформації у кінець файлу.
Запис у текстовий файл та зчитування даних може здійснюватися за допомогою процедур write, writeln, read, readln.
Особливість даних операторів полягає у тоиму, що перед записом даних у текстовий файл за допомогою процедури write відбувається їх перетворення у тип string. Дія оператора writeln відрізняється тим, що він записує у текстовий рядок символ кінця рядка.
При зчитуванні даних відбувається перетворення з рядкового до необхідного типу даних. Якщо перетворення неможливе, то генерується код помилки, значення якої можна дізнатися звернувшись до функції IOResult.
Правила роботи з текстовими файлами:
1.Коли вводяться числові значення, два числа вважаються розділеними, якщо між ними є хоча б один пробіл, символ табуляції чи символ кінця рядку.
2.При введенні рядків початок поточного рядка іде одразу за останнім до цього символом. Вводиться кількість символів, рівне оголошеній довжині рядка. Якщо при зчитуванні зустрічається символ «кінець рядка», то робота з цим рядком закінчується. Сам символ кінця рядка є розділювачем та у змінну ніколи не зчитується.
3.Процедура readln зчитує значення поточного рядка файла, курсор переводиться на новий рядок файлу, і в подальшому введення здійснюється
з неї.
48
«Turbo Pascal » |
Значенко О.П. |
Приклад: Написати програму складання двохб матриць , результуючу матрицю вивести на екран дисплея та у текстовий файл.
PROGRAM Р5; Var
f:text;
i,j,k:integer;
a,b,c:array [1..3,1..3] of integer;
Begin
Assign(f,'d:\matrix.txt');
Rewrite(f); randomize;
For i:=1 to 3 do for j:=1 to 3 do a[i,j]:=random(5);
For i:=1 to 3 do begin
for j:=1 to 3 do write(a[i,j], ' '); writeln;
end;
writeln('------');
For i:=1 to 3 do for j:=1 to 3 do b[i,j]:=random(5);
For i:=1 to 3 do begin
for j:=1 to 3 do write(b[i,j], ' '); writeln;
end;
writeln('------');
For i:=1 to 3 do begin
for j:=1 to 3 do begin
c[i,j]:=a[i,j]+b[i,j]; write(c[i,j], ' '); write(f, c[i,j]);
end; writeln;
writeln(f); {переведеня курсора у файлі на новий рядок}
end; Close (f); Readln;
End.
49