Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмизация павлодар.doc
Скачиваний:
15
Добавлен:
21.02.2016
Размер:
1.01 Mб
Скачать

Лабораторная работа №8

Тема: Разработка программ с использованием множеств и записей.

Цель работы: познакомиться с понятием «запись», научиться применять записи в составлении программ.

  1. Теоретические сведения

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

TYPE

< имя записи >=

RECORD

< имя поля 1 > : < тип >

< имя поля 2 > : < тип >

…………………………

< имя поля N > : < тип >

END;

Например, для решения задачи определения среднего балла, имея данные по пяти дисциплинам для конкретного студента, запись может иметь вид:

TYPE

STR =

RECORD

FAM: STRING[20];

B1, B2, B3, B4, B5 :1..5;

SB : REAL;

END;

Здесь FAM обозначает строку символов для хранения фамилии студента, В1, B2, B3, B4, B5 – баллы по соответствующим дисциплинам, SB – средний балл. Переменная типа STR имеет смысл записи, содержащей информацию об одном студенте.

Если требуется хранить информацию не по одному студенту, а по 25, то можно ввести массив записей TBL:

VAR

TBL: ARRAY [1..25] OF STR;

Обращение к полям записи осуществляется посредством составного имени:

<имя переменной-записи>.<имя поля>

Возможны, например, такие операторы присваивания :

TBL[ 3 ].FAM:= “Иванов”;

TBL[ 20 ].B2:=5;

TBL[ K+1 ].SB:=4.666;

Имена компонент внутри записи не должны повторяться. Значения записи можно пересылать в другие переменные – записи с помощью операторов присваивания. Возвращаясь к рассмотренному примеру, можно записать:

TYPE

STR=

RECORD

FAM : STRING[20];

B1, B2, B3, B4, B5 :2..5;

SB : REAL

END;

VAR Z1, Z2 : STR;

BEGIN

- - - - - - - -

Z1:=Z2;

Указанный в программе оператор присваивания эквивалентен следующим операторам :

Z1.FAM := Z2.FAM;

Z1.B1 := Z2.B2;

Z1.B2 := Z2.B2;

Z1.B3 := Z2.B3;

Z1.B4 := Z2.B4;

Z1.B5 := Z2.B5;

Z1.SB := Z2.SB;

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

Общий вид оператора:

With < имя записи > do

< оператор >;

Внутри оператора к компонентам записи можно обращаться только с помощью имени компоненты.

  1. Задание

Взять задание из таблицы 1 согласно варианту и составить программу.

Контрольные вопросы.

  1. Что такое запись?

  2. Из чего состоит запись?

  3. Как находятся компоненты массива записей?

  4. Общий вид и принцип работы оператора WITH?

  5. Каким образом работает алгоритм упорядочивания списка?