Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2014, 17:17   #11
tszavyalova
Новичок
Джуниор
 
Регистрация: 20.01.2014
Сообщений: 8
По умолчанию

Сначала нужно проверить пересекаются ли между собой вертикальные полосы, потом горизонтальные. Если пересечения нет в первом , во втором случае или в обоих, то пересечения не будет. А если есть, то найти пери метр и площадь пересечения
tszavyalova вне форума Ответить с цитированием
Старый 22.01.2014, 17:35   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,427
По умолчанию

То есть нужно найти прямоугольник, представляющий собой пересечение всех горизонтальных и вертикальных полос одновременно?
Если да, то:
Код:
readln(n, k);
readln(xmin, xmax);
for i := 1 to n - 1 do
begin
  readln(a, b);
  if a > xmin then
    xmin := a;
  if b < xmax then
    xmax := b;
end;
readln(ymin, ymax);
for i := 1 to k - 1 do
begin
  readln(a, b);
  if a > ymin then
    ymin := a;
  if b < ymax then
    ymax := b;
end;
if (xmax <= xmin) or (ymax <= ymin) then
  write('Нет пересечения')
else
  write('S = ', (xmax - xmin) * (ymax - ymin), '; P = ', 2 * (xmax + ymax - xmin - ymin));
Можно написать оптимальнее.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 22.01.2014 в 17:41.
BDA вне форума Ответить с цитированием
Старый 22.01.2014, 17:41   #13
tszavyalova
Новичок
Джуниор
 
Регистрация: 20.01.2014
Сообщений: 8
По умолчанию

Координаты пересечения на вашей схеме: лев. ниж. точка прямоугольника (7,3), прав. верх точка (8,5)
tszavyalova вне форума Ответить с цитированием
Старый 22.01.2014, 17:44   #14
tszavyalova
Новичок
Джуниор
 
Регистрация: 20.01.2014
Сообщений: 8
По умолчанию

Да, если можно оптимальнее!! Спасибо!
tszavyalova вне форума Ответить с цитированием
Старый 22.01.2014, 20:02   #15
tszavyalova
Новичок
Джуниор
 
Регистрация: 20.01.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
То есть нужно найти прямоугольник, представляющий собой пересечение всех горизонтальных и вертикальных полос одновременно?
Если да, то:
Код:
readln(n, k);
readln(xmin, xmax);
for i := 1 to n - 1 do
begin
  readln(a, b);
  if a > xmin then
    xmin := a;
  if b < xmax then
    xmax := b;
end;
readln(ymin, ymax);
for i := 1 to k - 1 do
begin
  readln(a, b);
  if a > ymin then
    ymin := a;
  if b < ymax then
    ymax := b;
end;
if (xmax <= xmin) or (ymax <= ymin) then
  write('Нет пересечения')
else
  write('S = ', (xmax - xmin) * (ymax - ymin), '; P = ', 2 * (xmax + ymax - xmin - ymin));
Можно написать оптимальнее.
Что обозначают в этой программе переменные a, b?
tszavyalova вне форума Ответить с цитированием
Старый 22.01.2014, 23:31   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от tszavyalova Посмотреть сообщение
Что обозначают в этой программе переменные a, b?
координаты полос (в a считывается координата начала полосы, в b координата окончания полосы)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Площадь пересечения двух прямоугольников makskovalko Помощь студентам 2 15.04.2013 16:09
площадь треугольника в pascal ank1ne Паскаль, Turbo Pascal, PascalABC.NET 3 20.09.2011 12:10
площадь фигуры ограниченной эллипсом Pascal lirikoff Помощь студентам 0 20.05.2011 21:24
Площадь пересечения двух фигур Marsel737 Общие вопросы Delphi 4 04.09.2010 20:38
Pascal. Площадь пересечения кругов TOSAgrk Помощь студентам 1 05.02.2009 04:23