Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Національний технічний університет України «КПІ»
Інститут Енергозбереження та Енергоменеджменту
Звіт
з дисципліни "Обчислювальна техніка та програмування"
про виконання компютерного практикуму № 8
Виконав: Перевірив:
Ходько І.М. Абрамов Ю.О.
ОА-31
Мета
Знати що таке файл. Вміти задавати файли різних типів даних. Вміти виконувати операції читання та запису у файл. Вивчити вбудовані функції для роботи з типізованими файлами.
Короткі теоретичні відомості
Під файлом розуміється іменована область зовнішньої памяті ЕОМ (жорсткий диск, дискета, тощо) або логічний пристрій - потенційне джерело або приймач інформації.
Файл це структура даних з однорідними компонентами, які звуться записами. Існує три типи файлів:
Приклади опису файлових змінних:
type
person=record name:string[50]; age: integer; end;
var
f1: file of integer; {типізований файл} f2: file of person; {типізований файл} f3: text; {текстовий файл} f4:file; {не типізований файл}
Оскільки файл зберігається на зовнішньому носії, то його розмір обмежений цим носієм. Наприклад у випадку жорсткого диску, розмір файлу обмежений розміром вільної памяті та файловою системою диска.
В тих випадках, коли даних багато або їх треба довго зберігати, застосовують файли. За способом доступу до даних файли поділяються на два види:
У файлах послідовного доступу записи можуть мати різну довжину, а у файлах прямого доступу - тільки однакову. Під поняттям файлу розуміють з одного боку файлову змінну, яку використовують в програмі, а з іншого боку ім'я файлу на диску.
Для звязку файлової змінної та файлу використовують процедуру
assign:
assign(<файлова_змінна>, <шлях_до_файлу>);
Наприклад:
assign( f, 'c:/file.datO;
Потрібно зазначити, що реально файл за вказаним шляхом може і не існувати. Для того щоб сказати програмі яким чином працювати з файлом потрібно його відкрити за допомогою процедур reset або rewrite.
reset(<файлова_змінна>) - відкриває існуючий файл на читання або запис, покажчик файлу встановлюється на початок файлу.
rewrite(<файлова_змінна>) - створює новий пустий файл на запис або читання за вказаним шляхом і встановлює покажчик файлу на початок файлу, якщо файл вже існував, то старий файл видаляється.
Для коректного завершення роботи з файлом його потрібно закрити за допомогою процедури СЬоє:
Close(<файлова_змінна>) - закриває файл.
Процедури та функції для типізованих файлів.
Тип |
Опис |
|
assign(f,path) |
Процедура |
ставить у відповідність файлову змінну f файлу на диску зі шляхом path |
reset(f) |
Процедура |
відкриває уже існуючий файл f та позиціонує покажчик файлу на початок файлу |
rewrite(f) |
Процедура |
створює новий файл f, покажчик файлу встановлюється на початок файлу |
close(f) |
Процедура |
закриває файл f |
eof(f) |
функція |
приймає значення True, якщо покажчик вказує на кінець файлу, інакше False |
read(f,a) |
Процедура |
читання з файлу f у змінні s1,s2 |
write(f,a) |
Процедура |
запис у файл f змінної a |
seek(f,p) |
Процедура |
позиціонування покажчика файлу на запис з номером n |
filesize(f) |
функція |
функція визначає кількість записів у файлі f. |
filepos(f) |
функція |
функція визначає номер запису, на який вказує покажчик |
truncate(f) |
Процедура |
видаляє частину файлу, починаючи з поточної позиції |
erase(f) |
Процедура |
знищує файл f, який перед тим треба закрити |
rename(f,s) |
Процедура |
перейменування закритого файлу f у файл s |
Алгоритм обробки файлів.
Завдання
19. Задано файл цілих чисел. Переписати у вихідний файл всі числа, які кратні семи або не кратні 3 або є відємними. Розрахувати кількість таких чисел для кожної умови окремо.
Програма на мові Pascal
program lab8_19;
Var f,g:file of integer;
m,k1,k2,k3,i,n:integer;
Begin
write('Введите кол-во компонентов для ввода: ');readln(n);
Assign(f,'in.txt');Rewrite(f);
writeln('Исходный файл');
For i:=1 to n do
Begin
m:=random(31)-15;
write(f,m);
write(m:4);
if m mod 7 = 0 then inc(k1)
else if m mod 3 <> 0 then inc(k2)
else if m<0 then inc(k3);
End;
Reset(f);
Assign(g,'out.txt');Rewrite(g);
While not Eof(f) do
Begin
read(f,m);
if (m mod 7 = 0)or(m mod 3 <> 0)or(m<0) then write(g,m);
End;
writeln;
writeln('Чисел которые кратны 7 = ',k1);
writeln('Чисел которые не кратны 3 = ',k2);
writeln('Чисел которые отрицательны = ',k3);
Reset(g);
writeln('Полученный файл');
While not Eof(g) do
Begin
read(g,m);
write(m:4);
End;
Close(f);Close(g);
readln;
End.
Результат
Висновок:
Я вивчив поняття файлу. Навчився задавати файли різних типів данних, виконувати операції читання та запису у файл. Вивчив вбудовані функції для роботи з типізованими файлами