Примеры работы программы
Обработка файлов средствами языка Turbo Pascal
Цель работы: освоение методики проектирования Pascal-программ с использованием операций с файлами.
Порядок выполнения работы
1. Получить вариант задания.
2. Изучить процедуры и функции, используемые для работы с файлами, и необходимые для выполнения данной лабораторной работы.
3. Разработать алгоритм подготовки и обработки данных на основе заданных операций.
4. Подготовить текст программы и отладить программу с использованием среды Turbo Pascal.
5. Устно ответить на контрольные вопросы.
6. Оформить отчет.
Варианты заданий
Таблица 7.1
№ варианта
Тип данных
(табл. 7..2)
Задание имени файла
(табл. 7.3)
Сообщение об ошибках (табл. 7.4)
Последовательность операций над данными (табл. 7.5)
Таблица 7.2
№ варианта
Тип данных в файле
Вещественные числа
Записи со структурой табл. 7.8
Таблица 7.3Таблица 7.4
№ варианта
Вариант задания имени файла
№ варианта
Вариант вывода сообщений об ошибках
Ввод с клавиатуры
Краткий
Строковая константа в программе
Расширенный
Таблица 7.5
№ варианта
Вариант цепочки операций над данными
Ввод с клавиатуры и запись в массив, запись из массива в файл, чтение из файла и вывод на экран
Ввод с клавиатуры и запись в файл, чтение из файла и вывод на экран, дополнение файла
Таблица 7.8
Студент
Фамилия
Экзаменационные оценки
Математика
Информатика
ОПИСАНИЕ ВХОДНЫХ И ВЫХОДНЫХ ДАННЫХ
Название переменной
Идентификатор
Тип
Ограничения
i
i
byte
>0
Массив
a
array[1..30] of real
>0
Имя файла
f_name
string
>0
b
b
real
>0
Файл1
F1
file of real
>0
Оценка
Otsen
record
>0
студент
stud
record
>0
Файл «студенты»
FS
file of stud
>0
Фамилия
fio
string
>0
Количество записей, количество элементов массива
kol
byte
>0
Таблица 1 - Структура входных и выходных данных программы
Схема программы
Текст программы
А) Program laba7;
Var i,kol:byte;
a:array[1..30] of real;
f_name:string;
b:real;
F1:file of real;
Begin
writeln('Vvedite kolichestvo elementov massiva');
readln(kol);
writeln('Vvedite massiv');
for i:=1 to kol do
begin
write('a',i,'=');
readln(a[i]);
end;
writeln('Vvedite imya faila');
readln(f_name);
assign(F1,f_name);
rewrite(F1);
for i:=1 to kol do
write(F1,a[i]);
close(F1);
assign(F1,f_name);
reset(F1);
for i:=1 to kol do
begin
read(F1,b);
writeln('a',i,'=',b:4:3);
end;
close(F1);
readln;
End.
Б) Program laba7_2;
Uses crt;
Const f_name='D:\myfile.txt';
Type otsen = record
mat:0..5;
inf:0..5;
end;
stud = record
fio:string[30];
ot:otsen;
end;
FS = file of stud;
Var kol:byte;
F1:FS;
Procedure vvod;
Var s:stud;
code,i:byte;
Begin
clrscr;
assign(F1,f_name);
{$I-}
rewrite(F1);
code:=ioresult;
if code <> 0 then
begin
write('Oshibka pri otkrytii faila: ');
case code of
1: writeln('Fail ne naiden');
3: writeln('Marshrut ne naiden');
4: writeln('Slishkom mnogo otkrytyh failov');
5: writeln('Dostup k failu zapreshen');
12: writeln('Nekorektniy kod dostupa k failam');
else
writeln('Neizvestniy kod oshibki');
end;
end;
{$I+}
write(' Vvedite kolichestvo zapisey');
readln(kol);
for i:=1 to kol do
begin
write(' Vvedite fio studenta: ');
readln(s.fio);
write(' Vvedite otsenku po matematike: ');
readln(s.ot.mat);
write(' Vvedite otsenku po informatike: ');
readln(s.ot.inf);
write(F1,s);
end;
close(F1);
End;
Procedure vivod;
Var s:stud;
i:byte;
Begin
clrscr;
assign(F1,f_name);
reset(F1);
for i:=1 to kol do
begin
read(F1,s);
write(' FIO studenta: ',s.fio);
write(' Otsenka po matematike: ',s.ot.mat);
write(' Otsenka po informatike: ',s.ot.inf);
writeln;
end;
close(F1);
End;
Procedure dobav;
Var kold,i:byte;
s:stud;
Begin
clrscr;
assign(F1,f_name);
reset(F1);
seek(F1,filesize(F1));
write(' Vvedite kolichestvo dobavlyaemih zapisey');
readln(kold);
for i:=1 to kold do
begin
write(' Vvedite fio studenta: ');
readln(s.fio);
write(' Vvedite otsenku po matematike: ');
readln(s.ot.mat);
write(' Vvedite otsenku po informatike: ');
readln(s.ot.inf);
write(F1,s);
end;
close(F1);
kol:=kol+kold;
End;
Begin
clrscr;
vvod;
vivod;
dobav;
vivod;
readln;
End.
Примеры работы программы
Рисунок 1 – Пример работы программы LAB7 (А)
Рисунок 2 – Пример работы программы LAB7 (Б)
Рисунок 3 – Пример работы программы LAB7 (А)
Рисунок 4 – Пример работы программы LAB7 (А)
Рисунок 5 – Пример работы программы LAB7 (А)
Контрольные вопросы
1. Что такое «файл»?
Файл – поименованная область памяти на внешнем запоминающем устройстве, предназначенная для хранения данных.
2. Что такое «указатель текущей записи»? Это скрытая переменная (то есть неявно описанная вместе с файловой переменной), которая обозначает («указывает») на некоторый конкретный элемент файла.
Поиск по сайту: