Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Learn more about F# at http://fsharp.net
- // See the 'F# Tutorial' project for more help.
- //
- // Program operujący na ułamkach dziesiętnych
- type ulam = int*int
- exception DzieleniePrzezZero
- //////////////////////////// ZADANIE 1
- let ( ++ ) (a, b) (c, d) =
- if (b = 0 || d = 0) then
- raise DzieleniePrzezZero
- else (a*d + b*c, b*d);
- let niepoprawny = (1, 1) ++ (1, 2)
- //////////////////////////// ZADANIE 2
- type ulamek = {licznik: int; mianownik: int}
- let jednadrugaa = { licznik = 1; mianownik = 2 }
- let dwietrzecie = { licznik = 2; mianownik = 3 }
- let ( ++++ ) (x: ulamek) (y: ulamek) =
- if (x.mianownik = 0 || y.mianownik = 0) then
- raise DzieleniePrzezZero
- else
- {licznik = x.licznik * y.mianownik + x.mianownik * y.licznik; mianownik = x.mianownik * y.mianownik}
- let abc = jednadrugaa ++++ dwietrzecie
- printfn "%A" abc
- //////////////////////////// ZADANIE 3
- let rec NWD = function
- | (0, n) -> n
- | (m, n) -> NWD(n % m, m)
- 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)
- let ( ** ) (a, b) (c, d) = skroc(a*c, b*d)
- let skrocony = (1, 3) ** (3, 2)
- printfn "%A" skrocony
- /////////////////////////// ZADANIE 11
- type ksiazka = {tytul: string; autor: string; rok: int; mutable cena: decimal}
- let ksiazkaa = {tytul = "KsiazkaA"; autor = "AAutor"; rok = 1998; cena = 10.20M}
- let ksiazkab = {tytul = "KsiazkaB"; autor = "BAutor"; rok = 1999; cena = 12.50M}
- let zmienCene (x: ksiazka, c: decimal) =
- if(x.cena > c) then
- x.cena <- c
- zmienCene(ksiazkaa, 20.00M)
- zmienCene(ksiazkab, 11.50M)
- printfn "%M" ksiazkaa.cena
- printfn "%M" ksiazkab.cena
- [<EntryPoint>]
- let main argv =
- printfn "%A" argv
- 0 // return an integer exit code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement