Сделай Сам Свою Работу на 5

РАБОТА С ФАЙЛАМИ В TURBO PASCAL

 

Цель работы Овладеть техникой составления программы с использованием файлов, её компиляции и записи на диск под заданным именем.

 

Задачи работыНаучиться применять основные принципы алгоритмизации и программирования в решении задач, использующих в качестве исходных данных файлы.

Обеспечивающие средства Сборник описаний практических работ, персональный компьютер, конспект лекций.

 

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

 

Требования к отчету Итоги практической работы представить в виде блок-схемы алгоритма и текста программы, привести значения исходных данных и значения полученных результатов (при необходимости вывести на печать).

 

Технология работы

1. Ознакомьтесь с теоретическим материалом, необходимым для выполнения работы:

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

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

· как переменная файлового типа в Паскаль-программе (внутренний файл).

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

Файловый тип переменной – это структурированный тип, представляющий собой совокупность однотипных элементов, количество которых заранее (до исполнения программы) не определено.

Для работы с файлом при описании переменных необходимо определить переменную файлового типа, которая будет считаться «представителем» этого файла в данной программе. Такая переменная называется также указателем. Структура описания файловой переменной:

Var

<имя файла>: File Of <базовый тип>

В качестве базового типа можно использовать любой тип, за исключением типа File.

Основные операции с файлами

ØУстановочные и завершающие операции

1. assign (f, FileName) – связывает файловую переменную f с конкретным файлом с именем FileName. Данную процедуру необходимо использовать до начала работы с файлом. FileName – выражение строкового типа вида:



Диск: \ имя каталога \ имя подкаталога \ … \ имя файла

Если имя диска и имя каталога не указывать, то берутся текущий диск и текущий каталог.

2. reset (f)– открывает файл f для чтения, т.е. указатель устанавливается на первый элемент файла. Предполагается, что открываемый файл уже существует, в противном случае возникает ошибка.

3. rewrite (f)– открывает файл f для записи (указатель так же, как и в предыдущем случае, устанавливается на первый элемент файла). Допускается, что файл не существует, тогда процедура создает файл с заданным именем. Если же такой файл существует, процедура удаляет из него всю информацию. В обоих случаях в результате вызова данной процедуры файловая переменная указывает на нулевой элемент файла (т.е. файл пуст).

4. close (f)– закрывает файл f для, очищает внутренний буфер, образованный при открытии файла. Теперь указатель f можно связать с другим файлом.

ØОперации ввода-вывода

1. read (f, x1, x2, …)– считывает в переменные x1, x2, … по одному элементу из файла f, начиная с той позиции, на которую установлен указатель. Операция чтения осуществляется следующим образом: значение на которое указывает текущий указатель файла, присваивается переменной x1, указатель перемещается на следующую позицию, то же самое выполняется для переменной x2, и т.д. Данная процедура выполнима только в том случае, если не достигнут конец файла (eof(f)=false).

2. write (f, x1, x2, …)– записывает в файл f значения переменных , начиная с той позиции, на которую указывает файловая переменная. После записи в файл нового элемента, указатель перемещается на следующую позицию. Данная функция выполнима только в том случае, когда достигнут конец файла (eof(f) = true).

ØОперации перемещения по файлу

1. seek (f, N) – функция, позволяющая явно изменить значение текущего указателя, установив его на элемент файла с заданным номером N (N- целочисленное выражение). Данная процедура не выполняет чтения или записи элементов файла, оно лишь перемещает указатель к элементу с номером N. (Первый элемент файла имеет номер 0). Вызов процедуры с аргументами seek (f, filesize(f)) установит указатель на конец файла.

2. filepos (f)– функция, позволяющая определить текущее положение указателя (номер элемента).

3. filesize (f)– функция, позволяющая определить размер (кол-во элементов) файла f.

4. eof (f)– функция, возвращающая логическое значение true, если достигнут конец файла.

ØСпециальные операции

1. erase (f)– удаляет файл, связанный с файловой переменной f.

2. rename (f, NewName)– присваивает файлу, связанному с файловой переменной f, новое имя NewName.

Текстовые файлы

Отдельным типом файлов являются текстовые файлы. Особенность этих файлов заключается в том, что их содержимое рассматривается как последовательность строк переменной длины, разделенных специальными символами, которые называются «конец строки». Символ конца строки при просмотре файла не виден, так же как и символ конца файла. В программе файловая переменная текстового типа описывается следующим образом:

Var < имя файловой переменной >: text;

Каждый символ представлен во внутреннем коде (ASCII) и занимает 1 байт.

Главная особенность текстовых файлов в том, что можно считывать из него и записывать в них элементы типа char, integer, real, string, boolean. Если информация несимвольная, то в процессе чтения или записи происходит ее преобразование из символьной формы во внутреннюю и обратно.

Для работы с текстовыми файлами можно использовать все процедуры и функции, используемые при работе с файлами любых типов, за исключением процедуры seek, функций filepos, filesize. Дело в том, что заранее неизвестно, элементы какого типа находятся в файле.

Для работы с текстовыми файлами определены дополнительные операции.

Функция:

eoln (f)– логическая функция, возвращающая логическое значение true, если достигнут конец строки, и false в противном случае.

Процедуры:

1. append (f)– открытие уже существующего текстового файла f для добавления данных в конец файла;

2. writeln (f)– завершение текущей строки текстового файла при его записи (записывает символ конца строки);

3. writeln (f, x1, x2, …, xn)– запись в файл f значений переменных x1, x2, …, xn; после выполнения операции записи осуществляется переход к новой строке файла;

4. readln (f)– переход к началу следующей строки файла f при его чтении;

5. readln(f, x1, x2, …, xn)– чтение значений n элементов из файла f в переменные x1, x2, …, xn; после выполнения операции чтения осуществляется переход к новой строке файла.

2. Выполните следующие упражнения:

Задания уровня 1

Упражнение 1. Программа, в результате выполнения которой выводятся все четные числа из данного файла int с целочисленными компонентами.

1. Наберите текст программы:

Program rem (input, output);

type v=file of integer;

var int: v; i: integer;

begin reset (int);

While not eof (int) do

Begin

read (int, i);

if i mod 2=0 then writeln (i)

End

End.

 

2. Запустите программу на выполнение и проверьте её работу:Ctrl-F9

3. Для просмотра результатов выполненной программы необходимо нажать:Alt-F5

4. Сохраните программу на своем диске:<F2> A:\P10PR1

 

 

Упражнение 2. Программа, которая формирует типизированный файл из целых чисел, вводимый с клавиатуры. Их количество заранее не известно. Признаком конца ввода является 0. Программа находит: сумму и произведение чисел из файла, разность между предпоследним и вторым по счету числами, наибольшее из чисел.

1. Наберите текст программы:

 

Program rabf

type file_type=file of integer;

var f: file_type;

sum, mult, r, k1, k2, max: integer;

Begin

writeln ('Введите элементы файла, окончание - 0');

{Запись элементов в файл}

assign (f, 'data.dat'); rewrite (f);

Repeat

readln (r); if r<>0 then write (f, r);

until r=0;

{Вычисление результатов}

seek (f, 0); sum:=0; mult:=1;

read (f, r); max:=r; seek (f, filepos(f)-1);

While not eof (f) do

Begin

read (f, r); sum:=sum+r; mult:=mult*r;

{Поиск максимального элемента}

if max<r then max:=r;

end;

seek (f, 1); read (f, k1); {Чтение второго компонента}

seek (f, filesize (f)-2); read (f, k2); { Чтение предпоследнего компонента}

close (f);

{Вывод результатов}

writeln ('Сумма = ', sum, #10#13'Произведение =', mult);

writeln ('Разность = ', k2-k1, #10#13'Максимум =', max);

End.

2. Запустите программу на выполнение и проверьте её работу:Ctrl-F9

3. Для просмотра результатов выполненной программы необходимо нажать:Alt-F5

4. Сохраните программу на своем диске:<F2> A:\P10PR2

 

 

3. Выполнить самостоятельно:

Задания уровня 2

1. Создать три программы:

a)Считывает 10 действительных чисел с клавиатуры и записывает их в файл. Сохранить программу под именем P10PR3

b)Добавляет в этот файл еще 5 чисел. Сохранить программу под именем P10PR4

c)Читает этот файл и выводит числа, содержащиеся в нем на экран. Сохранить программу под именем P10PR5

Задания уровня 3

2. Написать программу, в результате выполнения которой выводятся все числа кратные трем из данного файла int с целочисленными компонентами.Сохранить программу под именем P10PR6

3. Дан файл Input.txt, элементы которого являются целыми числами. Получите в файле Output.txt все элементы файла Input.txt, которые делятся на 3 и не делятся на 7. Сохранить программу под именем P10PR7

4. Окончание работы:

1. Сохранить созданные программы.

2. Подготовить ответы на контрольные вопросы.

3. Показать работу преподавателю.

4. Завершить работу TURBO PASCAL.

 

Контрольные вопросы:

1. Понятие файла в Паскале.

2. Что называют файловым типом переменной?

3. Какова организация доступа к файлам?

4. Назовите основные типы операций работы с файлами.

5. Перечислите установочные и завершающие операции работы с файлами.

6. Какие операции ввода-вывода существуют для работы с файлами?

7. Назовите операции перемещения по файлу.

8. Перечислите специальные операции для работы с файлами.

9. Особенности работы с текстовыми файлами.


ПРАКТИЧЕСКАЯ РАБОТА №11



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.