Gepostet: |
lineare Suche | ||||||||||
Hallo Kann mir hier wer weiter helfen? Ich muss folgendes machen: ich muss eine lineare suche programmieren die eine float zahl bekommt und dann eine int zahl ausgibt (z.B ich geben 3.4 ein und die ausgabe soll dann 3 sein) nur verstehe ich nicht wie Haskell das macht mit dem raufzählen (wenn ich von 0 beginne) Hoffe meine frage ist verständlich mfg Hellraiser EDIT: Hab hier mal einen keinen Versuch gemacht. Ich soll folgene Funktion verwenden: floor x == n gdw. n <=x && x< n+1 Hier mein Versuch: floor_ x n | n <= x && x < n+1 = n | n <= x = floor_ x (n+1) | x < n+1 = floor_ x (n-1) Es funktioniert eigentlich ganz gut aber es sollte nur eingabe x erfolgen, da die Def. der Funktion: floor_:: Float -> Int Wie kann man das mit Rekursion, Pattern Matching und/oder Guards lösen? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hi, du bist ja fast am Ziel. Die Funktion floor_ muß nur noch in einer anderen Funktion mit einem Startwert aufgerufen werden: myfloor :: Float -> Int myfloor x = floor_ x 0 Bei negativen x-Werten wird dann immer nach unten weitergezählt, bei positiven nach oben. So sollte es funktionieren. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Vielen Dank, für die Lösung. So einfach kanns gehen, hab den Wald vor lauter Bäumen nicht gesehen :) |
|||||||||||
Zum Seitenanfang | |||||||||||