Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- exception DzieleniePrzezZero
- let ( ++ ) (a, b) (c, d) = (a*d + b*c, b*d)
- let ( -- ) (a, b) (c, d) = (a*d - b*c, b*d)
- let ( ** ) (a, b) (c, d) = (a*c, b*d)
- let ( /./ ) (a, b) (c, d) = (a,b) ** (d,c)
- let ( == ) (a, b) (c, d) = (a*d = b*c)
- (* najwiekszy wspolny dzielnik *)
- let rec NWD = function
- | (0, n) -> n
- | (m, n) -> NWD (n % m, m)
- (* skrocenie ulamka *)
- let skroc (l, m) =
- let znak = if l * m < 0 then -1 else 1
- let al = abs l
- let am = abs m
- let d = NWD (al, am)
- in (znak * (al / d), am / d)
- (* zamiana ulamka na string *)
- let naString (l, m) =
- let znak = if l*m<0 then "-" else "" (* deklaracje wewnetrzne *)
- let al = abs l (* wart.bezw. = liczba nat. *)
- let am = abs m
- let d = NWD(al, am)
- in znak + (System.Convert.ToString(al / d))
- + "/" + (System.Convert.ToString(am / d))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement