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

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

Записи.





 

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

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




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


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


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


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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Методы прогнозирования национальной экономики, их особенности, классификация В настоящее время по оценке специалистов насчитывается свыше 150 различных методов прогнозирования, но на практике, в качестве основных используется около 20 методов...

Методы анализа финансово-хозяйственной деятельности предприятия   Содержанием анализа финансово-хозяйственной деятельности предприятия является глубокое и всестороннее изучение экономической информации о функционировании анализируемого субъекта хозяйствования с целью принятия оптимальных управленческих...

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