3 / 3 / 0
Регистрация: 03.03.2011
Сообщений: 27
1

Найти пару кругов, имеющих наибольшую площадь и не перекрывающих друг друга

03.03.2011, 13:50. Показов 1208. Ответов 1
Метки нет (Все метки)

Помогите написать, заранее благодарен.

Четыре круга заданы радиусами и координатами своих центров на плоскости. Найти пару кругов, имеющих наибольшую площадь и не перекрывающих друг друга.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2011, 13:50
Ответы с готовыми решениями:

Найти пару кругов, имеющих наибольшую площадь и не перекрывающих друг друга
Ребят, помогите, без них до сессии не допускают( Задача 2.1. Четыре круга заданы радиусами и...

Движение окон по часовой стрелке, не перекрывающих друг друга
В общем, есть такой код. Вроде работает, но если можно ещё больше упростить, подскажите как. Окно...

Рекурсия: найти пару треугольников, максимально удаленных друг от друга
Пусть дано n треугольников, заданных координатами своих вершин. Найдите пару треугольников,...

Найти среди точек пару наиболее удаленных друг от друга
Даны n точек плоскости (x1,y2),...(xn,yn). Найти среди них пару наиболее удаленных друг от друга. ...

1
19 / 19 / 13
Регистрация: 02.11.2009
Сообщений: 118
03.03.2011, 14:15 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
39
40
41
42
43
44
45
46
47
48
label ex;
type krug = record
  x,y : double;
  r : double;
end;
 
Function S(a, b : krug) : double;
begin
  S := sqr(a.r)*pi + sqr(a.r)*pi;
end;
 
Function P(a, b : krug) : boolean;
begin
  if sqrt(sqr(a.x - b.x) + sqr(a.y - b.y)) - a.r - b.r > 0
  then P := true
  else P := false;
end;
 
var
  ar : array [1..4] of krug;
  i, j, m1, m2 : integer;
  smax : double;
begin
  Write('1-y krug : '); Readln(ar[1].x, ar[1].y, ar[1].r);
  Write('2-y krug : '); Readln(ar[2].x, ar[2].y, ar[2].r);
  Write('3-y krug : '); Readln(ar[3].x, ar[3].y, ar[3].r);
  Write('4-y krug : '); Readln(ar[4].x, ar[4].y, ar[4].r);
 
  smax := 0; m1 := 0; m2 := 0;
  for i := 1 to 4 do
    for j := 1 to 4 do
      if (i <> j) and P(ar[i], ar[j])
      then
        if smax < S(ar[i], ar[j])
        then begin
          m1 := i;
          m2 := j;
          smax :=  S(ar[i], ar[j]);
          goto ex;
        end;
 
  ex :
  if smax > 0
  then writeln('S = ', smax:0:10, ' ', m1:3, ' ', m2)
  else writeln('Net');
 
  readln;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2011, 14:15
Помогаю со студенческими работами здесь

Дана последовательность х1,х2,…,х. Найти наибольшую сумму элементов отличающихся друг от друга 1цей и расположенных по
Дана последовательность х1,х2,…,х. Найти наибольшую сумму элементов отличающихся друг от друга...

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

Вычислить площади кругов и определить, какой круг имеет наибольшую площадь
Три круга заданы своими радиусами R1, R2, R3. Вычислить площади кругов и определить, какой круг...

Определить пару наиболее удаленный друг от друга точек.
четыре точки заданы координатами: А(4,8:-3) В(-6,5:1,2) С(-3,7:-4,5) D(7,8:2). Определить пару...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru