Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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: 390; Нарушение авторских прав |