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