jandar200
25.04.2022 19:26

Замените цикл repeat-until на другой

var x1,x2,y1,x3,x4,y2,s:real;
begin
clrscr;
repeat
writeln('Введите абциссы вертикальных сторон первого прямоугольника x2>x1>=0');
readln(x1,x2);
until(x1>=0)and(x2>x1);
repeat
write('Ордината верхней стороны y1>0 y1=');
readln(y1);
until y1>0;
repeat
writeln('Введите абциссы вертикальных сторон второго прямоугольника x4>xx>=0');
readln(x3,x4);
until(x3>=0)and(x4>x3);
repeat
write('Ордината верхней стороны y2>0 y2=');
readln(y2);
until y2>0;
if (x3>=x2)or(x4<=x1) then write('Прямоугольники не пересекаются!')
else
begin
if y1>=y2 then
begin
if(x3>=x1)and(x4<=x2)then s:=(x4-x3)*y2 else
if(x3>=x1)and(x4>=x2)then s:=(x2-x3)*y2 else
if(x3<=x1)and(x4>=x2)then s:=(x2-x1)*y2 else
if(x3<=x1)and(x4<=x2)then s:=(x4-x1)*y2
end
else
begin
if(x3>=x1)and(x4<=x2)then s:=(x4-x3)*y1 else
if(x3>=x1)and(x4>=x2)then s:=(x2-x3)*y1 else
if(x3<=x1)and(x4>=x2)then s:=(x2-x1)*y1 else
if(x3<=x1)and(x4<=x2)then s:=(x4-x1)*y1
end;
write('Прямоугольники пересекаются, площадь пересечения=',s:0:2);
end;
readln
end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
gushagusha
20.08.2022 03:02
Если на C++, то вот процедуры:
если с библиотеки graphics.h
x и y нужно передавать левого верхнего угла буквы

#include <graphics.h>
#include <stdio.h>
#include <conio.h>
int x=50,y=50;
void M(int x,int y)
{ // длина буквы 44, высота тоже 44
x+=50;
line(x,y,x,y+44);
line(x,y,x+22,y+44);
line(x+22,y+44,x+44,y);
line(x+22,y+44,x+44,y+44);
}
void I(int x,int y)
{ // длина буквы 22, высота тоже 44
x+=28;
line(x,y,x,y+44);
line(x,y+44,x+22,y);
line(x+22,y,x+22,y+44);
}
void R(int x,int y)
{ // длина буквы 22, высота тоже 44
x+=28;
line(x,y,x,y+44);
line(x,y,x+22,y);
line(x,y+22,x+22,y+22);
line(x+22,y,x+22,y+22);
}

main()
{
initwindow(800,600);
M(x,y); I(x,y); R(x,y);
x=50;y=100;
R(x,y); I(x,y); M(x,y);
x=50;y=150;
M(x,y); I(x,y); M(x,y);
getch();
closegraph();
}

P.S. я старался
0,0(0 оценок)
Ответ:
F3ren9d
20.08.2022 03:02
Если на C++, то вот процедуры:
если с библиотеки graphics.h
x и y нужно передавать левого верхнего угла буквы

#include <graphics.h>
#include <stdio.h>
#include <conio.h>
int x=50,y=50;
void M(int x,int y)
{ // длина буквы 44, высота тоже 44
x+=50;
line(x,y,x,y+44);
line(x,y,x+22,y+44);
line(x+22,y+44,x+44,y);
line(x+22,y+44,x+44,y+44);
}
void I(int x,int y)
{ // длина буквы 22, высота тоже 44
x+=28;
line(x,y,x,y+44);
line(x,y+44,x+22,y);
line(x+22,y,x+22,y+44);
}
void R(int x,int y)
{ // длина буквы 22, высота тоже 44
x+=28;
line(x,y,x,y+44);
line(x,y,x+22,y);
line(x,y+22,x+22,y+22);
line(x+22,y,x+22,y+22);
}

main()
{
initwindow(800,600);
M(x,y); I(x,y); R(x,y);
x=50;y=100;
R(x,y); I(x,y); M(x,y);
x=50;y=150;
M(x,y); I(x,y); M(x,y);
getch();
closegraph();
}

P.S. я старался
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота