Курсовая работа: Понятие множества. Символьный тип
Курсовая работа: Понятие множества. Символьный тип
Министерство сельского хозяйства Российской Федерации
ФГОУ ВПО Воронежский Государственный Аграрный
Университет имени К.Д. Глинки
Кафедра информационного обеспечения и моделирования
агроэкономических систем
Курсовой проект
На тему: Понятие множества. Символьный тип
Воронеж – 2010
Введение
Язык программирования Pascal был разработан в 1968-1971 гг.
Никлаусом Виртом в Цюрихском Институте информатики (Швейцария), и назван вчесть
Блеза Паскаля – выдающегося математика, философа и физика 17-го века.
Первоначальная цель разработки языка диктовалась необходимостью создания
инструмента "для обучения программированию как систематической
дисциплине". Однако очень скоро обнаружилась чрезвычайная эффективность
языка Pascal в самых разнообразных приложениях, от решения небольших задач численного
характера до разработки сложных программных систем - компиляторов, баз данных,
операционных систем и т.п. К настоящему времени Pascal принадлежит к группе
наиболее распространенных и популярных в мире языков программирования:
существуют многочисленные реализации языка практически для
всех
машинных архитектур;
разработаны десятки диалектов и
проблемно-ориентированных расширений языка Pascal;
обучение
программированию и научно-технические публикации в
значительной степени
базируются на этом языке.
Достоинством языка Паскаль является возможность
использования широкого набора разных типов данных. Тип данных определяет
возможные значения констант, переменных, функций, выражений и операций, которые
могут выполняться над ними.
Типы данных подразделяются на простые и сложные. Простые
типы делятся на стандартные (предопределенные) типы и типы определяемые
пользователем (пользовательские типы). Имена стандартных типов являются
идентификаторами и действуют в любой точке программы. Они описаны в стандартном
модуле System. Так же, как и другие идентификаторы, имена стандартных типов
могут быть переопределены в программе. Однако остается возможность обращения к
их первоначальному смыслу с помощью квалифицируемого идентификатора с указанием
имени модуля System.
К стандартным типам относятся:
группа целых типов (Shortint, Integer, Longint, Byte,
Word);
группа вещественных типов (Single, Real,
Double, Extended, Comp);
группа логических (булевских) типов (Boolean, ByteBool, WordBool,
LongBool);
символьный тип (Char);
строковый тип (String, Pchar);
указательный тип (Pointer);
текстовый тип (Text).
Символьный тип, целые и булевские типы относят к, так
называемым, порядковым типам.
Порядковые типы характеризуются следующими свойствами:
Множество допустимых значений любого порядкового типа
представляет собой упорядоченную последовательность , каждый элемент которой
имеет свой порядковый номер. Порядковый номер представляется целым числом.
Первое значение любого порядкового типа имеет номер 0, следующий номер 1 и т.д.
Исключение составляют порядковые типы Integer, Shortint, Longint, где порядковым
номером значений этих типов является само значение.
К любому значению порядкового типа можно применять функции
возвращающие номер, предыдущее или последующее значение данного типа.
Пользовательские типы – дополнительные абстрактные типы,
характеристики которых программист может определять самостоятельно. К
пользовательским типам относятся:
• перечисляемый тип;
• интервальный тип;
• указательные типы (кроме стандартного типа Pointer);
• структурированные типы;
• процедурный тип.
Перечисляемый и интервальный типы являются порядковыми.
Понятие множества. Операции над
множеством
Множественный тип данных Паскаля напоминает перечислимый тип
данных. Вместе с тем множественный тип данных – набор элементов не
организованных в порядке следования.
В математике множественный тип данных – любая совокупность
элементов произвольной природы. Операции, которые производятся над множествами,
по существу заключаются во включении и исключении элементов из множества.
Понятие множества в языке программирования значительно уже
математического понятия.
В Паскале под
множественным типом понимается конечная совокупность элементов,
принадлежащих некоторому базовому типу
данных.
В качестве базовых типов могут использоваться:
перечислимые типы;
символьный;
байтовый;
диапазонные на основе вышеперечисленных.
Такие ограничения связаны с формой представления
множественного типа данных в Паскале и могут быть сведены к тому, чтобы функция
ord() для используемого базового типа лежала в пределах от 0
до 255.
После того, как базовый тип задан, совокупность значений
соответствующего множественного типа данных определяется автоматически. В нее
входят все возможные множества, являющиеся произвольными комбинациями значений
базового типа. Все эти множества являются отдельными значениями определенного
множественного типа данных.
Описание множественного типа данных:
Type <имя_типа>= set of <базовый_тип>
Пример
множественного типа данных:
Type symbol= set of char; {описан множественный тип symol из букв} Var letter, digits, sign: symbol; {описаны три переменные множественного типа}
Для того чтобы придать переменной множественного типа
значение, используют конструктор
множества – перечисление элементов множества через запятую в
квадратных скобках. Например,
sign:=
[‘+’, ‘-‘];
Конструктор множества может содержать диапазон значений
базового типа. Тогда во множества включаются все элементы диапазона. Например,
digits:=
[‘0’ .. ‘9’];
letter:=
[‘a’ .. ‘z’];
Обе формы конструирования множеств могут сочетаться.
Например,
letter:= [‘a’ .. ‘z’, ‘A’ .. ‘Z’];
Конструктор вида [] обозначает пустые множества.
В программе можно использовать множественны тип как
константы, в этом случае их определяют следующим способом:
Const YesOrNo= [‘Y’, ‘y’, ‘N’, ‘n’];
Можно множественный тип определить как типизированную
константу:
Const
digits: set of
char= [‘0’ .. ‘9’];
При описании множественного тип как констант допускается
использование знака “+” (слияние множеств). Например,
Const Yes= [‘Y’, ‘y’]; No= [‘N’, ‘n’];
YesOrNo= Yes+ No;
С множественными типами Паскаля можно выполнять действия
объединения, исключения и пересечения.
Объединение
множественных типов содержит элементы, которые принадлежат хотя
бы одному множеству, при этом каждый элемент входит в объединение только один
раз. Операция объединения множеств обозначается знаком ‘+’.
Пример объединения
множественных типов:
Type
symbol= set of
char;
Var
small, capital, latin: symbol; ……………… small:= [‘a’ .. ‘z’]; capital:= [‘A’ .. ‘Z’];
latin:= small + capital; {образованы множества латинских букв путем объединения множеств small и capital}
Возможно объединять множественные типы и отдельные элементы.
Например,
small:= [‘c’ .. ‘z’];
small:= small + [‘a’] +[‘b’];
Исключение
определяется как разность множественных типов, в котором из уменьшаемого
исключаются элементы, входящие в вычитаемое. Если в вычитаемом есть элементы,
отсутствующие в уменьшаемом, то они никак не влияют на результат. Операция
исключения обозначается знаком ‘-‘. Пример
исключения множественных типов Паскаля
letter:=
[‘a’ .. ‘z’]; {множества букв
латинского алфавита} glasn:= [‘a’, ‘e’, ‘o’, ‘u’, ‘i’, ‘y’];
{множества гласных букв} soglasn:=
letter-glasn; {образовано множества
согласных букв путем исключения из множества всех букв множества гласных букв}
Пресечение
множественных типов– множества, содержащие элементы,
одновременно входящие в оба множества. Операция пересечения множеств
обозначается знаком ‘*’.
Пример пересечения
множественных типов
Type
chisla= set of byte; Var z,x,y: chisla; ……….. x:= [0..150]; y:= [100..255]; z:= x*y {получено
множества чисел из диапазона 100..150 в результате пересечения двух множеств}
Операции отношения
множественных типов Наряду с
рассмотренными выше операциями, над значениями множественного типа определены и
некоторые операции отношения. Операндами операций над множественными значениями
в общем случае являются множественные выражения. Среди операций отношения над
значениями множественного типа особое место занимает специальная операция проверки вхождения элемента во множества,
обозначаемая служебным словом in.
В отличие от остальных операций отношения, в которых значения обоих операндов
относятся к одному и тому же множественному типу значений, в операции in первый
операнд должен принадлежать базовому типу, а второй – множественному типу
значений, построенному на основе этого базового типа. Результатом операции
отношения, как обычно, является логическое значение (true или false).
Страницы: 1, 2, 3, 4 |