FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

In SCM von listen den maximalen wert bestimmen

In SCM von listen den maximalen wert bestimmen 2005-03-22 21:14
Anonymer User
Hallo,
ich habe mir die Aufgabe gestellt in scm eine liste von liste in form von Rekursion den maximalen wert zu bestimmen. Das ergebniss sollte so aussehen (max '((1 2) (3 4) (5 6))) -> 6
Bitte um schnelle Hilfe

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 21:31
UncleOwen
Wenn Du Dir die Aufgabe gestellt hast, dann versuch doch erstmal, sie alleine zu lösen.

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 21:37
Anonymer User
Du bist ja vielleicht witzig.
Es ist eigentlich selbstverständlich das ich die Aufgabe die ich mir gestellt, versucht hab zu lösen.
Da es bei mir geklappt will ich ja hilfe

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 21:39
TriPhoenix
Wenns geklappt hat, wo ist das Problem? [img]http://www.fb18.de/gfx/3.gif[/img] Wenn du Probleme hast, dann geh doch mal genauer auf diese Probleme ein, eine Komplettlösung würde ich erstmal nicht erwarten [img]http://www.fb18.de/gfx/28.gif[/img]

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 21:42
Anonymer User
Sorry hab mich vertippt ich meine nicht geklappt hat.
Mein Problem sieht folgender massen aus :
da wir es mit einer liste von liste zutun muß man es doch so abschneiden cddr ,ich schaffe es nicht den rest weiter zu bearbteiten

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 22:53
DJ-SilVerStaR
lös das Problem doch ganz einfach durch Rekursion.
ein kleiner tipp: in prolog siehts ähnlich aus, und das steht ja im Prolog-Skript.

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 23:08
dr.Gonzo
Koenntest Du Dein Problem bitte etwas eingrenzen?
Wieviele Parameter soll Deine Funktion nehmen? Drei? Beliebig viele?

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 23:12
MoKrates
Nein, Du benutzt eine Funktion, die das Max einer Liste bestimmt: (max '(1 2 3)) und eine Funktion, die dir das Max einer Liste von Listen bestimmt.

Mo

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 23:18
dr.Gonzo
Ah, ich hatte mich verlesen und eine Listenklammer (ein Listenklammerpaar) uebersehen.
Jo, die Funktion die das Maximum einer Liste bestimmt gibts ja schon. Die kann man dann benutzen, (wie Mo schon sagte) um eine Funktion zu schreiben, welche das Maximum einer Liste von Listen zurueckgibt (wenn es die nicht auch schon gibt).

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 23:21
Anonymer User
Mein Quelltext sieht so aus :
(define (verarbeitung Liste)
(if (zero? (length Liste ))
'()
(verabeitungsliste (> cdr liste ))))
Ich habe Probleme ab verarbeitung.
Ich kriege das nicht hin
Danke für den tipp aber hat mir leider nicht geholfen

Re: In SCM von listen den maximalen wert bestimmen 2005-03-22 23:46
MoKrates
1. Nicht (zero? (length liste)) sondern: (null? liste)
2. (define (max liste) (cond ((null? liste) 0) ((> (car liste) (max (cdr liste))) (car liste)) (else (max (cdr liste)))))
3. (define (max-listen listen)
hier kommt max mit (car liste) == (max (car listen))

Mo

Re: In SCM von listen den maximalen wert bestimmen 2005-03-23 07:06
Anonymer User
Danke danke Mo du bist retter in der Not [img]http://www.fb18.de/gfx/14.gif[/img]

Re: In SCM von listen den maximalen wert bestimmen 2005-03-23 07:59
scoubidoo
Und hier die Version wie du sie wolltest für eine Liste mit Pairs wo das max der zweiten Elementen der Pairs verglichen wird.

(define (max liste)
(cond ((null? liste) 0)
((> (car(cdr(car liste)))(max (cdr liste))) (car(cdr(car liste))))
(else (max (cdr liste)))))

Re: In SCM von listen den maximalen wert bestimmen 2005-03-23 08:17
Anonymer User
Danke danke und nochmals danke. Man kann sich auf euch verlassen

Re: In SCM von listen den maximalen wert bestimmen 2005-03-23 18:45
scoubidoo
Kam blöderweise leider nicht dran .

Re: In SCM von listen den maximalen wert bestimmen 2005-03-23 20:37
MoKrates
Hehe, witzig, wenns funktioniert hat… Ich habs naemlich nicht getestet… Sollte ja eigentlich auch nur ein Denkanstoss sein. Loesungen verraten ist lame…

Mo