Сначала переводим числа 6 и 4 в 2-ную систему. Для этого делим всё время на 2 с остатком:
6 / 2 = 3 (остаток 0)
3 / 2 = 1 (остаток 1)
Выписываем последний результат деления (1) и все остатки, начиная с конца:
1 1 0
Таким образом:
Аналогично:
Умножаем: 110 х 100 = 11000
Тут действует такое же правило, что и для обычных десятичных чисел: чтобы умножить на 10, 100, 1000, 10000 и т.д., достаточно просто дописать справа столько нулей, сколько их есть в этом множителе. А вобще умножение двоичных чисел выполняется точно так же, как и десятичных - если нужно, то в столбик. Двоичную "Таблицу умножения" очень легко выучить наизусть:
0 х 0 = 0
0 х 1 = 0
1 х 0 = 0
1 х 1 = 1
Когда при умножении в столбик мы складываем промежуточные результаты, правила тоже простые:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 0
1 + 1 = 10
(смотри пример умножения на прикреплённом рисунке)
Program Dafnochka;
uses crt;
type
TypeD=set of 0..10;
var
dr,d1,d2,d3:TypeD;
c:integer;
begin
d1:=[2,4,6,8];
d2:=[0,1,2,3,5];
d3:=[1,3,5,7,9];
{вывод множеств}
writeln('Множество D1:');
for c:=0 to 10 do
if c in d1 then
write (' ',c,' ');
writeln();
writeln();
writeln('Множество D2:');
for c:=0 to 10 do
if c in d2 then
write (' ',c,' ');
writeln();
writeln();
writeln('Множество D3:');
for c:=0 to 10 do
if c in d3 then
write (' ',c,' ');
writeln();
writeln();
{примеры}
dr:=d1+d2;
writeln('Пример 1 - объединение множеств D1 U D2');
for c:=0 to 10 do
if c in dr then
write (' ',c,' ');
writeln();
dr:=d2-d3;
writeln();
writeln('Пример 2 - разность множеств D2\D3');
for c:=0 to 10 do
if c in dr then
write (' ',c,' ');
writeln();
dr:=d2*d3;
writeln();
writeln('Пример 3 - пересечение множеств D2 П D3');
for c:=0 to 10 do
if c in dr then
write (' ',c,' ');
writeln();
end.