Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahojda potřebovala bych pomoct s timto příkladem-Haskell
data Armada = Vojak | Velitel [Armada]
vojenska sila armady sa urci jako soucet sil vsech clenu armady,
pricemz kazdy Vojak ma silu 1 a kazdy Velitel ma silu 3
a) uvedte hodnotu typu Armada, ktera predstavuje armadu o sile 6
b) definujete funkci silaArmady (vcetne jej typu), ktera pro hodnotu
typu Armada urci vojenskou silu podle vyse uvedenych pravidel
Předem dík za pomoct...
Offline
Ha, konečně nějaký Haskellista :)
a) buď
Velitel (Velitel [])
nebo
Velitel [Vojak, Vojak, Vojak]
b)silaArmady::Armada ->Int
silaArmady Vojak=1
silaArmady (Velitel [])=3
silaArmady (Velitel x:y)=silaArmady(x)+silaArmady(Velitel y)
Offline
děkujuuu a poradil by jsi mi pleas jeste s jednim prikladem:)
Je dany datovy typ Armada reprezentujici strukturu veleni v hypoteticke
vojenske organizaci:
data Armada = Vojak | Velitel [Armada]
a) urcete aritu typoveho konstruktoru a urcete jeho druh
b) definujte funkci nejvyssiSarze(vcetne jejiho typu), ktera pro hodnotu
typu Armada vrati nejvyssiu sarzi velitela v armade, tj. nejvetsi pocet
urovni veleni pod jednim velitelem
sarze clena armady je definovana takto:
- sarze radoveho vojaka je 0
- sarze velitela je 0, ak veli prazdnej armade
- sarze velitela je 1, ak veli armade tvorenej z radovych vojakov
- sarze velitela je x+1, ak veli armade, v ktorej je najvyssia sarza x
Offline
a)
Typvoý konstruktor Vojak má aritu 0 (nečeká parametr), Velitel aritu 1 (čeká 1 parametr -- pole armád)
b)
Třetí pravidlo je jen zvláštní případ čtvrtého. Jde tedy o to, jak první, druhé a čtvrté pravidlo přepsat do Haskellu
nejvyssiSarze=sarze --zkraceni zapisu :)
sarze Vojak=0 -- prvni pravidlo, zrejme
sarze Velitel []=0 -- druhe, taky :)
sarze Velitel x:y=max (1+sarze x) (sarze (Velitel y))
Poslední pravidlo chce trochu objasnit: Kdyby velel jenom armádě x, měl by šarži 1+sarze x. Kdyby velel všem armádám ze seznamu y, měl by šarzi velitele, který velí armádám y. Protože velí oběma, za šarži se mu počítá větší z těchto hodnot.
Offline