Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию    
    главная     хостинг     создание сайтов    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Системное программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru
Алгоритмический язык Pascal

Множества

Понятие множества в языке ПАСКАЛЬ основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.
Множественный тип описывается с помощью служебных слов Set of, например:
   type  M= Set of B;
Здесь М - множественный тип, В - базовый тип.
Пример описания переменной множественного типа:
   type
     M= Set of 'A'..'D';
   var
     MS : M;
Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных:
   var
     C : Set of 0..7;
Константы множественного типа записываются в виде заключенной в квадратные скобки последовательности элементов или интервалов базового типа, разделенных запятыми, например:
   ['A', 'C']    [0, 2, 7]    [3, 7, 11..14].
Константа вида [] означает пустое подмножество.
Множество включает в себя набор элементов базового типа, все подм- ножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подм- ножеств, входящих в это множество, равно 2 в степени К. Пусть имеется переменная Р интервального типа:
   var
     P : 1..3;
Эта переменная может принимать три различных значения - либо 1, либо 2, либо 3. Переменная Т множественного типа
   var
     T : Set of 1..3;
может принимать восемь различных значений:
         [ ]        [1,2]
         [1]        [1,3]
         [2]        [2,3]
         [3]        [1,2,3]
Порядок перечисления элементов базового типа в константах безразличен.
Значение переменной множественного типа может быть задано конструкцией вида [T], где T - переменная базового типа.
К переменным и константам множественного типа применимы операции присваивания(:=), объединения(+), пересечения(*) и вычитания(-):
         ['A','B'] + ['A','D']      даст  ['A','B','D']
         ['A'] * ['A','B','C']      даст  ['A']
         ['A','B','C'] - ['A','B']  даст  ['C'].
Результат выполнения этих операций есть величина множественного типа.
К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип, например:
         ['A','B'] = ['A','C']  даст FALSE
         ['A','B'] <> ['A','C'] даст TRUE
         ['B'] <= ['B','C']     даст TRUE
         ['C','D'] >= ['A']     даст FALSE.
Кроме этих операций для работы с величинами множественного типа в языке ПАСКАЛЬ используется операция in проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения, например:
         A in ['A', 'B'] даст  TRUE,
         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.
Содержание
   









helloworld.ru © 2001-2016
Все права защищены
Rambler's Top100 TopList Rambler's Top100