Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с задачей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Avalon
Задача 1. Круговая площадь

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

Ограничения: во входных данных целые числа и по модулю не превосходят 1000.
Ввод из файла krug.in. В первой строке находятся шесть вещественных чисел через пробел - координаты центров и радиусы двух кругов: x1, y1, R1, x2, y2, R2.
Вывод на экран. Вывести одно вещественное число с одним знаком после запятой - площадь пересечения кругов.
Пример
Ввод
20 30 15 40 30 30
Вывод
608.4



Как я понимаю:
1. Определить непересекаемость: R1 + R2<= SQRT(SQR(X1-X2)+SQR(Y1-Y2)), тогда площадь=0
2. Определить вложенность R2 в R1:
SQRT(SQR(X1)+SQR(Y1)) + R1 >= SQRT(SQR(X2)+SQR(Y2)) + R2, тогда
S = Pi*sqr(R2)



P.S. Поиск юзал, ничего подобного не нашол
volvo
Вот тут посмотри: АлгоЛист - Перекрытие кругов , там приведен ход решения, останется только запрограммировать...
Avalon
помогите запрограммировать пожалуйста !help.gif ypriamii.gif
volvo
Поможем... Ты начни хотя бы. А то мало того, что почти все правила нарушены, задача олимпиадная (и, кстати, конкурсная к тому же), так ты еще хочешь, чтобы за тебя ее решили, а ты только пошел и сдал?

P.S. И не надо писать

begin
end.
и говорить, что ты начал, а дальше у тебя не получается и тебе уже нужна помощь. Значит, иди и читай книгу о Паскале...
Michael_Rybak
 ! 
Avalon, кнопку "жалоба" использовать можно только по назначению. Свою самооценку оставь при себе.

Avalon
вот моё начало, дальше я не понимаю
Код
program x3;
const Pi=3,14;
var
x1,x2,y1,y2,r1,r2,S:integer;
begin
readln (x1,y1,R1,x2,y2,R2);
{Assign(input, ‘krug.in’);
Reset (input);}  
if R1+R2<=SQRT(SQR(X1-X2)+SQR(Y1-Y2)) then
s:=0;
else
if SQRT(SQR(X1)+SQR(Y1))+R1>=SQRT(SQR(X2)+SQR(Y2))+R2 then S:=Pi*sqr(R2) else
begin

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.