Выдержка из текста работы
Тема задания. Изучение множественного типа данных. Для заданного преподавателем варианта составить соответствующую программу на языке Паскаль. Программа должна быть откомментированной в соответствии с принятыми правилами. Предусмотреть простейший вывод на экран входных и выходных данных.
Задача №1. (Задания 1 — 15);
Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Известно, что мощность каждого множества равна 10. Сформировать новое множество Y в соответствии с заданием, выданным преподавателем. На экран вывести исходные и полученное множества. Значения элементов исходных множеств ввести с клавиатуры.
Задание №14
Y = (X1 — X2) * (X2 — X3).
Из множества Y выделить подмножество Y1, которое состоит из чисел, кратных 25. Определить мощность множества Y1.
Program Mnozhestvo;
{Программа преобразует множества X1, X2, X3 в новое множество Y, выделяет из него подмножество Y1,}
{состоящее из чисел, кратных 25, и находит мощность подмножества Y1.}
{Множества Х1, Х2, Х3, мощность которых равна 10, содержат целые числа из диапазона 1..100}
uses crt; {подключение стандартного модуля}
const
n=100; {максимальное значение элементов множеств}
q=3; {кол-во исходных множеств}
m=10; {мощность исходных множеств}
type mnozh = set of 1..n; {тип исходных множеств}
f: real;
c, i, j, mosh: integer;
x: array[1..q] of mnozh; {массив исходных множеств}
y, z: mnozh; {множества, получаемые в результате преобразований}
begin
clrscr; {очистка экрана}
{поэлементный ввод исходных множеств}
for i:=1 to q do
begin
x[i]:=[];
writeln(‘Vvedite mnozhestvo X’, i, ‘ poelementno:’);
for j:=1 to m do
begin
write(j, ‘. ‘);
readln(f);
{проверка введения дробного числа во множество}
if not(frac(f)=0) then
begin
writeln(‘Error: vvedionnoe chislo dolzhno byt celym’);
j:=j-1;
else
begin
c:=trunc(f);
{проверка повторного введения числа}
if c in x[i] then
begin
writeln(‘Error: takoe chislo uzhe vvedeno, vvedite drugoe chislo’);
j:=j-1;
else
{проверка введения числа, меньшего 1 или большего 100}
if (c>=1) and (c<=n) then
include(x[i], c)
else begin
writeln(‘Error: vvedionnoe chislo dolzhno byt ot 1 do 100’);
j:=j-1;
end;
end;
end;
end;
writeln(»);
{вывод на экран введённыx множеств}
writeln(‘Vvedionnye mnozhestva:’);
for i:=1 to q do
begin
write(‘X’, i, ‘=[‘);
for j:=1 to N do
if j in x[i] then write(‘ ‘, j:3, ‘ ‘);
writeln(‘]’);
end;
writeln(»);
{преобразование исходных множеств во множество Y и вывод результата}
y:=(x[1]+x[2])-(x[2]*[3]);
write(‘Y=[‘);
for i:=1 to n do
if i in y then write(‘ ‘, i:3, ‘ ‘);
writeln(‘]’);
writeln(»);
{выделение подмножества Y1, состоящего из чисел, кратных 25, вывод его на экран, нахождение его мощности}
z:=[];
mosh:=0;
i:=25;
writeln(‘Podmnozhestvo Y1, sostoiashchee iz chisel, kratnyh 25’);
writeln(»);
write(‘Y1=[‘);
repeat
if i in y then
begin
include(z,i);
mosh:=mosh+1;
write(‘ ‘, i:3, ‘ ‘);
end;
inc(i,25);
until i>n;
writeln(‘]’);
writeln(»);
{вывод мощности множества Y1 на экаран}
write(‘Moshchnost mnozhestva Y1 ravna ‘);
writeln(mosh);
writeln(»);
writeln(»);
readln;
end.
Тестирование программы.
Тест 1.
Исходные данные:
X1= |
[1 |
2 |
3 |
4 |
5 |
6 |
25 |
50 |
75 |
100] |
X2= |
[7 |
8 |
9 |
10 |
11 |
12 |
25 |
50 |
75 |
100] |
X3= |
[13 |
14 |
15 |
16 |
17 |
18 |
25 |
50 |
75 |
100] |
Ожидаемый результат:
Y= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
50 |
75 |
100] |
|||||
Y1= |
[25 |
50 |
75 |
100] |
||||||
Mosh= |
4 |
Тест 2.
Исходные данные:
X1= |
[1 |
2 |
3 |
4 |
5 |
6 |
25 |
50 |
75 |
100] |
X2= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
X3= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
Ожидаемый результат:
Y= |
[1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
25 |
50 |
75 |
100] |
||||||||
Y1= |
[25 |
50 |
75 |
100] |
||||||
Mosh= |
4 |
Тест 3.
Исходные данные:
X1= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
X2= |
[1 |
2 |
3 |
4 |
5 |
6 |
25 |
50 |
75 |
100] |
X3= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
Ожидаемый результат:
Y= |
[1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
25 |
50 |
75 |
100] |
||||||||
Y1= |
[25 |
50 |
75 |
100] |
||||||
Mosh= |
4 |
Тест 4.
Исходные данные:
X1= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
X2= |
[1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
X3= |
[1 |
2 |
3 |
4 |
5 |
6 |
25 |
50 |
75 |
100] |
Ожидаемый результат:
Y= |
[1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10] |
|
Y1= |
[] |
|||||||||
Mosh= |
0 |