daily pastebin goal
6%
SHARE
TWEET

Untitled

a guest Dec 10th, 2018 43 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. open System.Security.Cryptography.X509Certificates
  2.  
  3.  
  4. printfn "Witaj swiecie!" //zaznaczyc cale i alt+enter
  5.  
  6. //Zad 1 (let)
  7.  
  8. let n = 10  //deklaracja identyfikatora
  9. let dodaj a b = a + b // deklaracja funkcji o danych wejsciowych a i b, a nastepenie cialo funkcji (spacje musza byc)
  10. let wynik = dodaj n 4  // przypisanie funkcji dodaj do identyfikatora wynik z danymi 10 i 4
  11. printfn "wynik obliczen = %i" wynik // wystwielenie wyniku %i to wystwli sie dana zzaraz za lancuchem (wynik)
  12.  
  13.  
  14. //Zad 2 (funkcja)
  15.  
  16. let srodek a b =
  17.    let tmp = b - a // jak nie dziala to 3 spacje z lewej zamiast TAB  przypisanie do tmp wartosci roznicy
  18.    let tmp = tmp / 2 //
  19.    tmp + a // nie ma return zwrot wartosci nastepuje domyslnie
  20.  
  21.    // wciecia dzialja jak klamry w C#
  22.  
  23. printfn "srodek miedzy 5 a 11 to %i" (srodek 5 11)
  24. printfn "srodek miedzy 11 a 5 to %i" (srodek 11 5)
  25.  
  26. // Zad 3 (Silnia)
  27.  
  28. let rec silnia x =
  29.    match x with
  30.    | 0 -> 1
  31.    | x -> silnia(x-1)*x
  32.  
  33. let n1 = 4
  34. printfn "%i! = %i" n1 (silnia n1)
  35.  
  36. // Fibonacci
  37. let rec fib x =
  38.    match x with
  39.    | 1 -> 1
  40.    | 2 -> 1
  41.    | x -> fib(x-1)+fib(x-2)
  42.  
  43. printfn "Fibb = %i" (fib 10)
  44.  
  45. // Zad 3a (silnia z obsluga bled)
  46.  
  47. let rec silnia1 x =
  48.    match x with
  49.    | x when x < 0 -> failwith "Wartosc musi byc wieksza albo rowna o"
  50.    | 0 -> 1
  51.    | x -> silnia(x-1)*x
  52.  
  53. let n2 = -1
  54. printfn "%i! = %i" n2 (silnia n2)
  55.  
  56.  
  57. // Zad 4 (lambda)
  58.  
  59. let wynikWyrazenia = fun x y -> x + y // te fun to jest info ze lambda
  60. printfn "wynik wyrazenia lambda = %i" (wynikWyrazenia 2 3)
  61.  
  62.  
  63. //Zad 5. Podwojenie elementow listy
  64.  
  65. let rec podwojenie list =
  66.    match list with
  67.    | glowa :: ogon -> glowa * 2 :: podwojenie ogon
  68.    | [] -> []
  69.  
  70. printfn "Lista podwojona %A" (podwojenie [1;2;3])
  71.  
  72. // 5a ( z uzuciem List.map)
  73.  
  74. let result1 = List.map((*)2)[1;2;3] //zamiast gwiazki moze byc plus, minus itd
  75. printfn "lista wynikowa %A" result1
  76.  
  77. // 6 Poteguj elementy listy
  78.  
  79. let result2 = List.map(fun i ->i*i)[1;2;3]
  80. printfn "Lista wynikowa %A" result2
  81.  
  82.  
  83. // 7 iloczyn wszystkich elementow listy
  84.  
  85. let rec iloczyn list =
  86.    match list with
  87.    | glowa :: ogon -> glowa * iloczyn ogon
  88.    | [] -> 1
  89.  
  90. printfn "Iloczyn %i" (iloczyn [1;2;3])
  91.  
  92. // to samo dla dodatnich
  93.  
  94. let rec iloczynDod list =
  95.    match list with
  96.    | glowa :: ogon when glowa <= 0 -> iloczynDod ogon
  97.    | glowa :: ogon -> glowa * iloczynDod ogon
  98.    | [] -> 1
  99.  
  100. printfn "Iloczyn %i" (iloczynDod [1;-2;3])
  101.  
  102.  
  103. // DOM --------------------
  104. // 1 Wykonaj wyrazenie lambda, kotr oblicza wyrazenie ab-2c
  105.  
  106. let wzor = fun a b c -> a*b-2*c
  107. printfn "wynik wyrazenia lambda = %i" (wzor 2 2 3)
  108.  
  109.  
  110. // 2. Napisz program, który zawiera definicję dwóch funkcji. Jedna liczy deltę równania kwadratowego
  111. // a druga na podstawie delty zwraca komunikat o liczbie pierwiastków ( zero, jeden lub dwa)
  112. // %s slda lancucha tekstowego
  113.  
  114.  
  115. let delta = fun a b c -> b*b - 4*a*c
  116. let pierwiastki x =
  117.     match x with
  118.     | x when x < 0 -> 0
  119.     | x when x = 0 -> 1
  120.     | x when x > 0 -> 2
  121.  
  122. printfn "Delta = %i    Pierwiastki = %i" (delta 5 4 3) (pierwiastki (delta 5 4 3))
  123.  
  124.  
  125. // 3. Fukncja rekurencyjna, ktora sumuje elementy listy
  126.  
  127. let rec suma list =
  128.    match list with
  129.    | glowa :: ogon -> glowa + suma ogon
  130.    | [] -> 0
  131.  
  132. printfn "Suma %i" (suma [1;2;3;4])
  133.  
  134.  
  135. // 4. Funkcja rekurencyjna, ktora zwraca dlugosc listy
  136.  
  137. let rec dlugosc list =
  138.    match list with
  139.    | glowa :: ogon -> 1 + dlugosc ogon
  140.    | [] -> 0
  141.  
  142. printfn "Dlugosc %i" (dlugosc [1;2;3;4])
  143.  
  144. // 5. Funkcja rekureyncyjna, kotra zwraca ostatni element listy (zeby sprawdzic czy lista nie jest pusta |_->failwith "Komunikat")
  145.  
  146. let rec ostatni list =
  147.    match list with
  148.    | glowa :: [] -> glowa
  149.    | glowa :: ogon -> ostatni ogon
  150.    | _ -> failwith "Pusta lista"
  151.  
  152. printfn "Ostatni %i" (ostatni [7;1;2;3;4])
  153.  
  154.  
  155. // 6. Funkcja rekurencyjna, ktora zwraca pierwszy element listy
  156.  
  157. let rec pierwszy list =
  158.    match list with
  159.    | glowa :: ogon -> glowa
  160.    | [] -> 0
  161.  
  162. printfn "Pierwszy %i" (pierwszy [7;1;2;3;4])
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top