модулі та робота з файлами в Паскаль
Робота з файлами.
Теоретичні відомості
Файл – це сукупність даних однакового типу. Таке визначення
збігається з визначенням масиву, але, на відміну від останнього, файл
зберігають на диску, кількість даних у файлі при його описуванні не
вказується, елементи файла не мають індексів, що ускоаднює роботу з ними.
Опис файлового типу має вигляд:
Type <ім'я типу> = File of <тип компонент>;
Процедури і функції для роботи з файлами:
Assign – зв'язує деякий зовнішній файл на диску з файловою змінною.
Reset – відкриває уже раніше створений файл данних на диску, ім'я якого
було перед цим пов'язане процедурою Assign.
Rewrite – створює новий файл і відкриває його. Якщо файл вже існує вміст
знищується, а сам файл відкривається знову.
Close – закриває файл, який зв'язаний з файловою змінною.
Eof – набуває значення true, якщо досягнуто кінець файла, інакше набуває
значення false.
IOResult – використовується для пошуку помилок, які виникають при роботі
з файлами.
Індивідуальне завдання
Задача 1.
Написати програму контролю знань студентів з літератури.
Оформити файл відповідей та файл питань.
Задача 2.
Написати програму що виводить на екран студентів, що набрали прохідний бал
не нижче 8.
Задача 1:
program zavd1;
uses
crt;
const
qfile='quest.txt';
afile='ansver.txt';
var
f1,f2:text;
i,k:integer;
name,ansv:string;
begin
clrscr;
assign(f1,qfile);
assign(f2,afile);
rewrite(f2);
reset(f1);
write('Введіть своє ім`я, групу :');
readln(name);
writeln(f2,name);
while not eof(f1) do begin
readln(f1,name);
writeln(name);
write('Ваша відповідь :');
readln(name);
writeln(f2,name);
readln(f1,ansv);
if ansv=name then k:=k+1;
i:=i+1;
end;
writeln(f2,'Всього питань :');
writeln(f2,i);
writeln(f2,'Правильних питань :');
writeln(f2,k);
close(f1);
close(f2);
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И :
Вміст файлу протоколу:
Бригіда e02
толстой
поет
да
Всього питань :
3
Правильних питань :
2
Задача 2:
program typefiles;
uses
crt;
const
kolocenok=2;
type
abiturient=record
fio:string;
marks:array [1..kolocenok] of integer;
end;
var
ser,i,j,k:integer;
abit: array [1..40] of abiturient;
temp: abiturient;
begin
clrscr;
write('Введiть кiлькiсть абiтурiентiв: ');
readln(k);
for i:=1 to k do begin
writeln('абiтурiент ',i,':');
write('im`я: ');
readln(temp.fio);
writeln('Введiть оцiнки: ');
for j:=1 to kolocenok do readln(temp.marks[j]);
abit[i]:=temp;
end;
clrscr;
for i:=1 to k do begin
writeln('абiтурiент ',i,':');
write('im`я: ',abit[i].fio);
write(' мае оцiнки: ');
ser:=0;
for j:=1 to kolocenok do begin
write(abit[i].marks[j],', ');
ser:=ser+abit[i].marks[j];
end;
writeln;
if ser>8 then writeln(' З А Ч И С Л Е Н И Й ! ');
writeln;
end;
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И :
абiтурiент 1:
im`я: Саша мае оцiнки: 4, 5,
З А Ч И С Л Е Н И Й !
абiтурiент 2:
im`я: Петро мае оцiнки: 3, 4,
абiтурiент 3:
im`я: Олег мае оцiнки: 4, 2,
абiтурiент 4:
im`я: Микола мае оцiнки: 2, 2,
Висновок:поглибив знання, вміння та навички розробки з використанням
текстових та типизованих файлів, закріпив свої знання в області записів та
типизованих файлів.