Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. // Learn more about F# at http://fsharp.net
  2. // See the 'F# Tutorial' project for more help.
  3. let rec NWD = function
  4. | (0, n) -> n
  5. | (m, n) -> NWD(n % m, m)
  6.  
  7. let skroc (l,m) =
  8. let znak = if l*m<0 then -1 else 1
  9. let al = abs l
  10. let am = abs m
  11. let d = NWD(al,am)
  12. in (znak * (al / d), am / d)
  13.  
  14. let naString (l, m) =
  15. let znak = if l*m<0 then "-" else "" (* deklaracje wewnetrzne
  16. *)
  17. let al = abs l (* wart.bezw. = liczba nat.
  18. *)
  19. let am = abs m
  20. let d = NWD(al, am)
  21. in znak + (System.Convert.ToString(al / d))
  22. + "/" + (System.Convert.ToString(am / d))
  23.  
  24. [<EntryPoint>]
  25. let main argv =
  26. let ( ++ ) (a, b) (c, d) = (a*d + b*c, b*d)
  27. let ( -- ) (a, b) (c, d) = (a*d - b*c, b*d)
  28. let ( ** ) (a, b) (c, d) = (a*c, b*d)
  29. let ( /./ ) (a, b) (c, d) = (a,b) ** (d,c)
  30. let ( == ) (a, b) (c, d) = (a*d = b*c)
  31.  
  32. let a= (1,2) ++ (2,3)
  33. let b = 1./2. + 2./3. * 3./4.
  34. let c = (1, 2) ++ (2, 3) ** (3, 4)
  35. printfn "pierwsze %A" a
  36. printfn "drugie %A" b
  37. printfn "trzecie %A" c
  38. let q1 = (-2, 3);
  39. let q2 = (5, -10);
  40. let q3 = q1 ++ q2
  41. let q3_1 = q1 -- q2
  42. let q4 = q2 **q3
  43. let q5 = q4 /./ q3
  44. let q5_1 = q1 == q2
  45. let ns1 = naString q4
  46. let ns2 = naString q5
  47.  
  48. printfn "q1= %A" q1
  49. printfn "q2= %A" q2
  50. printfn "q3= %A" q3
  51. printfn "q31= %A" q3_1
  52. printfn "q4= %A" q4
  53. printfn "q5= %A" q5
  54. printfn "q51= %A" q5_1
  55. printfn "ns1= %A" ns1
  56. printfn "ns2= %A" ns2
  57.  
  58. 0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement