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

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

Записи.





 

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

<;имя типа >= 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; просмотров: 419. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


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


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

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

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

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

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