Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП Теория.docx
Скачиваний:
2
Добавлен:
26.09.2019
Размер:
42.25 Кб
Скачать
  1. Запись – это структурированный комбинированный тип данных,

состоящий из фиксированного числа компонент (полей)

разного типа.

Синтаксис объявления записи:

type <имя типа> = record

имя поля 1: тип;

имя поля N: тип;

end;

var <имя записи>: <имя типа>

Операция присвоения:

type adres = record

gorod: string [ 20 ];

ylica: string [ 20 ];

dom: integer;

end;

var sotr1, sotr2: adres;

begin

sotr1. gorod := ‘Москва’;

sotr1. ylica := ‘Планетная’;

sotr1. dom := 3;

sotr2:=sotr1; - присвоение

Использование в записях оператора присоединения

with <имя записи> do <оператор>

Пример: type adres = record

gorod: string [ 20 ];

ylica: string [ 20 ];

dom: integer;

end;

var sotr: array [1 .. 2 ] of adres; i: integer;

begin

for i:=1 to 2 do

with sotr [ i ] do

begin

write (‘Город: ’); readln (gorod);

write (‘Улица: ’); readln (ylica);

write (‘№ дома: ’); readln (dom);

end;

end.

15. Организация ввода и вывода записей.

Read(F, <список ввода>);

ReadLn(F, <список ввода>);

В этих операторах F - файловая переменная, связанная с файлом, из которого вводится

информация. Как указывалось выше, если эта файловая переменная отсутствует, считается, что

используется стандартная файловая переменная Input, a ввод стандартно осуществляется с

клавиатуры. Список ввода представляет собой перечисленные через запятую имена переменных,

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

символьного типа, типа string или типа PChar. Их количество может быть любым (в том числе

и пустым). Так как в текстовом файле информация хранится в виде символов, то при вводе

значений целого и вещественного типа автоматически происходит перекодирование информации в

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

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

числе и символ возврата каретки (код 13), если функция Eoln(F) дает значение True, или символ

конца файла (код 26), если функция Eof(F) дает значение True. При вводе величины типа string

или PChar из файла читается необходимое число символов, но в пределах одной строки (до

символа конца строки - код 13). При этом, если чтение осуществляется процедурой Read, признак

конца строки не читается и при последующем чтении строковой информации в соответствующие

переменные ничего заноситься не будет до тех пор, пока не будет прочитан признак конца строки

(например, процедурой Readln).

Пример.

var А, В: Integer; С: Real; D, E: Char;

ReadLn(A, В, С, D, E);

В этом примере с клавиатуры вводятся два целых числа, одно вещественное число и два символа.

Вывод информации в текстовый файл (в том числе и на экран дисплея) осуществляется с помощью

процедур Write и WriteLn.

Write(F, <список вывода>);

WriteLn(F, <список вывода>);

В этих операторах, как и в операторах ввода, F - файловая переменная. Список же вывода - это

перечисленные через запятую выражения, значения которых выводятся в текстовый файл. Выражения

могут быть целого, вещественного, логического и символьного типа, а также типа string или

PChar. Число элементов списка вывода может быть любым (в том числе и нулевым; при этом

процедура Write не выполняет никаких действий, а процедура WriteLn осуществляет переход на

новую строку). При выводе чисел происходит их автоматическая перекодировка в символьную форму.

В случае логической величины выводится ее зна¬чение словом TRUE или FALSE.

Так как элементы списка вывода в общем случае являются выражениями, то они, в частности,

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

информации, например:

WriteLn('Площадь фигуры равна: ', SFig);

WriteLn('Строка ', Name, ' содержит ', Len, ' символов');

16. Понятие файла. Структура, виды файлов и их краткая характеристика. Прямой и последовательный доступ в файлах

Файл – это область памяти на диске, которая имеет свое имя

Виды файлов в Паскале:

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

- типизированные файлы;

- нетипизированные файлы.

Текстовый файл – это символьная последовательность, разделенная на строки

Типизированные файлы – это файлы, в которых содержатся однотипные данные.

Нетипизированные файлы - это последовательность компонент произвольного типа.

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

Прямой доступ предполагает, что файл представляет собой линейную последовательность блоков. Если файл содержит n блоков, то они нумеруются от 1 через 1 до n. Кроме того, вводится понятие условной границы между блоками, при этом условная граница с номером 0 расположена перед блоком с номером 1, граница с номером 1 расположена перед блоком с номером 2 и, наконец, условная граница с номером n находится после блока с номером n.

Смысл последовательного доступа заключается в том, что в каждый момент времени доступна лишь одна компонента из всей последовательности. Для того, чтобы обратиться (получить доступ) к компоненте с номером К, необходимо просмотреть от начала файла К-1 предшествующую компоненту. После обращения к компоненте с номером К можно обращаться к компоненте с номером К+1. Отсюда следует, что процессы формирования (записи) компонент файла и просмотра (чтения) не могут произвольно чередоваться. Таким образом, файл вначале строится при помощи последовательного добавления компонент в конец, а затем может последовательно просматриваться от начала до конца.

17.Понятие текстового файла. Процедуры и функции для работы с текстовыми файлами.

Текстовый файл – это символьная последовательность, разделенная на строки

Создание файла и запись в него текста

program z1;

var f1: text; // объявление файловой переменной f1 текстового типа

begin

assign ( f1,’файл 1.txt’ ); // связывание f1 с файлом «файл 1.txt»

rewrite( f1 ); // создание и открытие файла f1

write( f1, ‘Тихая долина отгоняет сон’); // запись в файл f1 текста

close( f1 ); // закрытие файла f1

end.

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

П/Ф

Запись

Назначение

Пример

П

READ(FP,S); S- список пер.

Считывает список значений из текстового файла.

 

П

READLN(FP,S);

Считывает список значений из текстового файла с переводом строки.

 

П

WRITE(FP,S);

Выводит список значений в текстовый файл.

 

П

WRITELN(FP,S);

Выводит список значений в текстовый файл с переводом строки..

 

П

APPEND(FP);

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

 

Ф

EOFLN(FP);

Определяет конец строки (true-если достигнут конец строки)

 

Ф

SEEKEOLN(FP);

Устанавливает указатель на конец строки

 

Ф

SEEKEOF(FP);

Устанавливает указатель на конец файла

18.Организация ввода – вывода символьной информации в текстовых файлах

Установка связи между файловой переменной и файлом

assign (<имя файловой переменной>, ‘путь к файлу + имя файла’);

Пример:

var f1: text; // объявление файловой переменной f1 текстового типа

begin

assign ( f1,’файл 1.txt’ ); // связывание f1 с файлом «файл 1.txt»

rewrite( f1 ); // создание и открытие файла f1

write( f1, ‘Тихая долина отгоняет сон’); // запись в файл f1 текста

close( f1 ); // закрытие файла f1

Assign (F, Name) - связь файловой переменной с внешним файлом. Связывает файловую переменную

F с внешним файлом, имеющим имя Name. Name - переменная или константа типа string (или

совместимого для присваивания с ним типа) или типа PChar. Имя типа должно быть написано в

соответствии с правилами MS DOS, может включать путь и не должно превышать 79 символов. Если

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

правило, консолью).

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

Типизированные файлы – это файлы, в которых содержатся однотипные данные.

п/ф

Запись

Назначение

Пример

П

READ(FP,S);

Считывает список значений из типизированного файла.

 

П

WRITE(FP,S);

Выводит список значений в типизированный файл.

 

П

SEEK(FP,N);

Устанавливает указатель на компоненту N.

 

П

TRUNCATE(FP);

Фай усекается по положению указателя.

 

Ф

FILESIZE(FP);

Возвращает размер файла.

 

Ф

FILEPOS(FP);

Возвращает положение указателя

 

Пример:

program z1;

var f: file of real; // объявление файловой переменной f типа real

x: real; i: byte;

begin

assign ( f,’файл.dat’ ); // связывание f с файлом «файл.dat»

rewrite( f ); // создание и открытие для записи файла f

for i:=1 to 5 do

begin // начало цикла ввода 5-ти чисел х

write( ‘Введите число ’); readln( x ) // ввод числа х

write( f, x); // запись числа х в файл f

end; // конец цикла ввода 5-ти чисел х

close( f ); // закрытие файла f

end.