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

Методические указания к лабораторной работе № 2



Компьютеры широко используются в различных информационно-поисковых системах (адресное бюро, телефонная справочная служба и т. д.). В реальных информационных системах приходится обрабатывать и хранить большие объемы данных.

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

В работе «Поиск в массиве по критерию» использовали процедуру Val. Все элементы массива объявляли типа String (строка), а затем, с помощь процедуры Val, значение возраста учащихся из типа String преобразовывали в величину целочисленного типа (Integer).

Решение задачи получилось громоздким, затрачивалось время на преобразование типа.

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

Итак, реальные данные об объектах часто описываются величинами разных типов. Например, товар на складе описывается следующими величинами: наименование, количество, цена, наличие сертификата качества и т. д. В этом примере наименование – величина типа String, количество – Integer цена – Real, наличие сертификата качества можно описать величиной типа Boolean.

Для записи комбинации объектов разных типов в Паскале применяется комбинированный тип данных запись.

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

То есть в отличие от массива, запись может содержать элементы, принадлежащие разным типам.

Определение типа записи начинается зарезервированным словом Record (запись) и заканчивается зарезервированным словом end (конец). Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.

Элементы, образующие запись, называются полями.

Формат записи: Type <имя типа> = Record

<идентификатор поля>: <тип компонента>;

<идентификатор поля>: <тип компонента>;

End;

var <идентификатор, …>: <имя типа>;

Пример: Type

Car = record тип поля

Number: Integer; { номер}

имена Fio: String[40]; { фамилия, инициалы}

полей Adress: String[60]; { адрес}

Salary: Real; { зарплата}

End;

Var M, V: Car; { доступ к полям записи осуществляется через

переменные M и V типа Car }

Замечания:

1. После зарезервированного слова Record точка с запятой не ставится.

2. Описания отдельных полей (или групп полей, принадлежащих одному типу) завершается точкой с запятой.

3. Перед словом End (конец) ‘;’ не ставится.

4. Описания полей записи похожи на описание обычных переменных.

5. Поля могут принадлежать любым типам – как простым, так и структурированным, как стандартным, так и определенным пользователем.

6. Допустимы записи, поля которых представляет собой также записи или массивы.

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

Организация данных о людях – один из наиболее типичных случаев применения записей. Например, если существует информация о какой-то группе людей, объединенных в производственный коллектив, то эту информацию лучше всего организовывать в виде набора записей, где для каждого члена коллектива предусмотрена своя запись. При этом все записи будут принадлежать одному типу, структуру которого определяет характер данных. Вот как может выглядеть объявление подобного типа в разделе описания программы:

Type

Employee = record

ID: Word; {идентификатор (личный номер)}

FirstName, SecondName, SurName: String[20];

{ имя, отчество, фамилия }

Standing: Word; { стаж }

Salary: Real { зарплата }

End;

Var Assistant: Employee;

Описанный выше комбинированный тип Employee включает шесть полей, три из них (имя, отчество, фамилия) представляют собой строки по 20 символов каждая. Для остальных полей ID, стаж, зарплата – выбраны типы, подходящие для соответствующей информации.

Содержание одной из записей, принадлежащих типу Employee, выглядит так: ID SurName FirstName SecondName Standing Salary

14285 Петров Иван Кузьмич 15 1000

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

Например: Чтобы получить доступ к полям записи Car, надо записать: M.Number; M.Fio; M.Adress.

Составное имя можно использовать везде.

Пример1: M.Number:= 14285;

M.Fio:=’Петров И. К.’;

M.Adress:= ‘Ул. Советская 35-5’;

M.Salary:= 1000;

Допускается применение оператора присваивания и к записям в целом, если они имеют один и тот же тип: V:=M;

После выполнения этого оператора значения полей записи V станут равны значениям соответствующих полей записи M.

Составные имена можно использовать в операторах ввода-вывода:

Write(Assistant.FirstName[1]); {вывод на экран первой буквы имени}

Read(M.Number, M.Fio, M.Adress, M.Salary);

Writ (M.Number: 4, M.Fio: 7, M.Adress: 12, M.Salary: 25);

Пример 2: Write(‘Петров’);

Write(Assistant.FirstName[1],’.’);

Write(Assistant.SecondName[1],’.’);

Результат Петров И.К.

В ряде задач удобно пользоваться массивами из записей. Их можно описать:

Type Person = record

Fio: String[20];

Age: 1..99; { возраст }

Prof: String[30] { профессия }

end;

Var List: array[1..50] of Person;





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



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