складіть програму для малювання шести прямокутників з довжинами сторін a та b, які вводяться на початку роботи програми. прямокутники знаходяться один від одного на відстані 10 одиниць
Алгоритм перевода чисел из одной системы счисления в другую наиболее прост в том случае, когда одно из оснований этих систем является степенью другой, как, например, в случае двоичной и восьмеричной систем счисления. В таком случае алгоритм перевода состоит в простой замене чисел одной системы на равные им числа другой системы счисления (в случае положительных чисел). На начальном этапе удобно и полезно воспользоваться таблицей соответствия, приведенной в Приложении. Пусть требуется перевести восьмеричное число 24738 в двоичное число. Воспользовавшись Таблицей соответствия из Приложения, получим:
24738 = 101001110112, поскольку 28 = 0102, 48 = 1002, 78 = 1112... Следует помнить, что восьмеричное число кодируется тремя битами, и выписывать триады нужно полностью. Исключением из этого правила может служить только старшая триада, в которой старший бит (СБ) равен нулю. Сложнее обстоит дело при переводе чисел из восьмеричной системы в шестнадцатеричную. Обычно вначале переводят восьмеричное число в двоичное, а затем уже в шестнадцатеричное по алгоритму, описанному в разделе Перевод чисел из двоичной системы в восьмеричную и шестнадцатеричную. Для рассмотренного выше примера имеем: 24738 = 101001110112 = 0101 0011 10112 = 53B16
Var H1:array[1..5] of integer; H2:array[1..8] of integer; N1:array[1..5] of integer; N2:array[1..8] of integer; i, j:integer;
begin randomize; for i:=1 to 5 do {заполняем массивы} begin H1[i]:=random(10); N1[i]:=random(10); end; for i:=1 to 8 do begin H2[i]:=random(10); N2[i]:=random(10); end; for i:=1 to 5 do {сравниваем продукцию} for j:=1 to 8 do if N1[i]=N2[j] then writeln(i, ' и ', j, ' Выпускают одинаковую продукц.'); write('H1 ');{выводим массивы} for i:=1 to 5 do write(H1[i], ' '); writeln; write('N1 '); for i:=1 to 5 do write(n1[i], ' '); writeln; write('H2 '); for i:=1 to 8 do write(H2[i], ' '); writeln; write('N2 '); for i:=1 to 8 do write(N2[i], ' '); writeln; end.
24738 = 101001110112,
поскольку 28 = 0102, 48 = 1002, 78 = 1112... Следует помнить, что восьмеричное число кодируется тремя битами, и выписывать триады нужно полностью. Исключением из этого правила может служить только старшая триада, в которой старший бит (СБ) равен нулю. Сложнее обстоит дело при переводе чисел из восьмеричной системы в шестнадцатеричную. Обычно вначале переводят восьмеричное число в двоичное, а затем уже в шестнадцатеричное по алгоритму, описанному в разделе Перевод чисел из двоичной системы в восьмеричную и шестнадцатеричную. Для рассмотренного выше примера имеем:
24738 = 101001110112 = 0101 0011 10112 = 53B16
H2:array[1..8] of integer;
N1:array[1..5] of integer;
N2:array[1..8] of integer;
i, j:integer;
begin
randomize;
for i:=1 to 5 do {заполняем массивы}
begin
H1[i]:=random(10);
N1[i]:=random(10);
end;
for i:=1 to 8 do
begin
H2[i]:=random(10);
N2[i]:=random(10);
end;
for i:=1 to 5 do {сравниваем продукцию}
for j:=1 to 8 do
if N1[i]=N2[j] then writeln(i, ' и ', j, ' Выпускают одинаковую продукц.');
write('H1 ');{выводим массивы}
for i:=1 to 5 do
write(H1[i], ' ');
writeln;
write('N1 ');
for i:=1 to 5 do
write(n1[i], ' ');
writeln;
write('H2 ');
for i:=1 to 8 do
write(H2[i], ' ');
writeln;
write('N2 ');
for i:=1 to 8 do
write(N2[i], ' ');
writeln;
end.