Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pascal.pdf
Скачиваний:
114
Добавлен:
20.04.2015
Размер:
980.04 Кб
Скачать

 

72

Программирование на языке Pascal

Модуль 6. Записи и множества

72

 

73

Программирование на языке Pascal

Пользовательские типы данных и записи До сих пор мы работали с массивами, которые хранили лишь один какой-то срез

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

Массив 1

– средние оценки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение

4.2

3.5

4.5

5

4.3

 

 

Индекс

1

2

3

4

5

Массив 2

 

 

 

 

 

 

 

– фамилии

 

 

 

 

 

Значение Иванов Петров Сидоров Сергеев Васильев

Индекс

1

2

3

4

5

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

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

Запись (record) – это специальный тип данных в Pascal, позволяющий объединять в себе разнотипные поля и оперировать ими как единым целым. Это своеобразный контейнер, хранящий в себе переменные любого типа данных.

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

следующим образом:

Type ИМЯ_ЗАПИСИ=Record

Имя_Поля_1 : Тип_данных; Имя_Поля_2 : Тип_данных;

Имя_Поля_N : Тип_данных;

End;

Тем самым, с точки зрения Pascal, мы создали новый тип данных, который можно использовать при объявлении переменных.

В случае, если мы объявим переменную, которая имеет тип данных запись, то доступ к

полям записи осуществляется через точку следующим образом

Var ПЕРЕМЕННАЯ: ИМЯ_ЗАПИСИ;

ПЕРЕМЕННАЯ.Имя_Поля_1:=Значение;

Например, если мы создадим следующий тип данных

Type TStudentMark=Record

73

 

74

Программирование на языке Pascal

AvgMark : Real; StudentName : String;

End;

и объявим переменную этого типа данных

Var StudentMark : TStudentMark;

то записать значение среднего балла студента и его фамилию можно следующим образом:

StudentMark.AvgMark:=4.5; StudentMark.StudentName:='Иванов';

74

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]