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

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

Записи.






 

Запись - это структура данных, состоящих из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Описание записи имеет вид:

<;имя типа >= Record <;список полей > End

Список полей содержит описания полей с указанием их имен и типов. Тип определяется от имени двоеточием, описания полей определяются друг от друга точкой с запятой. Описания нескольких полей одного типа можно объединить, перечислив через запятую их имена и затем указав их общий тип.
Пример:
Type
birthday = Record
day: 1..31;
month: 1..12;
year: Integer;
end;
Var a,b: birthday;
.......
В этом примере тип birthday (день рождения) содержит три поля с именами day, month, year ( день месяц и год), переменные a и b содержат записи типа birthday.
К каждому из компонентов записи можно получить доступ, если использовать составное имя, т.е. указать имя переменной, затем точку и имя поля:
a.day:= 27; b.year:= 1984;

Поля могут быть любого типа (кроме файла), в том числе и типа запись
Var c: Record
name: String;
bd: birthday;
End;
.........
If c.bd.year=1984 Then...

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

 

C.11.9. Лекция 9 Понятие указателей, динамических и статических переменных. Операции над указателями и динамическими переменными. Создание и уничтожение динамических переменных (NEW() и DISPOSE()).Понятие динамических структур данных (списков, деревьев, графов) в программировании. Разновидности списков, деревьев, графов. Построение динамических структур данных и типовые задачи и алгоритмы их обработки.

 

C.11.10. Лекция 10 (4 часа) Понятие файлов в программировании. Процедуры для работы с файлами. Двоичные файлы. Их создание и обработка. Текстовые файлы. Их создание и обработка. Типизированные и нетипизированные файлы. Работа с нетипизированными файлами.

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

< имя > = File Of < тип >;
< имя > = Text;
Первые называются типизированными файлами, а вторые -текстовыми.

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

Assign (< ф.п. >, < имя файла >);
< ф.п. > - файловая переменная (переменная файлового типа), описанная в программе (имя логического файла).
< имя файла > - текстовое выражение, значением которого является записанное по правилам операционной системы MS DOS имя файла (имя физического файла). Типы компонент логического и физического файла должны совпадать. Затем необходимо инициализировать файл, указав для него направление передачи данных, т.е. открыть файл для записи или чтения.
Для чтения файл открывается стандартной процедурой Reset (< ф.п. >); при этом специальная переменная-указатель устанавливается на начало файла.
Стандартная процедура Rewrite (< ф.п. >) открывает файл для записи, при этом файл всегда создается заново, с потерей информации в данном физическом файле, если она была туда ранее записана.
Стандартная процедура Append(< ф.п. >) открывает для записи существующий текстовой файл с целью его расширения, при этом переменная-указатель ставится в конец файла.
Чтение и запись происходят при помощи уже знакомых нам процедур ввода-вывода Read и Write, с тем лишь отличием, что в них необходимо указать в качестве первого параметра файловую переменную. После каждой операции переменная-указатель перемещается на одну компоненту.
После завершения в программе операций по обмену данными с файлом его необходимо закрыть стандартной процедурой. Close(< ф.п. >).
При работе с файлами используется функция Eof(< ф.п. >), которая возвращает значение True, если переменная-указатель стоит в конце файла, и False - в противном случае.

Пример 13.
Дан файл f компоненты которого являются целыми числами. Получить в файле g все четные компоненты файла f, а в файле h все нечетные.

Program Dfile;
Var f,h,g: File Of Integer;
i: Integer;
Begin {Установка связи между файловыми переменными и соответствующими именами файлов}
Assign(f,’Data.dat’);
Assign(g, ‘Chet.dat’);
Assign(h, ‘Nechet.dat’);
{Открытие файлов для чтения и записи}
Reset(f); Rewrite(h); Rewrite(g);
While Not(Eof(f)) Do
Begin
Read(f, i); {чтение из файла f}
If Odd(i)
Then Write(h,i) {запись в файл h}
Else Write(g, i) {запись в файл g}
End; {Закрытие файлов}
Close(f); Close(g); Close(h);
End.

Пример 14.
Дан текстовой файл. Получить копию файла.

Program CopyFile;
Var f,g: Text;
s: String;
Begin
{установка связи файловых переменных с именами файлов}
Assign(f, ‘data1.txt’);
Assign(g, ‘data2.txt’);
{открытие файлов для чтения и записи}
Reset(f); Rewrite(g);
While Not(Eof(f)) Do
Begin
Readln(f,s); {чтение из файла в строку}
Writeln(g,s) {запись в файл из строки}
End;
{закрытие файлов}
Close(f); Close(g)
End.

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

Обращение Действие
Append(f) Открывает файл для добавления в конец файла
Read(f, СписокВвода) Считывает из файла одно или более значений в одну или более переменных
ReadLn(f, СписокВвода) То же с переходом к следующей строке файла
Write(f, СписокВывода) Записывает одно или несколько значений в файл, заранее открытый для вывода
WriteLn(f, СписокВывода) То же с выводом маркера – признака конца строки
SetTextBuf(f, Буфер [, Размер]) Назначает буфер ввода/вывода для файла (по умолчанию размер буфера – 128 байт)
Flash(f) Выталкивает буфер файла вывода
Eoln(f) Возвращает признак конца строки
SeekEoln(f) Возвращает признак конца строки, предварительно пропустив все пробелы и символы табуляции
SeekEof(f) Возвращает признак конца файла, предварительно пропустив все пробелы, символы табуляции и признаки конца строки







Дата добавления: 2015-09-04; просмотров: 392. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

Гидравлический расчёт трубопроводов Пример 3.4. Вентиляционная труба d=0,1м (100 мм) имеет длину l=100 м. Определить давление, которое должен развивать вентилятор, если расход воздуха, подаваемый по трубе, . Давление на выходе . Местных сопротивлений по пути не имеется. Температура...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия