- •Турбо паскаль. Краткая справка.
- •Тема 1. Блок-схемы в линейных и разветвляющихся алгоритмах.
- •Тема 2. Алгебраические вычисления.
- •Тема 3. Блок-схемы циклических алгоритмов.
- •Тема 4. Сумма ряда.
- •Тема 5. Решение нелинейных алгебраических уравнений методом простой итерации.
- •Тема 6. Численное интегрирование.
- •Тема 7. Экстремум функции.
- •Тема 8. Символьный тип.
- •Тема 9. График функции в текстовом режиме.
- •Тема 10. Массивы.
- •Тема 11. Строки.
- •Тема 12. Множества.
- •Тема 13. Записи.
- •Тема 14. Сортировка.
- •Тема 15. Модули.
- •Тема 16. Процедурные типы.
- •Тема 17. Ассемблер.
- •Тема 18. Указатели.
- •Тема 19. Линейный регрессионный анализ.
- •Тема 20. Создание графических изображений.
- •Тема 21. Динамическая память в программировании графического режима.
Тема 12. Множества.
Написать программу обработки множеств в соответствии c условием задания. Обработка множеств должна быть реализована в подпрограммах. Исходные множества задать в главной программе. Ввод элементов множеств осуществлять до нажатия клавиши ‘z’. Результат обработки и мощность полученных множеств вывести в главной программе.
Пример 1. Задать с клавиатуры два множества символовS1,S2. Объединить их в новое множествоS3. На экран монитора вывести подмножествоS4 символов десятичных цифр объединенного множества и мощностьPowподмножестваS4. Ввод/вывод сделать в главной программе. Формирование объединенного множестваS3 и подмножестваS4 символов десятичных цифр осуществить в двух процедурахProc1,Proc2.
program pr12;
uses crt;
type T1 = set of char;
T2 = set of '0'..'9';
Procedure Proc1(a, b: T1; var c: T1);
begin
c:= a + b
end;
Procedure Proc2(a: T1; var b: T2; var P: integer);
const dig: T2 = ['0'..'9'];
var i: char;
begin
b:= []; P:= 0;
for i:= #0 to #255 do
if (i in a) and (i in dig) then
begin b:= b + [i];
inc(P)
end
end;
var S1, S2, S3: T1;
S4: T2;
i: byte;
c: char;
Pow: integer;
begin clrscr;
S1:= []; S2:= [];
write('Введите 1-е множество ->');
while true do begin
c:= readkey; if c = 'z' then break else
begin S1:= S1 + [c];
write(c:3)
end
end;
writeln;
write(' Введите 2-е множество ->');
while true do begin
c:= readkey; if c = 'z' then break else
begin S2:= S2 + [c];
write(c:3)
end
end;
writeln;
Proc1(S1, S2, S3);
Proc2(S3, S4, Pow);
write('Результат:');
for c:= '0' to '9' do
if c in S4 then write(c:4);
writeln;
write('Мощность = ', Pow:4);
writeln;
readkey
end.
Задания для самостоятельного выполнения.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона[1..100].Сформировать новое множествоY= (X1X2)(X2X3),из которого выделить подмножество нечетных чисел.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона [1..100].Сформировать новое множество Y = (X1X2)(X2 \ X3)из которого выделить подмножество четных чисел.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона[1..100].Сформировать новое множество Y = (X1X2) \ (X2X3),из которого выделить подмножество чисел, кратных3.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона[1..100].Сформировать новое множество Y = (X1X2)(X2X3),из которого выделить подмножество чисел, кратных4.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона[1..200].Сформировать новое множество Y = (X1\X2) (X2X3),из которого выделить подмножество чисел, кратных5.
Даны три множества X1, X2, X3,содержащие целые числа из диапазона[1..100].Сформировать новое множество Y= (X1X2) (X2X3),из которого выделить подмножество чисел, кратных6.
Даны три множества X1=(1,2,3...20), X2=(10,11,12...30), X3=(1,3,5...21).Сформировать новое множествоY = (X1X2)(X1 X3) \ (X2X3),из которого выделить подмножество чисел, не делящихся на3без остатка.
Дано множество X1 содержащее целые числа из диапазона[1..255].Сформировать новое множествоYпутем выделения из множества X1нечетных чисел и чисел, делящихся без остатка на17.
Дано множество X1содержащее целые числа из диапазона[50..100].Сформировать новое множествоY1 путем выделения из множестваX1четных чисел, множествоY2путем выделения из множестваX1, чисел, кратных5.
Даны множества X1иХ2, содержащие целые числа из диапазона[1..255]. Сформировать новое множествоY =(Х1Х2)и выделить из него все четные числа и числа, делящиеся без остатка на19.
Дано множество X1содержащее целые числа из диапазона[50..100].Сформировать новое множествоY1путем выделения из множестваX1четных чисел, множествоY2путем выделения из множестваX1чисел, кратных5.
Дано множество X1содержащее целые числа из диапазона[1..100].Сформировать новое множествоY1путем выделения из множестваX1 нечетных чисел, множествоY2путем выделения из множестваX1, чисел, кратных15.
Дано множество X1 содержащее целые числа из диапазона[50..100].Сформировать новое множествоY1путем выделения из множестваX1нечетных чисел и множествоY2путем выделения из множестваX1чисел, кратных5.
Дано множество X1содержащее целые числа из диапазона[1..100].Сформировать новое множествоY1путем выделения из множестваX1 четных чисел и множествоY2путем выделения из множестваX1, чисел, кратных15.
Дано множество Х1, содержащее символы из диапазона[a...z].Сформировать новое множествоY1путем выделения из множестваХ1всех символов расположенных в алфавите позжеfи раньшеmи множествоY2 путем выделения из множестваХ1символов, расположенных раньшеgили позжеj. На экран вывести множествоY3=(Y1 \ Y2).
Дано множество Х1, содержащее символы из диапазона [А...Я].Сформировать новое множествоY1 путем выделения из множестваХ1всех символов расположенных в алфавите раньшеЕили позжеФи множествоY2путем выделения из множестваХ1символов, расположенных позже К и раньшеР. На экран вывести множествоY3=(Y1 U Y2).
Ввести с клавиатуры множество - последовательность символов из диапазона от АдоЯ. Определить число различных (без повторений) букв, входящих в данную последовательность.
Подсчитать во введенном текстовом отрывке отдельно количество цифр и латинских букв.
Дано множество Х1, содержащее символы из диапазона[А...Я]. Сформировать новое множествоY1путем выделения из множестваХ1 всех символов расположенных в алфавите позжеЕи множествоY2путем выделения из множестваХ1символов, расположенных раньшеКили позжеР. На экран вывести множествоY3=(Y1 n Y2).
Дано множество, состоящее из различных символов. Исключить из заданной последовательности символы, не являющиеся буквами.
Дано множество, состоящее из различных символов. Возвратить строку с упорядоченными по алфавиту символами.
Разработать программу для определения, какому алфавиту принадлежит введенный с клавиатуры символ. После каждого ввода символа выводить сообщение.
Подсчитать во введенном текстовом отрывке отдельно количество знаков математических операций и знаков препинания.
Дано множество, состоящее из различных символов. Исключить из заданной последовательности символы, не являющиеся цифрами.
