module Main where
data Tochka a = Tochka a a
instance (Show a
) => Show (Tochka a
) where show (Tochka x y
) = "pri x = " ++ show x
++ "\ty = " ++ show y
okrujnost r x0 y0
= \x
-> sqrt (r
** 2 - (x
- x0
) ** 2) - y0
liniya k x0 y0 = \x -> k * (x - x0) + y0
kusok1 r
= negate . okrujnost r
((-2) * r
) 0kusok2 r = liniya 1 (-r) 0
kusok3 r = okrujnost r 0 0
kusok4 r = liniya (-1) 0 r
kusok5 r = liniya (3 / 6) r 0
funkciya r x = Tochka x (y r x) where
y | x < (-3) * r = kusok0
| x < (-2) * r = kusok1
| x < (-r) = kusok2
| x < 0 = kusok3
| x < r = kusok4
sprositPro x = do
napechatatOtvet r
= putStrLn . (("Otvet na zadachu: dlya R = " ++ show r
++ "\t") ++) . show
main = do
r <- sprositPro "R"
x <- sprositPro "x"
let resultat = funkciya r x
napechatatOtvet r resultat
bW9kdWxlIE1haW4gd2hlcmUKCmRhdGEgVG9jaGthIGEgPSBUb2Noa2EgYSBhCgppbnN0YW5jZSAoU2hvdyBhKSA9PiBTaG93IChUb2Noa2EgYSkgd2hlcmUKICAgIHNob3cgKFRvY2hrYSB4IHkpID0gInByaSB4ID0gIiArKyBzaG93IHggKysgIlx0eSA9ICIgKysgc2hvdyB5Cgpva3J1am5vc3QgciB4MCB5MCA9IFx4IC0+IHNxcnQgKHIgKiogMiAtICh4IC0geDApICoqIDIpIC0geTAKbGluaXlhIGsgeDAgeTAgPSBceCAtPiBrICogKHggLSB4MCkgKyB5MAoKa3Vzb2swID0gY29uc3QgJCBjb25zdCAwCmt1c29rMSByID0gbmVnYXRlIC4gb2tydWpub3N0IHIgKCgtMikgKiByKSAwCmt1c29rMiByID0gbGluaXlhIDEgKC1yKSAwCmt1c29rMyByID0gb2tydWpub3N0IHIgMCAwCmt1c29rNCByID0gbGluaXlhICgtMSkgMCByCmt1c29rNSByID0gbGluaXlhICgzIC8gNikgciAwCgpmdW5rY2l5YSByIHggPSBUb2Noa2EgeCAoeSByIHgpIHdoZXJlCiAgICB5ICAgfCB4IDwgKC0zKSAqIHIgPSBrdXNvazAKICAgICAgICB8IHggPCAoLTIpICogciA9IGt1c29rMQogICAgICAgIHwgeCA8ICgtcikgICAgID0ga3Vzb2syCiAgICAgICAgfCB4IDwgMCAgICAgICAgPSBrdXNvazMKICAgICAgICB8IHggPCByICAgICAgICA9IGt1c29rNAogICAgICAgIHwgb3RoZXJ3aXNlICAgID0ga3Vzb2s1CgpzcHJvc2l0UHJvIHggPSBkbwogICAgcHV0U3RyTG4gJCAiVnZlZGl0ZSAiICsrIHggKysgIjoiCiAgICByZWFkTG4KCm5hcGVjaGF0YXRPdHZldCByID0gcHV0U3RyTG4gLiAoKCJPdHZldCBuYSB6YWRhY2h1OiBkbHlhIFIgPSAiICsrIHNob3cgciArKyAiXHQiKSArKykgLiBzaG93CgptYWluID0gZG8KICAgIHB1dFN0ckxuICJMYWJhIDEiCiAgICByIDwtIHNwcm9zaXRQcm8gIlIiCiAgICB4IDwtIHNwcm9zaXRQcm8gIngiCiAgICBsZXQgcmVzdWx0YXQgPSBmdW5rY2l5YSByIHgKICAgIG5hcGVjaGF0YXRPdHZldCByIHJlc3VsdGF0