Робота з файлами.
Теоретичні відомості
Файл – це сукупність даних однакового типу. Таке визначення
збігається з визначенням масиву, але, на відміну від останнього, файл
зберігають на диску, кількість даних у файлі при його описуванні не
вказується, елементи файла не мають індексів, що ускоаднює роботу з ними.
Опис файлового типу має вигляд:
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,
Висновок:поглибив знання, вміння та навички розробки з використанням
текстових та типизованих файлів, закріпив свої знання в області записів та
типизованих файлів.