Работа с внешними типизированными файлами: Методические указания для выполнения лабораторной работы

Страницы работы

Содержание работы

МИНИСТЕРСТВО ПУТЕЙ СООБЩЕНИЯ РФ

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

КАФЕДРА «ИНФОРМАТИКА»

Ю.И. Петров

Методические указания для выполнения лабораторных работ по дисциплине «Информатика»

Для студентов 1-го курса специальности «ИС»

ИРКУТСК-2004

ЛАБОРАТОРНАЯ РАБОТА № 12

Тема: Работа с внешними типизированными файлами.

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

Задание к лабораторной работе

  1. Объявить  в соответствии с индивидуальным заданием тип RECORD.
  2. Ввести значения полей созданной переменной типа RECORD и записать значения этой переменной как очередную запись типизированного файла.
  3. В соответствии с индивидуальным заданием считывать данные из внешнего типизированного файла и осуществлять их обработку по заданию.

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

  1. В первой программе объявляется тип и файловая переменная, задающая структуру типизированного файла. В разделе операторов программы объявляется имя типизированного файла, и файл с этим именем создается на диске. Затем осуществляется ввод значений полей очередной записи, после чего эта запись записывается как очередная запись типизированного файла. Для контроля значений очередной записи ее необходимо вывести на печать в виде строки таблицы. На этом работа первой программы заканчивается.
  2. Во второй программе вначале осуществляется связь программы с созданным файлом, а затем считываются значения записей этого файла в соответствии с индивидуальным заданием. Для контроля считанных значений записи их необходимо вывести на печать в виде таблицы. Затем осуществляется обработка записи в соответствии с индивидуальным заданием.

Записи

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

Порядок объявления типа записи следующий:

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

где RECORD, END – зарезервированные слова TURBOPASCAL;

-  <имя типа> - идентификатор типа записи;

<список полей> - список полей, представляющий собой последовательность разделов записи, между которыми ставится символ ; (точка с запятой).

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

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

Например, объект «студент» может характеризоваться следующими данными:

1.  Фамилия и имя (переменные FAM и NAME строкового типа)

2.  Пол (переменная POL перечисляемого типа состоящего из двух значений men, women).

3.  Год рождения (переменная BDAY целого типа).

4.  Год поступления в институт (переменная DINP целого типа).

5.  Факультет (переменная FAC строкового типа) и т.д.

Информацию такого типа можно объединить в одном типе – запись. Для данного примера описание типа будет иметь вид:

Type

     Student = Record

      Fam, name: STRING [20];

      Pol: (men, women);

      Bday, dinp: integer;

      Fac: string [15];

    End;

Объявленный в разделе Type тип Record в разделе Var необходимо связать с переменными этого типа, например:

Var

a1, a2, a3: Student.      

Для записей, как и для массивов возможно использование оператора присвоения а:= b, однако его можно использовать только для записей одинаковой структуры. К каждому из компонентов записи можно получить доступ, если использовать составное имя. В составном имени должно быть указано имя переменной типа Record и через точку – имя поля, например

a1.bday: = 1975

a2.dinp: = 1999

Такая конструкция называется селектором записи, и она имеет вид:

R.F,

где     R – имя переменной типа запись

               F– индикатор поля.

Доступ к полям записи можно осуществить, используя оператор присоединения With.

Его формат:

WITH <переменная> DO <оператор>

где        WITH, DO – зарезервированные слова TURBOPASCAL

<переменная> - имя переменной типа запись, за которым может стоять список вложенных полей

<оператор> - любой оператор TURBOPASCAL.

Например,

With a3 do FAC: = ‘ЭМ

With a1 do FAM: = ‘ИВАНОВ

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

Например, для группы студентов можно использовать массив, состоящий из записей STUDENT:

Type

Group = ARRAY [1..25] Of Student;

при этом тип Student должен быть предварительно объявлен.

Поле, связанное с датой рождения можно представить в виде отдельного типа, введя полную дату: год, месяц, число:

Type

     Date = Record

      year: 1975..1985;

      day: 1..31;

      month: (Jan, Feb, Mar, Apr, May, June, July, Aug, Sept, Oct, Nov, Dec);

    End;

Теперь, введенный таким образом тип можно использовать в записи STUDENT:

Type

     Student = Record

           Fam, name: STRING [20];

           Pol: (men, women);

           Bday: date;

           Dinp: integer;

           Fac: (UPP, EM,E,ETF, S, IITM);

    End;

   Var;

Group: ARRAY [1..25] Of Student

Доступ к полям в этом случае осуществляется по общим правилам:

Group[5].Fam: ‘ГРИГОРЬЕВ’;

Group[10].Bday.day: = 1980

или

With Student Group [10] do Bday: = 1980;

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

Если опять рассматривать тип STUDENT, то в поле факультет должна быть дополнительная информация о специальности. При этом на факультете ЭМ специальностей три (ЭПС, В, МР), на УПП две (Д, БП), на факультете Э четыре (Э, Ф, М, Б) и т.д.

При работе с записями TURBOPASCAL разрешает использовать записи с вариантными полями, которые задаются предложением CASEOF.

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

Type

      Fac: (UPP, EM, E, S, IITM);

      Student = Record

               Fam, name: STRING;

               Pol: (men, women);

               Bday: date;

               Dinp: integer;

               CASE Fac of

                           UPP: (SPEC: (D, BP));

                           EM: (SPEC: (ENS, V, MR));

                           E: (SPEC: (E, F, M, B));

                           S: ( )

                           IITM: (SPEC: (IS, PO, ZI));

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Методические указания и пособия
Размер файла:
73 Kb
Скачали:
0