Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8

Найти площадь пересечения трех заданных квадратов

06.10.2016, 20:18. Показов 1162. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На плоскости изображены три квадрата,стороны которых параллельны осям координат.Требуется найти площадь из пересечения.Требуется вывести одно число-площадь пересечения трех квадратов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2016, 20:18
Ответы с готовыми решениями:

Найти сумму координат точек пересечения диагоналей трёх квадратов
Помогите, пожалуйста, решать задачу. На плоскости расположены три квадрата так, что их стороны параллельны осям координат. Для каждого...

Определить функцию,которая находит точки пересечения трех заданных функций
Определите три функции: а) для прямой kx + b; б) для смещённой параболы kx2 + b; В) для экспоненты kebx. Определите функцию,...

Найти площадь пересечения трёх кружочков
Помогите написать программку в QBASIC!!!! Дано три кружочка(они все пересекаються), нужно найти площадь пересечения всех трёх...

15
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 13:10
Квадраты как задаются?

Добавлено через 1 час 43 минуты
Можно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function min(a,b:integer):integer;
begin
if a<b then min:=a else min:=b;
end;
function max(a,b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
procedure vvod(var x1,y1,x2,y2:integer; k:integer);
begin
repeat
writeln('Введите координаты левой верхней и правой нижней вершин квадрата ',k);
readln(x1,y1,x2,y2);
until(x2>x1)and(y2<y1)and(x2-x1=y1-y2);
end;
var x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,
    x11,y11,x12,y12,x13,y13,x14,y14,s:integer;
begin
vvod(x1,y1,x2,y2,1);
vvod(x3,y3,x4,y4,2);
vvod(x5,y5,x6,y6,3);
x11:=max(min(x1,x2),min(x3,x4));
x12:=min(max(x1,x2),max(x3,x4));
y11:=max(min(y1,y2),min(y3,y4));
y12:=min(max(y1,y2),max(y3,y4));
s:=(x12-x11)*(y12-y11);
if s<=0 then writeln('Все три квадрате не пересекаются')
else
 begin
  x13:=max(min(x11,x12),min(x5,x6));
  x14:=min(max(x11,x12),max(x5,x6));
  y13:=max(min(y11,y12),min(y5,y6));
  y14:=min(max(y11,y12),max(y5,y6));
  s:=(x14-x13)*(y14-y13);
  if s<=0 then writeln('Все три квадрате не пересекаются')
  else writeln('Площадь пересечения=',s);
 end;
end.
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 18:50  [ТС]
Квадраты задаются одним числом являющемся площадью и координатой правой верхней точки
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 18:54
Очень остроумно, Ваша фамилия не Собачевский?
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 19:27  [ТС]
Извините если обидел,допустил ошибку.
Данные для каждого квадрата описываются отдельной строкой которая содержит координаты его левого верхнего угла и длину стороны.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 19:34
Для того чтобы перейти к моему коду нужно сделать так
Для каждой строки
Прочитать x1,y1,a и вычислить x2,y2. x2:=x1+a, y2:=y1+a;
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 19:35  [ТС]
Я совсем,совсем слаб в программировании,можно по-конкретнее куда?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 19:37
А можно написать полное и точное условие, а то кажется Вы половину скрыли.
Цитата Сообщение от DironN Посмотреть сообщение
Я совсем,совсем слаб в программировании,
Ну и какого лешего лезете в него? Нет способностей к учебе, завязывайте.
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 19:53  [ТС]
Большое спасибо за помощь начинающему в программировании

Добавлено через 13 минут
На плоскости изображены 3 квадрата,стороны которых параллельны осям координат.Требуется найти площадь их пересечения.Данные для каждого квадрата описываются отдельной строкой,которая содержит координаты его левого верхнего угла и длину стороны.Все эти числа по модулю не превышают 100.Требуется вывести одно число-площадь пересечения 3 квадратов.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 20:02
Это задача с проверочного ресурса? Какие там требования, каков ввод, про какие строки Вы пишете, где они?
какие языки программирования принимаются?
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 20:10  [ТС]
Принимается на Pascal.
Пример входных данных: Пример выходных данных:
1 3 3
2 2 6
3 1 4
Пример выходных данных:
2
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 20:34
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function min(a,b:integer):integer;
begin
if a<b then min:=a else min:=b;
end;
function max(a,b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
 
var x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,
    a1,a2,a3,x11,y11,x12,y12,x13,y13,x14,y14,s1,s2:integer;
begin
read(x1,y1,a1);
read(x3,y3,a2);
read(x5,y5,a3);
x2:=x1+a1;
y2:=y1+a1;
x4:=x3+a2;
y4:=y3+a2;
x6:=x5+a3;
y6:=y5+a3;
x11:=max(min(x1,x2),min(x3,x4));
x12:=min(max(x1,x2),max(x3,x4));
y11:=max(min(y1,y2),min(y3,y4));
y12:=min(max(y1,y2),max(y3,y4));
s1:=(x12-x11)*(y12-y11);
if s1<=0 then s2:=0
else
 begin
  x13:=max(min(x11,x12),min(x5,x6));
  x14:=min(max(x11,x12),max(x5,x6));
  y13:=max(min(y11,y12),min(y5,y6));
  y14:=min(max(y11,y12),max(y5,y6));
  s2:=(x14-x13)*(y14-y13);
 end;
write(s2);
end.
Добавлено через 6 минут
О,нет, это я сделал для вода координат левого нижнего угла, нужно чуть изменить.

Добавлено через 9 минут
Что-то совсем запутался, завтра посмотрю.
1
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 20:40  [ТС]
И на том огромное спасибо!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 21:21
А почему в примере ответ=2? Только путаете, у меня ответ=1.
Миниатюры
Найти площадь пересечения трех заданных квадратов  
0
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 8
07.10.2016, 21:23  [ТС]
Возможно,пример не верен,но там точно написано 2
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.10.2016, 22:56
Ну значит я не понимаю эту задачу и пас.
Создайте новую тему, эта испорчена, и напишите там полное и точное условие.

Добавлено через 26 секунд
Эту я потом удалю.

Добавлено через 1 час 30 минут
Вот так получается, но в примере ошибка.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function min(a,b:integer):integer;
begin
if a<b then min:=a else min:=b;
end;
function max(a,b:integer):integer;
begin
if a>b then max:=a else max:=b;
end;
var x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,
    a1,a2,a3,x11,y11,x12,y12,x13,y13,x14,y14,s:integer;
begin
read(x1,y1,a1);
read(x3,y3,a2);
read(x5,y5,a3);
x2:=x1+a1;
y2:=y1-a1;
x4:=x3+a2;
y4:=y3-a2;
x6:=x5+a3;
y6:=y5-a3;
x11:=max(min(x1,x2),min(x3,x4));
x12:=min(max(x1,x2),max(x3,x4));
y11:=max(min(y1,y2),min(y3,y4));
y12:=min(max(y1,y2),max(y3,y4));
if (x12-x11>0)and(y12-y11>0) then
s:=(x12-x11)*(y12-y11) else s:=0;
if s>0 then
 begin
  x13:=max(min(x11,x12),min(x5,x6));
  x14:=min(max(x11,x12),max(x5,x6));
  y13:=max(min(y11,y12),min(y5,y6));
  y14:=min(max(y11,y12),max(y5,y6));
  if (x14-x13>0)and(y14-y13>0) then
  s := (x14 - x13) * (y14 - y13) else s:=0;
 end;
write(s);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2016, 22:56
Помогаю со студенческими работами здесь

Вычислить площади трёх квадратов и сравнить их (найти наименьшую площадь)
Не работает. Подскажите, где я напортачил? #include&lt;stdio.h&gt; #include&lt;math.h&gt; float pl(a:float); {float:s; s=a*a; ...

Подпрограммы. Найти пять чисел, чтобы сумма квадратов наибольших равнялась сумме квадратов трех остальных
Попытайтесь найти пять идущих подряд целых чисел, таких, чтобы сумма квадратов двух наибольших из них равнялась сумме квадратов трех...

Найти 4 последовательных натуральных числа, сумма квадратов которых равна сумме квадратов трех следующих чисел
Найти такие четыре последовательных двузначных натуральных числа, сумма квадратов которых равна сумме квадратов трех следующих чисел.

На прямоугольнике размещено максимально возможное количество квадратов. Найти количество квадратов и площадь незанятой части прямоугольника
1.Даны целые положительные числа A,B,C. На прямоугольнике размером A х B размещено максимально возможное количество квадратов со стороной C...

Найти площадь пересечения кругов
Два круга разного диаметра пересекаются какой-то частью. Нужно рассчитать площадь пресечения этих кругов и от радиусов кругов и ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru