Изменить программу так, чтобы результатом ее работы являлось множество чисел, делящихся на 3, но не делящихся на 2.
Пример 2
"Мешанина". Если взять то общее, что есть у боба с ложкой, добавить кота и поместить в тепло, то получится муравей. Так ли это? Состоит ли муравей из кота?
Вопросы для обсуждения
1. Сколько множеств надо задать и каков тип их элементов? (Четыре множества с элементами символьного типа.)
2. Как сформировать множества? (С помощью оператора присваивания: например,
s1:=['б', 'о', 'б'])
3. Как сформировать искомые множества? (С помощью операций пересечения, объединения, вычитания множеств.) Программа для решения этой задачи приведена ниже:
Program Example_140;
Var y1, y2, у3, у4, х: Set of Char;
s: Char;
Begin
у1:=['б', 'о', 'б'];
y2:=[ 'л', 'о', 'ж', 'к', 'а'];
у3:=['к', 'о', 'т'];
у4:=['т', 'е', 'п', 'л', 'о'];
х:=(у1*у2)+у3-у4;
Writeln ('множество х');
{вывод множества х}
For s:='a' То 'я' Do
If s in x Then Write (s); Writeln;
{проверка: состоит ли муравей из кота}
If у3<=х Then Write ('муравей состоит
из кота')
Else Write('муравей не состоит
из кота');
End.
Пример 3
Дано натуральное число n. Составить программу, печатающую в порядке возрастания все цифры, не входящие в десятичную запись данного натурального числа.
Вопросы для обсуждения
1. Какое множество нужно сформировать? (Множество цифр, входящих в десятичную запись данного числа.)
2. Как сформировать это множество? (С помощью операций div и mod последовательно выделить цифры данного числа и занести их во множество.)
3. Как получить искомый результат и как его вывести?
Программа для решения этой задачи такова:
Program Example_141;
Type mn=Set Of 0..9;
Vars: mn;
n: Longint;
k: Integer;
Begin
Writeln('введите число n');
Readln(n);
s:=[ ]; {формирование множества цифр
десятичной записи натурального числа}
While n<>0 Do
Begin
k:=n Mod 10;
n:=n Div 10;
If Not (k in s) Then s:=s+[k];
End;
{вывод цифр в порядке возрастания}
For k:=0 To 9 Do
If Not (k in s) Then Write(k:2);
Writeln;
Readln;
End.
Пример 4
"Решето Эратосфена". Составить программу поиска простых чисел в промежутке [1; n]. Число n вводится с клавиатуры.