Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Лабораторная работа 37. Работа с типизированными файлами - 1

1. Теория

Помимо текстовых файлов в языке Pascal используется другой вид файлов, который принято называть типизированным, или компонентным.

  • Типизированный файл - это файл с заранее объявленным типом его компонент, т.е. файл с набором данных одной и той же структуры.

Для работы с нетекстовым файлом необходимо:

1) описать файловую переменную. Она описывается сле­дующим образом:

file of <тип> ;

здесь <тип> - это тип компонент типизированного файла;

2) с помощью процедуры Assign(<имя_переменной>,<имя_файла>)

связываем переменную с реальным файлом на диске;

3) процедура Reset(<файловая_переменная>) открывает существующий файл для чтения и для записи;

4) процедура Rewrite(<файловая_переменная>) создает файл на диске18. При этом файл считается пустым и информация может только записываться, причем с начала файла;

5) чтение данных из файла осуществляется только с помощью процедуры Read, запись - Write.

2. Практика

Задание 1

Скопируйте в свой каталог следующие файлы: f_ntx1.pas, f_ntx2.pas и f_ntx3.pas.

Задание 2

Запустите среду Turbo Pascal. Считайте файл f_ntx2.pas. В файле хранится программа, записывающая в файл натуральные числа от 0 до 65535. Выполните следующие действия:

а) разберитесь внимательно в тексте программы. Запустите программу на выполнение. Проверьте правильность работы программы при любых данных (числовых и нечисловых). В случае обнаружения ошибки исправьте ее;

б) запустите программу на выполнение и введите 10 раз пару чисел: 11 и 13. Это понадобится для выполнения следующего задания.

Задание 3

Считайте файл f_ntx1.pas. В файле хранится программа, читающая информацию, создаваемую программой из задания 2. Выполните следующее:

а) программа испорчена: вместо одной из строк программы поставлен комментарий из звездочек. Восстановите эту строку (ее смысл поясняется комментарием, расположенным правее). Проверьте правильность работы программы (данные, хранящиеся в файле stud.dat, известны);

б) измените программу так, чтобы она после вывода всех чисел вывела среднее арифметическое этих чисел;

в) выполните программу f_ntx2.pas и введите произвольный набор чисел;

г) измените программу f_ntx1.pas так, чтобы на экран выводились числа, значения которых не меньше заданного числа.

Задание 4

Составьте программу, которая создает сразу два файла. Первый файл (назовем его fam.dat) должен содержать название товара, второй (costs.dat) - его стоимость. Ввод данных с экрана должен осуществляться последовательно: называние товара, его стоимость, название товара, его стоимость...

Задание 5

Пусть дан файл fam.dat, содержащий название товара, и costs.dat, содержащий цены этих товаров. Составить программу, которая определяет:

а) название самого дорогого товара;

б) название самого дешевого товара;

в) среднюю стоимость товаров.

Задание 6

Имеются две программы, записывающие одну и ту же числовую информацию в файлы:

а)

program a1;

var x:real;

f:text;

begin

assign(f,'num1.dat');

rewrite(f);

x:=3569.45603;

repeat

writeln(f,x);

x:=x+1

until x>3579.45603;

flush(f);

close(f)

end.

б)

program a2;

var x:real;

f:file of real;

begin

assign(f,'num1.dat');

rewrite(f);

x:=3569.45603;

repeat

writeln(f,x);

x:=x+1

until x>3579.45603;

flush(f)

close(f)

end.

Определите размеры файлов в байтах. Какой из файлов будет занимать больше места на диске?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]