-
Notifications
You must be signed in to change notification settings - Fork 0
Natuurlijke getallen, binair
Bart Jacobs edited this page Feb 15, 2018
·
2 revisions
Opdracht:
-
Tik de volgende functie in:
let rec zip xs ys = match xs, ys with [], [] -> [] | xsKop::xsStaart, ysKop::ysStaart -> (xsKop, ysKop)::zip xsStaart ysStaart
-
Tik dan
zip [1;2;3] ["Jan"; "Piet"; "Joris"]
in. -
OCaml antwoordt met
[(1, "Jan"); (2, "Piet"); (3, "Joris")]
.
We kunnen natuurlijke getallen voorstellen als lijsten van Booleaanse waarden.
Oefening:
-
Schrijf een functie
binair
die een gegeven natuurlijk getal omzet naar binaire notatie:binair 0 = [] binair 1 = [true] binair 2 = [false; true] binair 3 = [true; true] binair 4 = [false; false; true] binair 5 = [true; false; true] binair 6 = [false; true; true] binair 7 = [true; true; true]
Merk op dat de volgorde van de elementen in de lijst de tegenovergestelde is van hoe je het getal in binaire notatie op papier zou neerschrijven.
Oefening:
- Schrijf een functie
nat_van_binair
die het natuurlijke getal voorgesteld door een gegeven lijst van bits (Booleaanse waarden) berekent.
Oefening:
- Schrijf een functie
binair_plus_een
die, gegeven een binaire voorstelling van een getal N, de binaire voorstelling van N + 1 berekent. Je mag hiervoor niet de getallen van OCaml gebruiken.
Oefening:
- Schrijf een functie
binair_plus
die, gegeven twee getallen in binaire voorstelling, de binaire voorstelling van hun som berekent. Je mag hiervoor niet de getallen van OCaml gebruiken.
Oefening:
- Schrijf een functie
binair_min
die, gegeven twee getallen in binaire voorstelling, de binaire voorstelling van hun verschil berekent. Merk op: als het tweede getal groter is dan het eerste, is het verschil 0.
Oefening:
- Schrijf een functie
binair_kleiner_of_gelijk
die, gegeven twee getallen in binaire voorstelling,true
teruggeeft als en slechts als het eerste getal kleiner is dan, of gelijk is aan het tweede getal.
Oefening:
- Schrijf een functie
binair_maal
die, gegeven twee getallen in binaire voorstelling, de binaire voorstelling van hun product berekent.
Oefening:
- Schrijf een functie
binaire_deling
die, gegeven twee getallen in binaire voorstelling, een paar teruggeeft met het quotiënt en de rest bij deling van het eerste getal door het tweede.