Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Объединение Пересечение Разность

Поиск

 

 

Для задания правильного порядка выполнения операций следует учитывать принятый порядок старшинства (приоритета) операций над множествами: пересечение (*) имеет тот же приоритет, что и арифметические операции умножения и деления; объединение (+) и разность (-) занимают следующий, более низкий уровень приоритета, аналогично арифметическим операциям сложения и вычитания; на самом нижнем уровне находятся операции сравнения множеств (=, <>, <=, >=) и проверки принадлежности элемента множеству (in). Операции одного приоритета выполняются слева направо. Для изменения порядка выполнения операций используются круглые скобки.

Использование множеств


Наиболее эффективно множество может быть использовано для замены операторов if, например, для проверки наличия некоторого ответа в списке разрешённых. Приведённая ниже программа ввода строки символов, содержащей латинские буквы, цифры и пробелы с контролем правильности введённых символов, может служить примером использования множеств:

program Project1;

{$APPTYPE CONSOLE}

uses SysUtils;

var
str: string;

L: byte;

t: boolean;

begin
Writeln('Enter string');

readln(str);
L:=length(str); // Число введённых символов

t:=L>0; // True, если не пустая строка

while t and (L>0) do // Проверка с конца строки

begin

t:=str[L] in ['0'.. '9', 'a'.. 'z', 'A'.. 'Z']; // Проверка допустимости символа

dec(L); // Предыдущий символ

end;

if t then writeln('True String') // Правильная строка

else writeln('False string]'); // Неправильная строка

Readln;
end.

Пример процедуры выводящей элементы множества с указанием их числа

и её реализация (скачать здесь - 523 байт):


program Project1;

{$APPTYPE CONSOLE}

uses SysUtils;

var
a: set of char;

s: string[50];

count: integer;

i,l: integer;

 

procedure Mnogo;

var
ch: char;

begin
for ch:=low(char) to high(char) do

if ch in a then

begin
write(ch, '');

inc(count);

end;
writeln;
writeln('Kol-vo simbol: ', count);

end;
begin

write('Enter the String please: ');

readln(s);
l:=length(s);
for i:=1 to l do a:=a+[s[i]];

mnogo;
readln;
end.

 

 

Примеры

Пример 1.

Дана символьная строка. Подсчитать в ней количество знаков препинания

(.-,;:!*?).

+
-
Начало
s
I=1, length(s)
К  
k:=0;
s [i] in [‘.’,’-‘,’,’,’;’,’:’,’!’,’*’,’?’]
K:=K+1
конец

 

Program p1;

Var s: string;

I, k: byte;

Begin

Readln (s); k:=0;

For i:=1 to length (s) do

If s [i] in [‘.’,’-‘,’,’,’;’,’:’,’!’,’*’,’?’]

Then k: = k+ 1;

Writeln (‘число знаков препинания равно’,k); еnd.

 

В этом примере использована множественная константа с символьным типом элементов. Эту задачу можно решить и без множества, записав в операторе if длинное логическое выражение:(s [i]=’.’) or (s[i]=’-‘) и т.д. использование множества сокращает запись.

 

 

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

 

  1. Множество – это…
  2. Что называется элементом множества?
  3. Каким требованиям должны удовлетворять все элементы множества?
  4. Что такое базовый тип множества? Как он задается?
  5. Какое множество называется пустым, как оно обозначается?
  6. Что такое мощность?
  7. Что представляет собой конструктор множества?

8. Какие операции допустимы над множествами?

9. Как описываются переменные множественного типа?

10. Какие множества считаются равными?

11. Два множества А и В считаются не равными, если...

12. Для чего используется операция ''больше или равно''(>=)?

13. Результат операции А >= В равен True, если...

14. Результатом выражений с применением операций отношения ''='',

''<>'', ''<='', ''>='' является значение….

15. Результат выражения А<= В равен True, если...

16. Для чего используется операция in?

17. Объединением двух множеств является...

18. Пересечением двух множеств является...

19. Разностью двух множеств является...

20. Какое значение будет являться результатом выражения А=В при

данных значениях А и В? Значение А=['a', 'b', 'c'] Значение В=['c', 'a']

21. Найдите результат действия со множествами:[X] * [].

 

Задания к лабораторной работе № 5

Множества

Вариант 1.

1.Заданы имена девочек. Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых классах и какие из этих имен не

встречаются ни в одном классе.

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

 

Вариант 2.

1.Задан некоторый набор товаров. Определить, для каждого из товаров, какие из них имеются в каждом магазине и каких товаров нет ни в одном магазине.

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

 

Вариант 3.

1.Имеется список класса (все имена различны). Определить, есть ли в классе человек, который побывал в гостях у всех. (Для каждого ученика составить множество побывавших у него в гостях друзей, сам ученик в это множество не входит.)

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

 

Вариант 4.

1.Имеется множество, содержащее натуральные числа из некоторого диапазона. Сформировать два множества, первые из которых содержит все простые числа из данного множества, а второе – все составные.

2.Известны марки машин, изготовляемых в данной стране и импортируемых за рубеж. Даны некоторые К стран. Определить для каждой из марок, какие из них были:1) доставлены во все страны; 2) доставлены в некоторые из стран; 3) не доставлены ни в одну страну.

 

Вариант 5.

1..На трех участках возделывают сельскохозяйственные культуры. Известны виды культур, выращиваемых на каждом из участков. Определить виды тех культур, которые возделывают на каждом из участков; возделывают хотя бы на одном из участков; не возделывают ни на одном участке. (Культуры: картофель, укроп, морковь, горох, капуста, редис.)

2.Задано некоторое множество М и множество Т того же типа. Подсчитать количество элементов в Т и М, которые не совпадают.

 

Вариант 6.

1.Дан текст из строчных латинских букв и цифр. Определить чего – букв или цифр – больше в этом тексте.

2.В N колхозах выращивают некоторые сельскохозяйственные культуры из имеющегося перечня. Определить культуры: возделываемые во всех колхозах; возделываемые только в некоторых колхозах.

 

Вариант 7.

1.Подсчитать количество различных цифр в десятичной записи натурального числа.

2.Есть список игрушек, некоторые из которых имеются в n детских садах. Определить игрушки из списка: которых нет ни в одном из детсадов; которые есть в каждом из детсадов.

 

Вариант 8.

1.Напечатать в порядке убывания все цифры, входящие в запись данного натурального числа.

2.Составить программу, которая вычисляет сумму тех элементов двумерного массива, номера строк и столбцов которых принадлежат соответственно непустым множествам S1иS2

 

Вариант 9.

1.Задан год рождения. Определить, сколько человек в списке жильцов студенческого общежития родились в этот год.

2.Задано некоторое множество М и множество Т того же типа. Подсчитать, сколько элементов из множеств Т и М совпадает.

 

 

Вариант 10.

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

2. Из диапазона целых чисел m…n выделить:

Множество чисел, делящихся без остатка или на к, или на l (k,l-простые)

Множество чисел, делящихся на k*l без остатка.

 

Вариант 11.

1.Задан список поездов, отправляющихся с вокзала г. Уфы: номер поезда, станция назначения, время отправления, время в пути. Определить поезда, отправляющиеся после 20.00 и вывести данные по этим поездам

2.Известны сорта роз, выращиваемые тремя цветоводами:

«Анжелика», «Виктория», «Гагарин», «АвэМария»,

«Катарина», «Юбилейная». Определить те сорта, которые

имеются у каждого из цветоводов, которых нет ни у

одного из цветоводов.

 

 

Вариант 12.

1.Дан текст из цифр из строчных латинских букв, за которыми следует точка. Определить каких букв - гласных (a, e, I, o, u) или согласных - больше в этом тексте.

2. Определить те имена учеников, которые встречаются во всех классах данной параллели.

 

Вариант 13.

1. Подсчитать количество различных цифр в десятичной записи натурального числа.

2. Имеется список класса (все имена различны). Определить,

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

 

Вариант 14.

1. Напечатать в возрастающем порядке все цифры, не

входящие в запись данного натурального числа.

2. Задан некоторый набор товаров. Определить для каждого из товаров, какие из них имеются только в некоторых из магазинов.

 

Вариант 15.

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

2. Есть список игрушек, некоторые из которых имеются в n

детских садах. Определить игрушки из списка: которых нет

ни в одном из детсадов; которые есть в каждом из детсадов.




Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 557; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.105.199 (0.007 с.)