Записи с вариантами - Записи в Турбо Паскале
Записи, представленные выше, имеют строго определенную структуру. В не которых случаях это серьезно ограничивает возможности их применения. Поэтому в Pascal имеется возможность задать тип записи, содержащий произвольное число вариантов структуры. Такие записи называются записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи, но не идентичны по форме. Они состоят из фиксированной и вариантной частей.
Использование фиксированной части аналогично описанному ранее. Вариантная часть формируется с помощью оператора case. Он задает особое поле записи поле признака, которое определяет, какой из вариантов в данный момент будет активизирован. Значением признака в каждый текущий момент выполнения программы должна быть одна из расположенных следом констант. Константа, служащая признаком, задает вариант записи и называется константой выбора. Формат:
Type
Rec = record
Case <поле признака>: <имя типа> of
<константа выбора1> : (поле.... :тип):
...
<константа выбораn > : (поле. . . . :тип)
End;
Компоненты каждого варианта (идентификаторы полей и их типы) заключаются в круглые скобки. У части case нет отдельного end, как этого следовало бы ожидать по аналогии с оператором case. Одно слово end заканчивает всю конструкцию записи с вариантами. Необходимо отметить, что количество полей каждого из вариантов не ограничено.
Объем памяти, необходимый для записи с вариантами, складывается из длин полей фиксированной части и максимального по длине поля переменной части.
Пример:
Type
Rec = record
Number: byte;
Code: integer;
Case Flag: Boolean of
True : (Price1: integer);
False: (Price2: real);
End;
Var PRec: Rec;
Поля Number и Code расположены в фиксированной части записи, они доступны в программе в любой момент независимо от значения поля признака. Поле Price1 может использоваться только в том случае, если значение поля признака Flag равно True. Поле Price2 доступно в противоположном случае, т. е. если значение Flag равно False.
При использовании записей с вариантами необходимо придерживаться следующих правил:
- * все имена полей должны отличаться друг от друга, по крайней мере, одним символом, даже если они встречаются в разных вариантах; * запись может иметь только одну вариантную часть, причем она должна размещаться в конце записи; * если поле, соответствующее какой - либо метке, является пустым, то оно записывается следующим образом: : ().
Пример 2. Напишем программу, позволяющую вычислять площади различных геометрических фигур с применением одной функции.
Программа выглядит следующим образом:
Program SF;
Uses Crt;
Type TF=(rect, circle);
figure=record
case art : TF of
rect :(L1,L2:real);
circle:(R:real);
end;
Var x:figure;
P:string[6];
Pr:char;
Begin
ClrScr;
Repeat
Write('Введите вид фигуры (rect, circle) '); readln(p);
With x do begin
If p='rect' then art:=rect;
If p='circle' then art:=circle;
Case art of
Rect: begin
write('Введите длину прямоугольника= '); readln(L1);
write('Введите ширину прямоугольника= '); readln(L2);
writeln('Площадь равна=', L1*L2:8:3);
end;
Circle: begin
write('Введите радиус окружности= ');readln(R);
writeln('Площадь равна=', Pi*R*R:8:3);
end;
End; {case}
End;
Write('Продолжить расчет? (Y-Да, N - Нет) ');readln(pr);
Until pr='N';
Readln;
End.
Результат работы:
Введите вид фигуры (rect, circle) rect
Введите длину прямоугольника= 4
Введите ширину прямоугольника= 5
Площадь равна= 20.000
Продолжить расчет? (Y-Да, N - Нет) Y
Введите вид фигуры (rect, circle) circle
Введите радиус окружности= 6
Площадь равна= 113.097
Продолжить расчет? (Y-Да, N - Нет) N
Похожие статьи
-
Тип "Запись" (Record) и оператор присоединения With - Записи в Турбо Паскале
Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. Определение типа записи начинается...
-
ЗАПИСИ, МНОЖЕСТВА - Типы данных в программе Турбо Паскаль
Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи...
-
Записи, множества, файлы - Структуры данных
Обобщением массива является комбинированный тип данных - запись, являющаяся неоднородной упорядоченной статической структурой прямого доступа. Запись...
-
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ - Типы данных в программе Турбо Паскаль
В Турбо Паскале допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом: <индификатор> :...
-
Рекурсивная программа построения снежинки Написать программу, строящую на экране изображение: Изображение строится по следующему правилу: строится...
-
Правила записи программы на языке Си - Основы программирования
Как указывалось выше, программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.c>. Рассмотрим...
-
Методика анимации - Работа с языком Турбо Паскаль
Эффект анимации достигается быстрым чередованием кадров постепенно изменяемого изображения. При этом нежелательно формировать каждый кадр целиком,...
-
ПРОЦЕДУРНЫЕ ТИПЫ, ТИП ОБЪЕКТ - Типы данных в программе Турбо Паскаль
Процедурные типы -- это нововведение фирмы Borland (в стандартном Паскале таких типов нет). Основное назначение этих типов -- дать программисту гибкие...
-
Ниже приводится пример одной записи профиля нормального поведения. Запись определяет две допустимые операции ("SELECT" и "INSERT") к одному объекту...
-
Типы записей в базе данных DNS-сервера - Компьютерные сети
DNS-сервер, отвечающий за имена хостов в своей зоне, должен хранить информацию о хостах в базе данных и выдавать ее по запросу с удаленных компьютеров....
-
Краски, палитры, заполнения - Работа с языком Турбо Паскаль
Процедура SetCOlor. Устанавливает текущий цвет для вводимых линий и символов. Заголовок: Procedure SetColor(Color: Word); Здесь Color - текущий цвет....
-
Пример программы построения анимации - Работа с языком Турбо Паскаль
Unit unit1; Interface uses graph; Type arpo = array [1..4] of PointType; {хранит коорд. Вершин прямоугольника} { Справка: PointType = Record X, Y :...
-
Диаграммы вариантов использования UML (англ. Unified Modeling Language) описывают взаимоотношения и зависимости между группами вариантов использования и...
-
В этом разделе описаны все запросы, выполняемые компонентом задачник в виде процедур и функций. При описании используется синтаксис языков Object Pascal...
-
Что происходит во время записи? - Компьютерные и сетевые технологии
При обращениях к кэш-памяти на реальных программах преобладают обращения по чтению. Все обращения за командами являются обращениями по чтению и...
-
Функции компонента отслеживания истинности предположений в контексте более общей программы поиска решения проблемы можно сформулировать следующим...
-
СТРОКИ, ФАЙЛЫ - Типы данных в программе Турбо Паскаль
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR,...
-
Вычислить приближенное значение определенного интеграла с подынтегральной функцией f(x) заданным методом и проверить точность вычислений по формуле...
-
ПОРЯДКОВЫЕ ТИПЫ, Логический тип - Типы данных в программе Турбо Паскаль
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон. Целые типы. Диапазон возможных значений целых типов зависит от...
-
1.2.1 Уточнение постановки задачи Для анализа в рамках проекта выберем очень простые, но от этого не менее актуальные , задачи БД отеля. 1. Добавление...
-
Конфигурация устройств ввода-вывода Турбо Паскаля - Программирование в среде Turbo Pascal
Результаты работы программы и исходные данные могут быть записаны в файлы на диске, с помощью специальных процедур работы с файлами прямо из программы. В...
-
Устройства звукозаписи, Подключение устройств записи - Технология мультимедиа. Монтаж фильма
Устройство звукозаписи позволяет Записывать звук от внешнего источника на компьютер. Наиболее часто используемым типом устройства звукозаписи является...
-
Линии и точки, Многоугольники - Работа с языком Турбо Паскаль
Процедура PutPixel. Выводит заданным цветом точку по указанным координатам. Заголовок: Procedure PutPixel(X, Y: Inteder; Color: word); Здесь X, Y -...
-
Turbo Pascal, О Turbo Pascal, История - Работа с языком Турбо Паскаль
Среда разработки Turbo Pascal 7.1 (Рис 1) О Turbo Pascal Turbo Pascal (произносится "турбо паскаль") -- Интегрированная среда разработки программного...
-
Для администратора проекта ИИС "MD_SLAGMELT" разработано средство логирования. После завершения выполнения программы, в случае возникновения...
-
Дуги, окружности, эллипсы - Работа с языком Турбо Паскаль
Процедура Circle. Вычерчивает окружность. Заголовок: Procedure Circle(X, Y: Integer; R: Word); Здесь X, Y - координаты центра; R - радиус в пикселях....
-
Варианты - Решение задач линейного программирования с использованием Microsoft Excel
Используя MS Excel, найти решение для модели ЛП, соответствующей заданному варианту (табл. 1.5). Таблица 1.5 Варианты задач к лабораторной работе № 1 №...
-
Объект защиты расположен в жилом доме и занимает два этажа. Вход на объект расположен в центральной части здания. Освещение объекта электрическое....
-
ПМ "Надзор" разработан в соответствии с требованиями норм в области технической эксплуатации (ТЭ) АТ, действующих в гражданской авиации (ГА) РФ....
-
Прогнозируемая оценка проекта после реализации единой шины данных как прослойки между всеми компонентами ИТ-ландшафта компании выполняется по методу...
-
ФУНКЦИИ И ПРОЦЕДУРЫ, Модуль Graph, Координаты, окна, страницы - Работа с языком Турбо Паскаль
Модуль Graph Модуль Graph Турбо Паскаля содержит около пятидесяти различных процедур и функции, предназначенных для работы с графическим экраном. В этом...
-
Собственные числа матрицы N - размерность матрицы; I - номер строки; J - номер столбца. Оценки собственных чисел матрицы Таблица 14. Оценки приоритетов...
-
Сохранение и выдача изображений - Работа с языком Турбо Паскаль
Функция ImageSize. Возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения. Заголовок: Function ImageSize(X1,...
-
ВЕЩЕСТВЕННЫЕ ТИПЫ, СТРУКТУРИРОВАННЫЕ ТИПЫ, МАССИВЫ - Типы данных в программе Турбо Паскаль
В отличие от порядковых типов, значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляется в ПК абсолютно точно, значения...
-
Обучение с учителем и формальная запись задачи классификации Теория машинного обучения решает задачи предсказания будущего поведения сложных систем в том...
-
ТИПЫ ДАННЫХ, ПРОСТЫЕ ТИПЫ - Типы данных в программе Турбо Паскаль
Любые данные, т. е. константы, переменные, значения функций или выражения, в Турбо Паскале характеризуются своими типами. Тип определяет множество...
-
ЭВМ обслуживает три терминала по круговому циклическому алгоритму, предоставляя каждому терминалу 30 с. Если в течение этого времени задание...
-
Коэффициенты квадратной матрицы А и вектора b Таблица 1 - Коэффициенты квадратной матрицы А и вектора b № Вар Коэффициенты квадратной матрицы А и вектора...
-
ВВЕДЕНИЕ - Работа с языком Турбо Паскаль
Язык турбо паскаль Что такое язык программирования, для чего нужен. Для чего используется графика. Целью данной курсовой работы является рассмотрение...
-
Формирование области многокритериального выбора вариантов Стоит задача о выборе марки автомобиля с их известными особенностями и характеристиками....
Записи с вариантами - Записи в Турбо Паскале