Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Понятие записи



Во многих экономических и информационных задачах обрабатыва­ются ведомости, документы, каталоги, списки. При этом появляется необходимость объединять данные различного типа в одну группу. Для работы с группой данных в языке ПАСКАЛЬ введено понятие записи. Запись представляет собой совокупность ограниченного числа данных различного типа. Понятие записи рассмотрим на примере ведомости списка учащихся с их оценками (табл. 11.1).

Таблица 11.1

№ п/п Фамилия И. О. Оценки
    Андреев С. Н.     5 3 4    
  Павликова Л. П. 5 5 5
  Ростоцкий Ю. Т. 4 4 5

Каждая строка в этой ведомости состоит из отдельных элемен­тов — данных различного типа:

а) порядковый номер — целое десятичное число;

б) Фамилия И.О. — массив символов;

в) оценки — массив целых чисел.

Эти данные можно объединить в одну группу и считать записью.

Запись в целом и отдельные ее элементы обозначаются именами. Введем, например, следующие обозначения: В - имя всей записи: N - порядковый номер; ФИО - фамилия, имя, отчество; ОЦЕНКА - оценки.

Обращение к элементу записи в программе выполняется с помощью уточненного (составного) имени. Уточненное имя содержит имя записи и имя элемента и записывается в следующем виде:

(*ИМЯ ЗАПИСИ. ИМЯ ЭЛЕМЕНТА*)

Например,

B.N

В.ФИО

В.Oценка

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

Объявленные записи можно делать в разделе переменных VAR или с использованием раздела типов TYPE.

Объявление записи в разделе переменных VAR имеет следующий вид:

VAR _ имя записи: RECORD

имя элемента 1: тип;

имя элемента 2: тип;

...

имя элемента n: тип;

END;

Здесь служебное слово RECORD (запись) выполняет роль открываю­щей операторной скобки, END — закрывающей операторной скобки. Внутри операторных скобок описываются элементы записи. Допуска­ется вместо имени записи указывать список имен, т. е. имена записей, разделенные запятыми. Элементы записи вместе с их описанием называ­ются полями записи.

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

VAR B:RECORD

N: INTEGER

ФИО: PACKED ARRAY [1..20] OF CHAR;

ОЦЕНКА: ARRAY [1..3] OF INTEGER

END;

Здесь на фамилию выделен упакованный массив из 20 элементов (лиш­ние позиции в фамилии можно заполнять пробелами), на оценки - массив из 3 элементов.

Рассмотрим более универсальную форму объявления записи — с использованием раздела типов TYPE. Объявление имеет вид:

TYPE_ имя типа: RECORD

имя элемента 1: тип;

имя элемента 2: тип;

...

имя элемента n: тип;

END;

VAR имя записи: имя типа;

Объявление ведомости можно сделать следующим образом:

TYPE ВЕДОМОСТЬ=RECORD;

N: ITNEGER;

ФИО: PACKED ARRAY [1..20] OF CHAR

ОЦЕНКА: ARRAY [1..3] OF INTEGER

END;

VAR В:ВЕДОМОСТЬ;

Здесь сначала введен тип записи с именем ВЕДОМОСТЬ, а затем указана переменная В, имеющая тип записи.

Элемент записи используется в программе в том же самом смысле, как и обычная переменная. Таким образом, элемент записи можно указывать как в левой части оператора присваивания, так и в выра­жениях. Над элементом записи можно выполнять действия, допустимые для данных его типа. Если тип элемента записи — целый, то выпол­няются все операции, допустимые для целых данных. Так, для рас­смотренной ведомости над элементами записи можно произвести, например, следующие операции: порядковому номеру N записи В присвоить значение 2:

B.N: = 2

найти сумму трех оценок:

S: = В.ОЦЕНКА [1] + В. ОЦЕНКА [2] + В. ОЦЕНКА [3]

ввести значения порядкового номера:

READ(B,N)

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





Дата публикования: 2014-11-02; Прочитано: 538 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...