bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [157]
АВС [6]
КПиЯП [80]
ОАиП [305]
ОКТ [79]
СиСПО [8]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0
Файловый архив
Файлы » ПОИТ » ОАиП

ПОИТ (д.), ОАиП, Контрольная работа №1, вар.5, 2015
Подробности о скачивании 23.11.2015, 00:07
1). Задание
Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Известно, что мощность каждого множества равна 10. Сформировать новое множество Y = (Х1 – Х2) * (Х2 + Х3). На экран вывести исходные множества, а также полученное множество. Значения элементов исходных множеств ввести с клавиатуры.
Из множества Y выделить подмножество Y1, которое состоит из чисел, делящихся на 3 без остатка. Определить мощность множества Y1.

2). Программа на языке Pascal

Program Mnozhestva;
{Х1, Х2, Х3 - множества целых чисел из диапазона 1..100 с мощностью 10; значения элементов исходных множеств вводятся с клавиатуры: из предопределенного файла Input. Программа формирует новое множество Y = (Х1-Х2)*(Х2+Х3), выделяет из множества Y подмножество Y1, состоящее из целых чисел, делящихся на 3 без остатка, определяет мощность множества Y1, выводит на экран исходные множества Х1, Х2, Х3, полученные множества Y и Y1, а также мощность множества Y1}
Uses Crt; {Подключение модуля Crt}
Var X1, X2, X3, Y, Y1, Diap: Set of 1..100; {исходные и искомые множества различных символов}
Simb: Integer; {элементы множества}
Mos: byte; {можность множества Y1}
i: byte; {вспомогательная переменная}
BEGIN
ClrScr; {очистка текущего окна на экране}
Diap := [1..100]; {диапазон возможных значений элементов множеств}
{ввод множеств Х1, Х2, Х3}
X1 := []; {определение начального значения множества Х1 - пустое множество}
Writeln ('Введите 10 элементов множества X1 (числа от 1 до 100)');
i := 0;
Repeat {итерационный цикл для 10 элементов}
Read (Simb); {ввод элементов}
If Simb in X1 then {проверка повторно введенных элементов мно-жества}
Continue else {переход к концу тела цикла}
If Simb in Diap then {проверка правильности введенного элемента}
inc (i) else {подсчет правильно введенных элемента}
Writeln (Simb, ' - недопустимое значение');
X1 := X1 + [Simb]; {формирование множества Х1}
Until i = 10; {выход из цикла, когда правильно введены все 10 элементов}
Readln; {переход на новую строку}
X2 := []; {определение начального значения множества Х2 - пустое множество}
Writeln ('Введите 10 элементов множества X2 (числа от 1 до 100)');
i := 0;
Repeat {итерационный цикл для 10 элементов}
Read (Simb); {ввод элементов}
If Simb in X2 then {проверка повторно введенных элементов мно-жества}
Continue else {переход к концу тела цикла}
If Simb in Diap then {проверка правильности введенного элемента}
inc (i) else {подсчет правильно введенных элемента}
Writeln (Simb, ' - недопустимое значение');
X2 := X2 + [Simb]; {формирование множества Х2}
Until i = 10; {выход из цикла, когда правильно введены все 10 элементов}
Readln; {переход на новую строку}
X3 := []; {определение начального значения множества Х3 - пустое множество}
Writeln ('Введите 10 элементов множества X3 (числа от 1 до 100)');
i := 0;
Repeat {итерационный цикл для 10 элементов}
Read (Simb); {ввод элементов}
If Simb in X3 then {проверка повторно введенных элементов мно-жества}
Continue else {переход к концу тела цикла}
If Simb in Diap then {проверка правильности введенного элемента}
inc (i) else {подсчет правильно введенных элемента}
Writeln (Simb, ' - недопустимое значение');
X3 := X3 + [Simb]; {формирование множества Х3}
Until i = 10; {выход из цикла, когда правильно введены все 10 элементов}
{вывод на экран множеств Х1, Х2, Х3}
Writeln ('Элементы множества X1 ', X1);
Writeln ('Элементы множества X2 ', X2);
Writeln ('Элементы множества X3 ', X3);
{формирование множества Y}
Y := []; {определение начального значения множества Y - пустое множество}
Y := Y + (X1-X2)*(X2+X3); {формирование множества Y: первыми вы-полняются операции в скобках, затем операция пересечения (*) множеств, последняя операция - объединение пустого и определенного множеств}
Writeln ('Элементы множества Y ', Y); {вывод на экран множества Y}
{формирование множества Y1}
Y1 := []; {определение начального значения множества Y1 - пустое множество}
For S := 1 to 100 do {перебор всех чисел от 1 до 100}
if S in Y then {проверка вхождения очередного числа в множество Y}
if S mod 3 = 0 then {проверка элемента множеста Y на кратность трем}
Y1 := Y1 + [S]; {добавление элемента в множество Y1 при соблюдении предыдущих условий}
Writeln ('Элементы множества Y1 ', Y1); {вывод на экран множества Y1}
{определение мощности множества Y1}
Mos := 0; {определение начального значения мощности множества Y1 - пустое множество}
For i:= 1 to 100 do {перебор всех чисел от 1 до 100}
if i in Y1 then {проверка вхождения очередного числа в мно-жество Y1}
inc (Mos); {увеличение значения мощности при }
Writeln ('Мощность множества Mos = ', Mos); {вывод на экран мощно-сти множества Y1}
ReadKey
END.

3) Тестовый набор данных (входные данные и результаты работы программы, полученные при этих данных)
Программа корректно работает при введении чисел от -32768 до 32767 (тип Integer), при этом во множества записываются только числа от 1 до 100, при введении числа не из этого диапазона программа выдает сообщение о недопустимости такого элемента, а само число - игнорирует.
При записи элементов множества в одну строку, разделенных одним или несколькими пробелами, может возникнуть такая ситуация, что в строке записано больше десяти «подходящих» элементов множества. В таком случае во множество войдут первые десять «подходящих» чисел из строки, оставшиеся числа - игнорируются.

Тест 1.
Исходные строки:
Х1: 1 2 3 4 5 6 7 8 9 10
Х2: 8 9 10 11 12 13 14 15 16 17
Х3: 1 2 3 6 7 9 10 14 15 23
Результаты:
Х1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Х2: [16, 15, 14, 13, 12, 11, 10, 9, 8, 17]
Х3: [15, 14, 10, 9, 23, 7 , 6, 3, 2, 1]
Y: [6, 3, 2, 1, 7]
Y1: [6, 3]
Mos = 2

Тест 2.
Исходные строки:
Х1: ‘3 6 9 12 15 18 21 24 27 30 33 36’ { в строку введено 12 чисел}
Х2: ‘6 18 27 31 32 41 42 58 43 46 10’{ в строку введено 11 чисел}
Х3: ‘ 6 9 12 31 43 24 36 37 38 39’
Результаты:
Х1: [15, 30, 12, 27, 9, 24, 6, 21, 3, 18]
Х2: [32, 31, 58, 46, 27, 43, 42, 41, 6, 18]
Х3: [31, 12, 9, 43, 24, 6, 39, 38, 37, 36]
Y: [12, 24, 9]
Y1: [12, 24, 9]
Mos = 3

Тест 3.
Исходные строки:
Х1: ‘1 1 1 1 2 1 3 5 6 7 8 9 10 4’ {в строке несколько раз встречается число 1}
Х2: ‘123 4 5 8 354 12 13 14 15 16 17 18’ {в строке встречается числа не из диапазона 1..100}
Х3: ‘1 2 3 4 5 21 22 23 24 25’
Результаты:
Х1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Х2: [16, 15, 14, 13, 12, 8, 5, 4, 18, 17]
Х3: [4, 22, 25, 24, 23 5, 21, 3, 2, 1]
Y: [3, 2, 1]
Y1: [3]
Mos = 1

Тест 4.
Исходные строки:
Х1: ‘1 2 3 4 5 6 7 8 9 10’
Х2: ‘11 12 13 14 15 16 17 18 19 100’
Х3: ‘90 91 92 93 94 95 96 97 98 99’
Результаты:
Х1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Х2: [16, 15, 14, 13, 12, 11, 100, 19, 18, 17]
Х3: [99, 98, 97, 96, 95, 94, 93, 92, 91, 90]
Y: []
Y1: []
Mos = 0
Тест 5.
Исходные строки:
Х1: ‘1 2 3 4 5 6 7 8 9 10’
Х2: ‘8 9 10 11 12 13 14 15 16 17’
Х3: ‘1 2 4 7 8 12 20 21 22 23’
Результаты:
Х1: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Х2: [16, 15, 14, 13, 12, 11, 10, 9, 8, 17]
Х3: [12, 4, 8, 7, 23, 22, 21, 20, 2, 1]
Y: [4, 2, 1, 7]
Y1: []
Mos = 0
Категория: ОАиП | Добавил: Yulia
Просмотров: 1461 | Загрузок: 10
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]