Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа №9




 

Тема: Программирование задач обработки структур данных, расположенных на внешних носителях.

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

 

1.Теоретические сведения.

Файл представляет собой совокупность данных, в которой все данные должны быть одного типа. Необходимость в файлах возникает тогда, когда память (ОЗУ) мала для данных, и когда данные нужно сохранить. На первый взгляд файл похож на массив. Однако между массивом и файлом существует четкое различие. Одним из таких различий является то, что у массива с помощью индекса можно указать любой элемент. У файла же вызвать желаемые данные таким способом нельзя. Нагляднее всего файл представить в виде бумажного рулона, на котором одно за другим записаны данные. Читать данные, записанные таким образом можно только с начала, и по мере чтения следует перемещаться последовательно с одной записи на другую. Таким образом, после каждого обращения к файлу указатель файла автоматически смещается на следующую позицию (окно). Проиллюстрируем выше сказанное рассуждение рисунком.

 


..…

 

ОКНО

 

Файловый тип определяется в программе с помощью соответствующего описания:

TYPE <имя типа> = FILE OF <тип элемента>

Например, определение типов

CONST

MAX = 80;

TYPE

M=1. . MAX;

F = ARRAY [M] OF CHAR;

FF = FILE OF F;

задает файл FF , элементами которого являются массивы символов длинной M. Файловый тип можно определить и в разделе переменных:

VAR <имя файла>: FILE OF <тип элементов>;

Переменная, имеющая смысл файла, описывается в разделе переменных. Над файлами можно выполнять некоторые действия: запись (создание и пополнение файла) и чтение.

Операция записи добавляет к файлу новую компоненту. Новые элементы могут добавляться только к концу файла.

Рассмотрим некоторые процедуры, которые можно выполнять над файлами:

1) связь программного имени файла с дисковым именем файла

ASSIGN (F, ‘A: FILE. EXE’);

F- программное имя файла;

A- имя диска;

FILE.EXE- дисковое имя и расширение (с этим расширением хранится на диске созданный файл).

2) открытие существующего файла на диске для чтение (файловое окно установится на начало файла)

RESET (F);

3) открытие нового файла на диске для записи (файловое окно устанавливается на начало файла)

REWRITE (F);

4) чтение из файла

READ (F, V);

V -имя переменной.

Через текущее окно считывается компоненты файла в переменную V. V имеет тип компоненты файла.

5) запись в файл

WRITE (F, V);

Записывается значение V в компоненту файла.

6) открытие файла и установка окна для добавления символов

в конец существующего файла

APPEND (F);

7) закрытие файла.

CLOSE (F);

Пример: Создать, а затем прочитать файл, в котором содержатся квадраты чисел от 1 до 100.

PROGRAM KO;

VAR F: FILE OF REAL; {определение файла}

V: REAL; I: INTEGER;

BEGIN

ASSIGN (F,’A: REL.DAT’); {связь программного имени

файла F с дисковым REL.DAT}

REWRITE (F); {открытие файла для записи}

FOR I: =1 TO 100 DO {начало цикла}

BEGIN

V: =SQR (I); {вычисление очередного

значения квадрата числа}

WRITE (F, V); {запись полученного значения

V в файл}

END; {конец файла}

CLOSE (F); {закрытие файла}

RESET (F); {открытие файла для чтения}

FOR I: =1 TO100 DO

BEGIN

READ (F, V); {чтение из файла}

WRITE (V); {вывод прочитанного

значения}

END;

CLOSE (F); {закрытие файла}

END.

 

В приведенном примере было заранее известно, что должно быть прочитано 100 значений. Если это заранее не известно, то непрерывно должна быть проверка на признак конца файла. Для этого используют функцию EOF(F). Эта функция дает значение TRUE, если окно на конце файла и FALSE –в противном случае.

Важное место среди данных файлового типа занимают текстовые файлы, т.е. файлы, компоненты которых относятся к символьному типу CHAR. Для описания текстовых файлов определен стандартный тип TEXT. Например,

VAR F: TEXT;

Отличительной особенностью текстовых файлов является деление их на строки с помощью специального маркера конца строки. С маркером конца строки связана стандартная функция EOLN. Она дает значение TRUE, если прочитаны все литеры в строке и FALSE в противном случае. Есть еще две специальные процедуры для текстового файла:

1) READLN(F)-пропустить все символы текущей строки,

включая маркер конца строки, и установить

указатель на начало следующей строки;

2) WRITELN(F)-поставить маркер конца строки в текущем

окне.

 

2.Задание.

1.Взять задание из таблицы согласно заданному варианту и составить программу.

2.Создать в редакторе Norton Commander текстовый файл, следующего содержания:

Павлодарский университет.

Кафедра (указать кафедру).

Специальность (указать специальность).

Группа (указать номер группы).

(Указать имя, отчество, фамилию студента).

Написать программу для чтения текстового файла в Паскале.

 

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

1.Что такое файл?

2.Отличие файла от массива.

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

4.Процедуры над файлами.

5.Назначение функций EOF и EOLN.

6.Понятие текстового файла и его особенности.

Таблица 1

Номер варианта Задание
1. Создать файл X компонентами которого являются элемента массива M. Переписать из файла X в файл Y все компоненты, которые стоят на четных местах. Прочитать файл Y. M=(0,1; 5,6; 0.8; 2,4; 7,3; 6,8; 0,5; 2,3; ).  
2. Создать файл X, каждая компонента которого вычисляется по формуле: I=1,2,…10. Переписать в файл Y из файла X первые 5 компонент файла X. Прочитать файл X.
3. Создать файл A, компонентами которого являются числа от 1 до 20.Переписать в файл B из файла A те компоненты файла A, которые делятся без остатка на 2.Прочитать файл B.
4. Создать файл C, компонентами которого являются числа от 1 до 1000.Переписать в файл D из файла C те компоненты, которые являются полными квадратами. Прочитать файл D.
5. Создать файл P, компонентами которого являются элементы массива M. Переписать из файла P в файл G все компоненты в обратном порядке. Прочитать файл G. M=(0,4; 6,1; 2,3; 0,7; 6,2; 3,1; 0,9; 10,1).
6. Создать файл F, компонентами которого являются элементы массива M. Переписать в файл G все компоненты, которые меньше 5.Прочитать файл G. M=(2,7; 6,8; 0,4; 3,7; 8,4; 7,2; 0,2; 0,1).  
7. Создать файл A, компоненты которого вычисляются по формуле: I=1,2,…10. Получить файл B, каждая компонента которого равна компоненте файла A в квадрате ( ). Прочитать файл B.
8. Создать файл A, компонентами которого являются элементы массива C в квадрате. Получить файл D, каждая компонента которого равна компоненте файла A, увеличенной в два раза. Прочитать файл D. C=(4; 2; 3; 8; 6; 7;).
9. Создать файл F, компоненты которого вычисляются по формуле: I=1,2,…8. Получить файл R, компоненты которого равны компонентам файла F, стоящим на нечетных местах. Прочитать файл R.
10. Создать файл G, компонентами которого являются элементы массива D.Переписать в файл F все компоненты массива D, которые больше 0,5. Прочитать файл F. D=(0,1; 0,2; 6,7; 0,6; 0,3; 2,8; 0,4;).
11. Создать файл K, компонентами которого являются все четные числа в диапазоне от 2 до20.Переписать в файл E все компоненты файла K, предварительно уменьшив их в десять раз. Прочитать файл E.
12. Создать файл F, каждая компонента которого вычисляется по формуле: I=1,2,…8. Записать в файл L сумму и произведение всех компонент файла F. Прочитать файл L.
13. Создать файл Q, компонентами которого являются все нечетные числа от 1 до 19. Записать в файл P сумму пяти первых и сумму всех остальных компонент файла Q. Прочитать файл P.
14. Создать файл A, компонентами которого являются элементы массива L. Записать в файл B квадраты компонент файла A, стоящие на четных местах. Прочитать файл B. L=(0,6; 1,8; 0,7; 6,7; 5,1; 2,5; 4,7; 2,9;).
15. Создать файл D, компоненты которого вычисляются по формуле: I=1,2,…6. Записать в файл D суммы компонент файла C, стоящих на четных и нечетных местах. Прочитать файл D.
16. Создать файл F, компонентами которого являются элементы массива E. Записать в файл L первые пять компонент файла F, увеличенные в два раза. Прочитать файл L. E=(0,3; 3,1; 5,2; 0,7; 0,1; 6,8; 4,1; 3,7;).
17. Создать файл K, компонентами которого являются элементы массива M, уменьшенные в два раза. Записать в файл F сумму компонент файла K, которые больше 5. Прочитать файл F. M=(10,7; 6,1; 0,6; 1,7; 6,8; 4,9; 1,9; 7,2;).
18. Создать файл Q, компоненты которого вычисляются по формуле: I=1,2,…10 Записать в файл R первые пять компонент файла Q в обратном порядке.
19. Создать файл S, компонентами которого являются элементы массива T. Записать в файл X первые пять компонент файла S и сумму всех остальных. Прочитать файл X. T=(0,2; 0,4; 6,1; 5,8; 4,9; 9,8; 7,1; 2,4;).
20. Создать файл Y, компоненты которого вычисляются по формуле: I=1,2,…10 Записать файл Z все компоненты и сумму последних четырех компонент файла Y. Прочитать файл Z.

 







Дата добавления: 2015-09-15; просмотров: 414. Нарушение авторских прав

codlug.info - Студопедия - 2014-2017 год . (0.007 сек.) русская версия | украинская версия