Программа на PascalABC
Program 29844007;
uses
GraphABC;
var
XL1,YL1,XR1,YR1:integer; ///координаты первого прямоугольника
XL2,YL2,XR2,YR2:integer; ///координаты второго прямоугольника
XL0,YL0,XR0,YR0:integer; ///координаты результата
s:string; ///строка для вывода результатов;
begin
Window.SetSize(700,700);
writeln('Первый прямоугольник: ');
writeln('Введите X левого нижнего угла ');read(XL1);
writeln('Введите Y левого нижнего угла ');read(YL1);
writeln('Введите X правого верхнего угла ');read(XR1);
writeln('Введите Y правого верхнего угла ');read(YR1);
writeln('Второй прямоугольник: ');
writeln('Введите X левого нижнего угла ');read(XL2);
writeln('Введите Y левого нижнего угла ');read(YL2);
writeln('Введите X правого верхнего угла ');read(XR2);
writeln('Введите Y правого верхнего угла ');read(YR2);
if XL1<XL2 then XL0:=XL1 else XL0:=XL2;
if YL1<YL2 then YL0:=YL1 else YL0:=YL2;
if XR1<XR2 then XR0:=XR2 else XR0:=XR1;
if YR1<YR2 then YR0:=YR2 else YR0:=YR1;
/// Выводим сначала результирующий прямоугольник синим цветом
Brush.Color := clBlue;
Rectangle(XL0,700-YL0,XR0,700-YR0);
/// Рисуем первый прямоугольник красным цветом
Brush.Color := clRed;
Rectangle(XL1,700-YL1,XR1,700-YR1);
/// Выводим второй прямоугольник зелёным
Brush.Color := clGreen;
Rectangle(XL2,700-YL2,XR2,700-YR2);
/// Выводим кординаты
Brush.Color := clWhite;
s:='Координаты левого нижнего угла: '+ IntToStr(XL0)+' '+IntToStr(YL0);
TextOut(0,0,s);
s:='Координаты правого верхнего угла: '+ IntToStr(XR0)+' '+IntToStr(YR0);
TextOut(0,20,s);
end.
Пример вывода на прикреплённом рисунке.
1) 89₁₀ = 1011001₂
2) 600₁₀ = 100101100₂
3) 2010₁₀ = 11111011010₂
1) 513₁₀ = 1001₈
2) 600₁₀ = 1130₈
3) 2010₁₀ = 3732₈
Объяснение:
1)
89 / 2 = 44 + остаток 1
44 / 2 = 22 + остаток 0
22 / 2 = 11 + остаток 0
11 / 2 = 5 + остаток 1
5 / 2 = 2 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
89₁₀ = 1011001₂
2)
600 / 2 = 300 + остаток 0
300 / 2 = 150 + остаток 0
150 / 2 = 75 + остаток 0
75 / 2 = 37 + остаток 1
37 / 2 = 18 + остаток 1
18 / 2 = 9 + остаток 0
9 / 2 = 4 + остаток 1
4 / 2 = 2 + остаток 0
2 / 2 = 1 + остаток 0
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
600₁₀ = 100101100₂
3)
2010 / 2 = 1005 + остаток 0
1005 / 2 = 502 + остаток 1
502 / 2 = 251 + остаток 0
251 / 2 = 125 + остаток 1
125 / 2 = 62 + остаток 1
62 / 2 = 31 + остаток 0
31 / 2 = 15 + остаток 1
15 / 2 = 7 + остаток 1
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
2010₁₀ = 11111011010₂
1)
513 / 8 = 64 + остаток 1
64 / 8 = 8 + остаток 0
8 / 8 = 1 + остаток 0
1 / 8 = 0 + остаток 1
записываем остатки снизу вверх
513₁₀ = 1001₈
2)
600 / 8 = 75 + остаток 0
75 / 8 = 9 + остаток 3
9 / 8 = 1 + остаток 1
1 / 8 = 0 + остаток 1
записываем остатки снизу вверх
600₁₀ = 1130₈
3)
2010 / 8 = 251 + остаток 2
251 / 8 = 31 + остаток 3
31 / 8 = 3 + остаток 7
3 / 8 = 0 + остаток 3
записываем остатки снизу вверх
2010₁₀ = 3732₈