Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на ПАСКАЛЕ.doc
Скачиваний:
12
Добавлен:
04.09.2019
Размер:
2.98 Mб
Скачать

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

  1. Чем принципиально отличается файловый тип данных от всех остальных типов языка Паскаль?

  2. Если файл объединяет величины одного типа, то как он называется?

  3. Фиксируется ли число элементов файла при его объявлении?

  4. Какие бывают типы файлов по способам доступа к их элементам?

  5. Каково назначение процедуры ASSIGN?

  6. С помощью каких процедур открывают типизированный файл для записи в него новых элементов?

  7. Что осуществляет процедура CLOSE?

  8. Какие процедуры используют для доступа к элементам файла (чтения из файла)?

  9. Каким образом в текстовом файле образуются строки?

  10. Какие логические функции используются при работе с файлами и какова их роль?

Задания для самостоятельной работы

Пример 1. Пусть имеется готовый файл целых чисел Dan1.dat. Вычислить сумму его элементов и результат вместе с исходными данными записать в файл Dan2.dat.

Решение. При работе с файлами необходимо помнить о том, всякий файл данных на внешнем носителе (имеющий имя) должен в программе быть связан с файловой переменной. Кроме того, при работе с ним нужно следить за открытием файла (причем, указывать конкретно для какой цели: чтение или запись) и закрытием после сеанса работы. В нашем примере, нужно открыть файл Dan1.dat для чтения, а файл Dan2.dat – для записи. При чтении файла Dan1.dat нужно не только суммировать его элементы, но и «перекачивать» их в файл Dan2. По завершению этой работы полученная сумма добавляется в конец второго файла

Var F1, F2: file of integer;

S, N : integer;

Begin

Assign (F1, ‘Dan1.dat’); {Связь первого файла с перменной F1}

Assign (F2, ‘Dan1.dat’); {Связь второго файла с перменной F2}

Reset (F1); Rewrite (F2); {Открытие файлов для чтения и для записи}

S := 0;

While Not EOF (F1) do

{ Прохождение по файлу F1, Подсчет суммы и запись его элементов в файл F2}

Begin

Read ( F1, N);

Write (F2, N);

S := S + N;

End;

{Запись суммы элементов в конец файла F2}

Write (F2, S);

Close (F1); Close (F2);

Readln

End.

Пример 2. Дан текстовый файл, содержащий только целые числа. Все числа в файле разделены пробелами и разбиты на строки. Следует вывести эти числа на экран построчно и подсчитать число элементов в каждой строке.

Решение. Для решения этой задачи нужно предварительно создать текстовый файл из чисел (это можно сделать в среде TurboPascal c помощью New меню File) и сохранить его, например, под именем Int.dat. При работе с текстовым файлом надо помнить о том, что обработка каждой строки файла завершается признаком конца строки Eoln (F). Поэтому в нашей программе нужно использовать два вложенных оператора While, внешний из которых «идет» до конца файла, а внутренний – до конца строки.

Var F : text;

x, k : integer:

Begin

Assign (F, ‘Int.dat’); Reset (F);

{Проход по всемй файлу}

While not Eof (F) do

Begin

k := 0;

{Проход по строке}

While not Eoln (F) do

Begin

{Считывание очередного элемента, вывод его на экран и увеличение счетчика числа элементов в строке}

Read (F, x);

Write (x, ‘ ‘);

k := k + 1;

end;

Writeln ( ‘ В строке’, k, ' элементов’);

Readln (F); {Переход к следующей строке файла}

End;

Close (F);

Reradln;

End.

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