ТЕМА: ОРГАНИЗАЦИЯ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ТЕКСТОВЫХ ФАЙЛОВ

  • docx
  • 26.12.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л3-0025386.docx

ТЕМА: ОРГАНИЗАЦИЯ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ТЕКСТОВЫХ ФАЙЛОВ

 

Цель работы: научиться объявлять текстовые файлы в программе, научиться создавать и обрабатывать текстовые файлы с помощью языка программирования Паскаль.

Оборудование: ПК, ИСР Pascal ABC

 

ТЕОРЕТИЧЕСКИЕ ДАННЫЕ

 

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

1.      как поименованная информация на внешнем носителе (внешний файл);

2.      как переменная файлового типа (внутренний файл)

Файловый    тип    переменной —    это    структурированный   тип,    представляющий    собой совокупность однотипных элементов

Файл можно представить как последовательную цепочку элементов, пронумерованных от 0, заканчивающуюся специальным кодом, который называется маркер конца

 

Эл. 0

Эл. 1

….

Эл. n

Маркер конца

 

Структура описания файловой переменной

 

Var <имя переменной>: File of <тип элемента> Например:

Var

F1: file of Integer; F2: file of Real; F3: file of Char;

 

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:

ASSIGN (<ф.п.>, <имя файла или л.у.>);

Здесь <ф.п.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа);

<имя файла> - текстовое выражение, содержащее имя файла

 

Инициализация файла

Инициировать файл означает указать для этого файла направление передачи данных. В Турбо Паскале можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно.

Процедура APPEND

инициирует запись в ранее существовавший текстовый файл для его расширения,

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

тип TEXT . Процедурой APPEND нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью RESET или


REWRITE, использование процедуры APPEND приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.

 

Процедура CLOSE

Закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется. Формат обращения: CLOSE (<ф.п.>)

При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Функции процедуры CLOSE выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы. Поскольку связь файла с файловой переменной сохраняется, файл можно повторно открыть без дополнительного использования процедуры ASSIGN.

 

Типы файлов

 

В Паскале различают текстовые, типизированные и нетипизированные файлы

 

Текстовые файлы предназначены для хранения текстовой информации. Для доступа к записям применяются процедуры READ, READLN, WRITE, WRITELN.

В этом случае осуществляется обращение к дисковому файлу или логическому устройству, связанному с переменной процедурой ASSIGN.

 

 

Приступая к решению задач этого раздела, следует вспомнить, что:

 

1.    в программе, которая выводит результаты в файл или читает исходные данные из файла, должна быть объявлена файловая переменная типа text;

2.    для доступа к конкретному файлу файловую переменную нужно связать с этим файлом (делается это при помощи инструкции assign);

3.     для того, чтобы файл был доступен, его надо открыть (для ЧТЕНИЯ С ПОМОЩЬЮ ИНСТРУКЦИИ reset, ДЛЯ ЗАПИСИ rewrite, для добавления append);

4.    при работе с файлами возможны ошибки, например, из-за того, что программа пытается открыть файл, которого нет, поэтому после каждой инструкции, которая может привести к возникновению ошибки, желательно, используя функцию iOResuit, проверять код завершения операции с файлом: чтобы программа могла контролировать результат выполнения операции с файлом, в ее текст надо поместить директиву

5.    запись в файл выполняют инструкции write и writein, чтение — read и readin, причем в качестве первого параметра этих инструкций следует указывать файловую переменную;

6.  по завершении работы с файлом его нужно обязательно закрыть инструкцией close;

файл, созданный программой, в которой тип файловой переменной объявлен как text, можно просмотреть при помощи редактора текста.

 

Пример 1.  Написать программу, которая на сменном диске компьютера (А:) создает файл numbers.txt и записывает в него 5 введенных пользователем целых чисел.

 

{ Создает на диске А: файл и записывает в него5 целых чисел, введенных пользователем } var f: text; { текстовый файл }

n: integer; { число }

i: integer; { счетчик чисел } begin

writeln('Создание файла'); writeln('Введите пять целых чисел.1); writeln('После ввода каждого числа нажимайте <Enter>');


Assign(f,'а:\numbers.txt');

Rewrite(f); { открыть в режиме перезаписи } for i:=l to 5 do begin write('->');

readln(n); writeln(f,n); end;

close(f); { закрыть файл }

writeln('Введенные числа записаны в файл ','а:\numbers.txt'); readln;

end.

 

Пример 2. Написать программу, которая выводит на экран содержимое файла a:\numbers.txt.

 

{ Выводит на экран содержимое файла а:\numbers.txt } var f: text; { текстовый файл } n: integer; { число } begin writeln('Содержимое файла a:\nunibers.txt1);

writeln ('                                       ') ;

Assign(f,'a:\numbers.txt'); Reset(f); { открыть файл для чтения } While not EOF(f) do { пока не достигнут конец файла } begin

readln(f,n); { прочитать число из файла } writeln(n); { вывести прочитанное число на экран } end; Close(f); writeln ('-readln;

закрыть файл

end.

 

 

Пример 3. Вычисляет среднее арифметическое чисел, находящихся в файле a:\numbers.txt var

f: text; { текстовый файл } n: integer; { число, прочитанное из файла } kol: integer; { кол-во прочитанных чисел } sum: integer; { сумма прочитанных чисел ) sa: real; { среднее арифметическое }

begin

writeln('Вычисление среднего арифметического чисел, writeln('находящихся в файле a:\numbers.txt'); writeln('Чтение из файла. Подождите.'); sum:=0; kol:-0; Assign(f,'a:\numbers.txt'); Reset (f); { открыть файл для чтения } While not EOF(f) do { пока не достигнут конец begin

readln(f,n); { прочитать число из файла }

sum:=sum+n; kol:=kol+l; end;

Close(f); { закрыть файл } sa:=sum/kol;

writeln('Прочитано чисел: ',kol); writeln('Сумма чисел: ',sum) ; writeln('Среднее арифметическое: ',sa:9:2); readln;

end.

 

 

ЗАДАНИЕ

 

1.                  Создать файл, состоящий из вещественных чисел. Определить количество нулевых значений в этом файле

2.                  Дан текстовый файл, содержащий произвольный текст. Определить чего в нем больше: русских букв или цифр.

3.                  Дан файл, содержащий текст на русском языке. Определить, входит ли заданное слово в указанный текст.


КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1.                  Что такое файловая переменная?

2.                  Какова структура файла?

3.                  Как описывается файловая переменная в программе?

4.                  Что такое типизированный файл?

5.                  Что такое нетипизированный файл?

6.                  Что такое текстовый файл?

7.                  Как объявляется текстовый файл в программе?

8.                  Назовите алгоритм работы с текстовым файлом