Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 2.76 KB | None | 0 0
  1. //zad 1
  2. let PoleObw (a:float) (h:float) =
  3.     let Pole a h = a*h/2.0
  4.     let Obw a = a*3.0
  5.     (Pole a h, Obw a)
  6.  
  7.  
  8. let PszOsz (a:float) =
  9.     let Psz a = (a * a * sqrt 3.0) / 4.0
  10.     let Osz a = a*6.0
  11.     (Psz a, Osz a)
  12.  
  13. printfn "%A" (PoleObw 2.0 4.0)
  14. printfn "%A" (PszOsz 2.0 )
  15.  
  16.  
  17. //zad2
  18. let rec dod (x:int) (n:int) =
  19.     if n <= 1 then x
  20.     else x + (dod x (n-1))
  21.  
  22. printfn "%A" (dod 2 3)
  23.  
  24.  
  25. //zad 3
  26. let rec mno (x:int) (n:int) =
  27.     if n <= 1 then x
  28.     else x * (mno x (n-1))
  29.  
  30. printfn "%A" (mno 2 3)
  31.  
  32. //zad4
  33. let rec CoDrugi list ak =
  34.     match list with
  35.     | [] -> []
  36.     | x::xs -> if ak % 2 = 0 then x::CoDrugi xs (ak+1) else CoDrugi xs (ak+1)
  37. printfn "%A" (CoDrugi [ 1 ; 2 ; 3 ; 4] 0)
  38.  
  39. //zad5
  40. let CoDrugi2 list =
  41.     list |> List.mapi(fun i el -> el , i)
  42.           |> List.filter(fun (el,i) -> i % 2=0)
  43.           |> List.map fst
  44.  
  45. printfn "%A" (CoDrugi2 [1;2;3;4;5;8;8])
  46.  
  47. //zad6
  48. let rec ListaPodzN list ak n =
  49.     match list with
  50.     | [] -> []
  51.     | x::xs -> if x % n = 0 then x::ListaPodzN xs (ak+1) n else ListaPodzN xs (ak+1) n
  52. printfn "%A" (ListaPodzN [ 1 ; 2 ; 3 ; 4] 0 3)
  53.  
  54. //zad7
  55. let Filtr list n = List.filter(fun x -> x%n=0) list
  56. printfn "%A" (Filtr [2;3;5;4;6] 2)
  57.  
  58.  
  59. //zad8
  60. type ksiazka = {
  61.     tytul : string
  62.     autor : string
  63.     rok : int
  64.     wydawnictwo : string
  65.     strony : int
  66.     oprawa : bool
  67.     }
  68.  
  69. //zad9
  70.  
  71.  
  72. let mxmi list =
  73.    let rec min list m =
  74.         match list with
  75.         | [] -> m
  76.         | x::xs -> if x < m then min xs x else min xs m
  77.    let rec max list m =
  78.        match list with
  79.        | [] -> m
  80.        | x::xs -> if x > m then max xs x else max xs m
  81.    (min list (List.head list) , max list (List.head list))
  82.  
  83. printfn "%A" (mxmi [1;2;4;5;8;7;9;5;45])
  84.  
  85. //zad10
  86. let maxmin list =
  87.     (List.min(list),List.max(list))
  88. printfn "%A" (maxmin [1;2;3;4;5;6;8])
  89.  
  90.  
  91. //zad11
  92.  
  93. let lista =[1;2;3;4;5;6;7;8];
  94.  
  95. let srednia list =
  96.    let rec suma list =
  97.        match list with
  98.        | [] ->  0
  99.        | x::xs -> x + (suma xs)
  100.    let rec ilosc list ak =
  101.        match list with
  102.        | [] -> ak
  103.        | x::xs -> ilosc xs (ak+1)
  104.    printf "srednia: %A" (suma list / ilosc list 0)
  105.  
  106. srednia lista
  107.  
  108. //zad12
  109. let srednia2 list =
  110.     let foldd list =
  111.         List.fold (+) 0 list
  112.     printfn "srednia z fold %A"  (foldd list / list.Length)
  113. srednia2 lista
  114.  
  115. //zad13
  116. (*let lista =[1;2;3;4;5;6;7;8];
  117. let wieksze list k o=
  118.     let rec rek1 list k o=
  119.         match list with
  120.            | [] -> o
  121.            | x::xs -> if(x<k) then rek1 xs k (o+1) else rek1 xs k o
  122.     rek1 list k o
  123.  
  124. printf "%A" (wieksze lista 4 0);
  125.  
  126. let wiekszeW list k=
  127.    let filtr list k =
  128.         List.filter (fun x -> x<k) list
  129.    (filtr list k).Length
  130.  
  131. printf "%A" (wiekszeW lista 4);
  132.  
  133. *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement