Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika.docx
Скачиваний:
5
Добавлен:
15.08.2019
Размер:
281.69 Кб
Скачать

Практическое задание n914 файлы Файл- это совокупность данных, записанная во внешней памяти под определенным именем.

Файл в Паскале состоит из однотипных данных. С данными файла можно производить две операции: запись и чтение.

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

Средства обработки файлов.

I. Операция записи. Запись в файл означает помещение в него новых данных.

  1. Описание файла может быть в разделе типов или в разделе переменных. Пусть файл f состоит из целых чисел. Его описание имеет вид:

var f: file of integer; a: integer;

где a - компонента файла данного того же типа, что и записи файла. Тип файла указывается после слова of в описании. Сложный тип записи файла необходимо предварительно описать в разделе type.

  1. Установление соответствия между логическим и физическим именами файла. Логическое имя - это имя переменной из раздела var, под которым файл присутсвует в программе. Физическое имя - это имя из каталога оглавления диска. Оператор установления соответствия между именами файлов:

assign (логическое имя файла, физическое имя);

Для приведенного описания этот оператор имеет вид:

assign(f,’F.Dat’);

Физическое имя заключено в апострофы, оно появится в том же оглавлении, где находится файл turbo.exe

  1. Открытие файла для операции запись производится оператором:

rewrite (f);

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

Запись данных в файл производит оператор: write (f, а);

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

  1. Если с файлом совершаются различные операции, то перед выполнением следующей его надо закрыть оператором: close (f);

  2. Открытие файла для чтения производится оператором: reset (f);

  3. Чтение данных из файла осуществляется оператором: read (f, а);

После создания файла и нескольких преобразований может быть неизвестно количество его записей. Поэтому при чтении данных из файла удобно использовать специальную функцию, контролирующую признак конца файла. Эта функция принимает значение истина, если встречен признак конца файла и ложь, если прочитана другая запись. Функция обработки признака конца файла: eof (f);

Поскольку количество записей в файле неизвестно, используется цикл - пока: while not eof (f) do , т.е. цикл выполняется до тех пор, пока не встретит признак конца файла.

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

Program АВС21;

Uses crt; const k = 15;

varf: file of integer; a, i, n, p, z: integer;

begin

ctrscr;

assign (f, ‘ F. Dat‘); rewrite (f);

writeln (‘ введите kцелых чисел, после каждого нажимайте <Enter> ’);

For I: = 1 to k do begin

readln (a); write(f,a) end;

close(f); {закрытие файпадпя операции записи}

{решение задачи - подсчет различных элементов} п : = 0; р: = 0; z: = 0; {п - отрицательные, р - положительные, z - нули} reset(f);

while not eof (f) do begin

read(f,a); lfa = 0thenz:=z + 1; lfa<0thenn: = n + 1; lfa>0thenp: = p + 1;

End;

writeln {‘n = ’,n,’z=’,z,’p = ‘, p);

readln;

end.

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

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