2 in [1, 3, 6] даст FALSE.
При использовании в программах данных множественного типа
выполнение операций происходит над битовыми строками данных. Каждому
значению множественного типа в памяти ЭВМ соответствует один двоичный
разряд. Например, множество
['A','B','C','D']
представлено в памяти ЭВМ битовой строкой
1 1 1 1.
Подмножества этого множества представлены строками:
['A','B','D'] 1 1 0 1
['B','C'] 0 1 1 0
['D'] 0 0 0 1
Величины множественного типа не могут быть элементами списка вво-
да - вывода.
В каждой конкретной реализации транслятора с языка ПАСКАЛЬ коли-
чество элементов базового типа, на котором строится множество, огра-
ничено. В TURBO PASCAL количество базовых элементов не должно превы-
шать 256.
Инициализация величин множественного типа производится с помощью
типизированных констант:
const seLit: Set of 'A'..'D'= [];
Проиллюстрируем применение данных множественного типа на примере.
Пример. Составить программу, которая вырабатывает и выводит на эк-
ран дисплея наборы случайных чисел для игры в "Спортлото 5 из 36".
Для заполнения каждой карточки спортлото необходимо получить набор
из пяти псевдослучайных чисел. К этим числам предъявляются два требо-
вания:
-числа должны находиться в диапазоне 1..36;
-числа не должны повторяться.
Program Lotto;
var
nb, k: Set of 1..36;
kol, l, i, n: Integer;
begin
Randomize;
WriteLn('ВВЕДИ kol');
ReadLn(kol);
nb:=[1..36];
for i:=1 to kol do
begin
k:=[];
for l:=1 to 5 do
begin
repeat
n:=Random(36)
until (n in nb) and not (n in k);
k:=k+[n];
Write(n:4)
end;
WriteLn
end
end.
29. З А П И С И
Запись представляет собой совокупность ограниченного числа логи-
чески связанных компонент, принадлежащих к разным типам. Компоненты
записи называются полями, каждое из которых определяется именем. Поле
записи содержит имя поля, вслед за которым через двоеточие указывает-
ся тип этого поля. Поля записи могут относиться к любому типу, допус-
тимому в языке Паскаль, за исключением файлового типа.
Описание записи в языке ПАСКАЛЬ осуществляется с помощью
служебного слова RECORD, вслед за которым описываются компоненты за-
писи. Завершается описание записи служебным словом END.
Например, записная книжка содержит фамилии, инициалы и номера те-
лефона, поэтому отдельную строку в записной книжке удобно представить
в виде следующей записи:
type Row=Record
FIO: String[20];
TEL: String[7]
end;
var str: Row;
Описание записей возможно и без использования имени типа, напри-
мер:
var str: Record
FIO: String[20];
TEL: String[7]
end;
Обращение к записи в целом допускается только в операторах присва-
ивания, где слева и справа от знака присваивания используются имена
записей одинакового типа. Во всех остальных случаях оперируют отдель-
ными полями записей. Чтобы обратиться к отдельной компоненте записи,
необходимо задать имя записи и через точку указать имя нужного поля,
например:
str.FIO, str.TEL
Такое имя называется составным. Компонентой записи может быть так-
же запись, в таком случае составное имя будет содержать не два, а
большее количество имен.
Обращение к компонентам записей можно упростить, если воспользо-
ваться оператором присоединения with.
Он позволяет заменить составные имена, характеризующие каждое по-
ле, просто на имена полей, а имя записи определить в операторе присо-
единения:
with M do OP;
Здесь М - имя записи, ОР - оператор, простой или составной.
Оператор ОР представляет собой область действия оператора присоедине-
ния, в пределах которой можно не использовать составные имена.
Иногда содержимое отдельной записи зависит от значения одного из
ее полей. В языке ПАСКАЛЬ допускается описание записи, состоящей из
общей и вариантной частей. Вариантная часть задается с помощью конс-
трукции
case P of,
где Р - имя поля из общей части записи. Возможные значения, прини-
маемые этим полем, перечисляются так же, как и в операторе варианта.
Однако вместо указания выполняемого действия, как это делается в опе-
раторе варианта, указываются поля варианта, заключенные в круглые
скобки. Описание вариантной части завершается служебным словом end.
Тип поля Р можно указать в заголовке вариантной части, например:
case P: Integer of
Инициализация записей осуществляется с помощью типизированных
констант:
type
RecType= Record
x,y: Word;
ch: Char;
dim: Array[1..3] of Byte
end;
const
Rec: RecType= ( x: 127; y: 255;
ch: 'A';
dim: (2, 4, 8) );
{}
... ячейка, а имя переменной превращается в адрес ячейки. Появление этого адреса происходит в результате работы специального оператора языка (NEW), однако его значение в большинстве случаев не используется при программировании на алгоритмических языках типа Паскаль. Условимся считать, что адрес ячейки, которая будет хранить переменную А, есть А. Или, другими словами, А - это общее имя переменной и ...
... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой -------------------------------------------------- Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...
... . Поэтому так легко путешествовать по Всемирной паутине (WWW — Worl Wide Web), переходя с сайта на сайт по гиперссылкам. Для отображения в «плоском* тексте смысловых связей между основными разделами или понятиями можно использовать гипертекст. Гипертекст позволяет структурировать документ путем выделения в нем слов-ссылок (гиперссылок). При активизации гиперссылки (например, с помощью щелчка мышью ...
... # будет тесно интегрирован с языком XML[1]. 2.2 Паскаль Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского ...
0 комментариев