www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

Hellraiser

Gepostet:
28.10.2006 14:16

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    
 
Siracusa

Gepostet:
28.10.2006 21:52

   
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    
 
Hellraiser

Gepostet:
28.10.2006 23:55

   
Vielen Dank, für die Lösung.

So einfach kanns gehen, hab den Wald vor lauter Bäumen nicht gesehen :)
Zum Seitenanfang