- •Лабораторная работа № 5 Цель работы
- •Теоретическая часть
- •Процедура
- •Функция
- •Формальные и фактические параметры
- •Процедура exit
- •Рекурсивные процедуры и функции
- •Директивы подпрограмм
- •Варианты заданий
- •Лабораторная работа № 6 Цель работы
- •Теоретическая часть
- •Стандартные подпрограммы для всех файлов
- •Стандартные подпрограммы для текстовых файлов
- •Стандартные подпрограммы для типизированных файлов
- •Варианты заданий
- •Содержание и оформление отчета
- •Литература
- •Паскаль: процедуры и функции, работа с файлами
Стандартные подпрограммы для типизированных файлов
Процедуры:
Read(F, <список ввода>) – чтение информации из файла, причем переменные , в которые читается информация должны быть того же типа, что и компоненты файла
Seek(F, Num) – переход на Num-ю компоненту файла. Нумерация начинается с 0
Truncate(F) – удаление части файла, начиная с текущей позиции
Write(F, <список вывода>) – запись информации в файл
Функции:
FilePos(F) – номер текущей компоненты файла
FileSize(F) – текущий размер файла в компонентах
Пример 15:
type Complex=record Re, Im : Real; end; var F : file of Complex; X : Complex; begin Assign(F,'dest.txt'); Rewrite(F); X.Re := 5.2; X.Im := 1.3; write(F, X); X.Re := 0.2; X.Im := -9.3; write(F, X); X.Re := 1; X.Im := 3; write(F, X); Close(F); {считываем из файла только 2-е число} {$I-} Assign(F,'dest.txt'); Reset(F); {SI+} if IOResult <> 0 then writeln('Ошибка чтения файла') else begin writeln('Все числа:'); while not EOF(F) do begin read(F, X); writeln('Re=',X.Re:10:3,' Im=',X.Im : 10:3); end; writeln(Только 2-е число:'); Seek(F, 1); read(F, X); writeln('Re=',X.Re:10:3,' Im=',X.Im : 10:3); Close(F); end; end. |
В примере 15 программа записывает 3 действительных числа в типизированный файл, а затем считывает из него 2-е число и выводит на консоль. Данные сохраняются в файл записей типа Complex. Для вывода всех чисел, сохраненных в файле используется цикл с проверкой условия на окончания файла (функция EOF). Для вывода только 2-го числа используется позиционирование с помощью функции Seek на 2-й элемент в файле (нумерация с 0). Результат работы программы:
Все числа: Re= 5.200 Im= 1.300 Re= 0.200 Im= -9.300 Re= 1.000 Im= 3.000 Только 2-е число: Re= 0.200 Im= -9.300 |
Пример 16:
var a, b, h, X : Real; F : Text; begin Assign(F, 'dest.txt'); Rewrite(F); write('Введите a:');Readln(a); write('Введите b:');Readln(b); write('Введите h:');Readln(h); x :=a; writeln(F, 'Значения функции sin(X)'); while x <= b do begin writeln(F, x : 6:3,' ', sin(X): 6:3); x := x + h; end; Close(F); end. |
Программа, приведенная в примере 16, осуществляет запись таблицы значений функции sin(X) в текстовый файл.
Варианты заданий
|
Считать текстовый файл, удвоив все буквы 'а'. Результат записать в другой текстовый файл. |
|
Считать текстовый файл, переведя все буквы русского алфавита в верхний регистр. Результат записать в другой текстовый файл. |
|
Прочитать текстовый файл и вывести его в другой задом наперед (использовать доступ как к типизированному файлу). |
|
Сохранить в типизированный файл информацию о нескольких сотрудниках (ФИО, год рождения, пол) и по запросу выдать список людей не моложе 20 лет. |
|
Составить программу для конкатенации файла с самим собой, записанным задом наперед. |
|
Вывести значения функции на заданном отрезке [a,b] с шагом h в виде таблицы в текстовый файл. |
|
Отсортировать по возрастанию набор чисел, находящийся в одном файле, и записать его в другой файл. |
|
Составить программу для построчного вывода на экран содержимого текстового файла. Нажатия клавиш: PgDown – следующая страница, Esc – выход. Имя файла вводится пользователем. |
|
Найти в текстовом файле самую длинную и самую короткую строку и вывести их на экран. |
|
Данные хранятся в текстовом файле в виде строк формата 'Имя_параметра=Значение'. Вывести имена и значения только числовых параметров. |
|
В типизированном файле хранится информация о машинах (марка, год выпуска, стоимость). Вывести информацию о самой дорогой и самой дешевой машине. |
|
Сведения о машинах хранятся в текстовом файле в виде строк формата 'Марка;Год выпуска;Стоимость'. Переписать содержимое в типизированный файл. |
|
В типизированном файле хранятся вещественные числа. Переписать их в текстовый, предварительно отсортировав по убыванию. |
|
В текстовом файле слова разделены пробелом. Переписать содержимое файла в другой файл, заменив первую букву каждого слова на заглавную. |
|
В типизированном файле хранятся сведения об успеваемости: ФИО, оценка. Подсчитать и вывести статистику по количеству отличников, ударников, троечников, двоечников. |
|
Считать из текстового файла двумерный массив целых чисел (в одной строке файла хранится одна строка массива) и вывести на экран сам массив и результат его транспонирования. |
|
В двух файлах хранятся целые числа. Создать третий файл, в котором числа из первого и второго файлов чередуется 2 через 1 (два элемента первого, один элемент второго файла). |
|
Найти в текстовом файле самую длинную и самую короткую строку и поменять их местами (сохранив в новый файл). |
Требования к оформлению отчета приведены в разделе "Содержание и оформление отчета".