Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Множества





В ТР множество – это конечная неупорядоченная совокупность элементов, принадлежащих некоторому базовому типу данных, который может быть только порядковым (кроме word, integer и longint, так как число элементов в них > 256).

Массивы и вещественные числа в множества входить не могут.

Максимально допустимое число элементов (мощность, кардинальное число) множества не может превышать 256, поэтому, порядковые значения базового типа лежат в диапазоне 0..255 включительно.

Описание переменных множественного типа осуществляется двумя эквивалентными способами:

1) с определением типа

Type

<имя типа множества>= set of <имя базового типа>;

Var

<имя переменной>:<имя типа множества>;

2) без определения типа

Var

<имя переменной>: set of <имя базового типа>;

Например, Type

Simbol = set of char;

Week = set of (Sun,Mon,Tue,Wed,Thu,Fri,Sat);

Month = set of 1..31;

Var

Letter: simbol;

Day: Week;

Date: Month;

Rus: set of ’A’..’Я’;

Переменным множественного типа присваиваются значения в виде подмножеств. Подмножество – это последовательность элементов, разделенных запятыми, взятая в квадратные скобки [ ]. Это задание множества называется конструктор множества. Другим способом задания является диапазон. Обе формы конструирования подмножеств могут сочетаться.

Например: Sign:=[’+’,’–’];

Digits:=[’0’..’9’];

Letter:=[’А’..’Я’,’а’..’п’,’р’..’я’];

 

Над переменными множественного типа можно производить следующие операции:

1. In – проверка на принадлежность множеству. Результат проверки равен True, если первый операнд входит в множество второго операнда.

Например: if Temp In [0..100] then write (’Жидкость’);

if Bukva In Letter then write (Bukva);

2. Сравнение множеств (операции соотношения). Результат сравнения равен True, если:

а) при операции = сравниваемые множества совпадают;

б) при операции <> они не совпадают друг с другом;

в) при операции >= все элементы второго множества входят в первое;

г) при операции <= все элементы первого множества входят во второе;

Например, результаты приведенных сравнений истинны:

[5, 6] = [6, 5]; [’A’]<>[’B’,’C’]; [’B’,’U’,’K’,’V’,’A’] >= [’K’]; [1..3, 5] <= [0..10];

3. Объединение множеств (знак операции “+”). Результат объединения – множество, включающее элементы обоих множеств.

Например:

A:= [’Turbo’];

B:=A+[’Pascal’]; {результат – B=[’Turbo’,’Pascal’]}

C:= [’Turbo’,’Pascal’]+[’Pascal’]; {результат –С=[’Turbo’,’Pascal’]}

4. Разность множеств (знак операции “–”). Результат операции – множество, включающее все элементы первого множества, не входящие во второе множество.

Например:

A:= [’a’,’b’,’c’] – [’b’,’c’]; {результат – A=[’a’]}

B:= [1..10] – [1, 3, 5, 7, 9]; {результат – B=[2,4,6,8,10]}

5. Пересечение множеств (знак операции “*”). Результат – множество, включающее элементы первого и второго множеств одновременно.

Например,

A:= [1..10] * [8..14]; {результат – A=[8, 9, 10];}

B:= [’A’,’B’,’C’]*[’K’,’L’,’M’]; {результат – B=[ ] – пустое множество}

В некоторых случаях исходное множество удобно представить типизированной константой в виде правильного конструктора множества.

Например:

Type

Rus = set of 'А'.. 'Я';

Const

s: rus = ['А','Б','В','Г','Д'];

date: set of 1..31 = [7..9];

 

 

Пример. Составить программу удаления из строки лишних (нескольких идущих подряд) разделителей (знаков препинания, пробелов и т.п.). Подсчитать число удаленных знаков. Исходную строку и полученные результаты вывести на печать.

 

Program Deleting;

var st,st1: string; {st – исходная строка,

razd: set of char; st1 – обрабатываемая строка}

x,i:byte;

Begin

writeln(' Введите исходную строку: ');

readln(st);

st1:=st;

{задание подмножества разделителей}

razd:=[' ', ',', ';', '.', ':', '-'];

i:=1;

while i<length(st1) do {посимвольный перебор строки}

Begin

if (st1[i] in razd) and (st1[i]=st1[i+1]) then

delete(st1,i+1,1) {удаление лишнего знака}

else i:=i+1;

end;

x:=length(st)-length(st1);

writeln(' Исходная строка: ');

writeln(st);

writeln(' Полученный результат: ');

writeln(st1);

writeln(' Обнаружено ',x,' лишних знаков ');

end.

 

 

Результат выполнения данной программы:

 

Исходная строка:

СфСамГТУ,,,, ул..Советская, д...45....

Полученный результат:

СфСамГТУ, ул.Советская, д.45.

Обнаружено 13 лишних знаков

!! Проанализируйте программу Deleting, введите ее текст в компьютер, осуществите ее компиляцию, запустите на счет и просмотрите результаты.

Date: 2016-02-19; view: 352; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию