Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ задача про окружности

Автор: *оля* 23.09.2011 22:28

Здравствуйте.
Вот такая задачка:

написать функцию isIncluded, аргументами которой служат параметры двух окружностей на плоскости (координаты центров и радиусы);
функция возвращает True, если вторая окружность целиком содержится внутри первой.

я решаю вот так:

Код

isIncluded :: Double->Double->Double->Double->Double->Double->Bool
isIncluded x1 y1 r1 x2 y2 r2 = if (sqrt((x2-x1)^2+(y2-y1)^2)+r2)<=r1 then True
    else False


Подскажите пожалуйста, все ли правильно и можно ли вообще так писать?
Просто только начала изучать язык, поэтому не совсем все понятно.
заранее спасибо

Автор: IUnknown 23.09.2011 23:39

Можно и так, конечно, но зачем явно указывать True/False, если Haskel сам в состоянии разобраться:

Код
isIncluded :: Double -> Double -> Double -> Double -> Double -> Double -> Bool
isIncluded x1 y1 r1 x2 y2 r2 =
    (sqrt((x2 - x1)^2 + (y2 - y1)^2) + r2) <= r1