русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Операции над множествами


Дата добавления: 2014-11-28; просмотров: 2611; Нарушение авторских прав


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

Операция Смысл Пример* Результат
* пересечение множеств s1*s3 [‘2’, ‘3’]
+ объединение множеств s4+s5 [0. .6]
- разность множеств s2-s3 [‘1’]
= True, если множества эквивалентны s1=s2 s1=s3 True False
<> True, если множества неэквивалентны s1<>s2 s1<>s3 False True
<= True, если первое множество содержится во втором s5<=s6 True
>= True, если второе множество содержится в первом s2>=s3 True
In проверка принадлежности значения выражения, стоящего слева множеству, стоящему справа 7-5 In s4 True

* - примеры приведены согласно описаниям и конструкторам множеств в примере 2.

 

Дополнительно к этим операциям можно использовать две процедуры:

Include- включает новый элемент во множество: Include(M,elem);

где М - множество элементов некоторого базового типа, а elem - элемент того же типа, который необходимо включить в множество М.

Exclude -исключает элемент из множества: Exclude(M,elem).

В отличие от операций "+" и "-", реализующих аналогичные действия над двумя множествами, эти процедуры оптимизированы для работыс одиночными элементами множества и поэтому отличаются высокой скоростью выполнения.

Основным достоинством использования множеств является экономия памяти: внутренне устройство множества таково, что каждому его элементу ставится в соответствие один двоичный разряд (один бит). Если элемент включен в множество, то соотвествующий разряд имеет значение 1, в противном случае - 0. Минимальной единицей памяти является 1 байт, содержащий 8 бит, поэтому для хранения множества мощностью 256 элементов выделяется память 32 смежных байта.



Рассмотрим работу с множествами на следующем примере.

Из множества целых чисел от 1 до 20 выделить:

1) множество чисел, делящихся на 2 и 3 одновременно;

2) множество чисел, делящихся на 2 или на 3.

Первая задача соответствует нахождению пересечения множеств чисел, одно из которых содержит числа, делящиеся на 2, а другое на 3. Вторая - объединению этих двух множеств.

Обозначим множество чисел, делящихся на 2 через М2; множество чисел, делящихся на 3 через М3; множество чисел, делящихся на 2 и 3 через М2and3; множество чисел, делящихся на 2 или 3 через М2or3.

Пример 3.

Type TM=Set of 1..20; {Описание типа множества целых чисел от 1 до 20}

Var M2,M3,M2and3,M2or3:TM; {Описание множеств}

k:1..20; {Описание переменной}

Begin

M2:=[]; M3:=[]; {Пустые множества}

for k:=1 to 20 do

begin

if k mod 2 = 0 then Include(M2,k); {Включение элемента делящегося на 2 в

множество М2}

if k mod 3 = 0 then Include(M3,k); { Включение элемента делящегося на 3 в

множество М3}

end;

M2and3:=M2*M3; {Пересечение двух множеств}

M2or3:=M2+M3; {Объединение двух множеств}

write(' На 2 и 3 делятся числа: ');

for k:=1 to 20 do { Цикл для опеределения элементов в множестве}

if k in M2and3 then write(k:3); { вывод элементов делящихся на 6}

writeln; {Переход на новую строку экрана}

write(' На 2 или 3 делятся числа: ');

for k:=1 to 20 do

if k in M2or3 then write(k:3); readln; {Остановка для просмотра}

End.

Контрольные вопросы.

1. Что такое множество? Каким требованиям должны удовлетворять все элементы множества? Преимущества использования типа множество?

2. Какое множество называется пустым? Как оно обозначается?

3. Как задается описание множественного типа?

4. Какие операции допустимы над множествами? Каков тип результатов выражений с применением операций над множествами?

5. Какие множества считаются равными, неравными? Имеет ли значение для сравниваемых множеств порядок следования элементов?

6. Для чего применяютя операции «больше или равно», «меньше или равно»? В чем их отличие?

7. Для чего применяется операция in? Особенности ее применения.

8. Что называетсся объединением множеств?

9. Что называется пересечением множеств?

10. Что называется разностью множеств?

11. Какие из следующих конструкций являются множествами (в смысле языка Паскаль), а какие нет и почему?
а) [9,6,3,0]; б) [2...3,5,7];
в) [1...15,4...18]; г) [ '*', '*'];
д) [0...0]; е) [ true...false];
ж) [ sgrt(9)]; з) [ '=', '>='] .

 

Задачи для самостоятельной работы

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

2. Дан текст из строчных латинских букв, за которым следует точка. Напечатать все буквы, входящие в текст не менее двух раз.

3. Дан текст из строчных латинских букв, за которым следует точка. Напечатать
все буквы, входящие в текст по одному разу.

4. Дан текст, за которым следует точка. В алфавитном порядке напечатать все строчные русские гласные буквы (а, е, и, о, у, ы, э, ю, я), входящие в этот текст.

5. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все гласные буквы, которые входят в каждое слово.

6. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все согласные буквы, которые не входят ни в одно слово.

7. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все звонкие согласные буквы, которые входят хотя бы в одно слово.

8. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все глухие согласные буквы, которые не входят хотя бы в одно слово.

9. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все согласные буквы, которые входят только в одно слово.

10. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все глухие согласные буквы, которые не входят только в одно слово.

11. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все звонкие согласные буквы, которые входят более чем в одно слово.

12. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке все гласные буквы, которые не входят более чем в одно слово.

13. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все звонкие согласные буквы, которые входят в каждое нечетное слово и не входят ни в одно четное слово.

14. Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном порядке
все глухие согласные буквы, которые входят в каждое нечетное слово и не входят хотя бы в одно четное слово. (гласные буквы - а, е, и, о, у, ы, э, ю, я; звонкие согласные буквы - б, в, г, д, ж, з, л, м, н, р; глухие согласные буквы - к, п, с, т, ф, х, ц, ч, ш, щ.)

Дополнительно:

6. Дан текст, являющийся русскими словами. Выполнить разделение его на части для переноса.

Далее правила переноса русских слов.
a) Две идущие подряд гласные можно разделить, если первой из них предшествует согласная, а за второй идет хотя бы одна буква (буква й при этом рассматривается вместе с предшествующей гласной как единое целое).
b) Две идущие подряд согласные можно разделить, если первой из них предшествует гласная, а в той части слова, которая идет за второй согласной, имеется хотя бы одна гласная (буквы ъ, ь вместе с предшествующей согласной рассматриваются как единое целое).
c) Если не удается применить пункты a, b, то следует попытаться разбить слова так, чтобы первая часть содержала более чем одну букву и оканчивалась на гласную, а вторая содержала хотя бы одну гласную.

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

Литература:

1. О.Л. Голицына, И.И. Попов , Основы алгоритмизации и программирования 126-128;

2. В. Фаронов Turbo Pascal, стр 117-121

3. http://www.pascaler.ru/

 

11 Файлы данных

 

Файлы

1. Общие сведения о физических и логических файлах. Типы файловых переменных.

2. Описание файлов.

3. Стандартные процедуры для работы с файлами.

4. Запись в файл.

5. Чтение файлов.



<== предыдущая лекция | следующая лекция ==>
Представление множества в языке Turbo Pascal | Общие сведения о физических и логических файлах. Типы файловых переменных.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.226 сек.