Seite 1 von 1

Hausübung 6 Newton

Verfasst: 4. Dez 2006 16:21
von -chris-
hi,

bei der 7.1 soll man die calc prozedur erweitern, welchen wert soll man dem 'x genau zuordnen lassen?

danke schon mal im voraus :)

Verfasst: 4. Dez 2006 20:28
von MisterD123
du sollst die prozedur um einen parameter erweitern bei dem der wert angegeben werden muss dann..

Verfasst: 4. Dez 2006 20:28
von m0ep
Den Wert musst du der calc Funktion übergeben und die soll für jedes 'x die Zahl einsetzen.

Verfasst: 4. Dez 2006 20:29
von MisterD123
erst0r ;D

Verfasst: 4. Dez 2006 20:34
von m0ep
pff...

Verfasst: 6. Dez 2006 17:28
von kechler
Hallo,

ich habe mal eine Bitte. Und zwar komm ich mit der 1-Satz-Erklärung auf dem Aufgabenblatt für die calc-Funktion nicht wirklich zurecht.
Könnte jemand nochmal ein anderes einleuchtenderes Beispiel für die calc-Funktion hier online stellen, da das angegebene Beispiel mit der bestehenden calc-Funktion ja schon sinnvoller Weise richtig funktioniert...

Danke im voraus

Verfasst: 6. Dez 2006 21:26
von gobbledygook
calc soll ein symbol 'x in einer funktion aexp mit dem zweiten parameter ersetzen

also (calc 'x 5) -> 5
(calc (make-mul 5 (make-add 3 'x)) 2) -> 25

wird soweit aufgelöst bis die aexp := 'x mit 2 ersetzt werden kann
dann wird das ergebnis auch ne number

Verfasst: 10. Dez 2006 13:56
von shaddar
Kann es sein, dass man entweder das erweitern von calc als komplett neue Prozedur schreiben muss oder das angegebene Beispiel nichtmehr funktioniert / falsch ist?
Habe das Teil bei mir jetzt so erweitert, dass es ne aexp undn x übernimmt aber dann funktioniert das Beispiel logischerweise nichtmehr (weil da nur 1 Argument übergeben wird). :(
Im Beispiel von newton-next ist im Template calc auch so implementiert, dass es 2 Argumente übernimmt (nur halt im Beispiel von calc selber übernimmts nur 1 Argument).

Verfasst: 10. Dez 2006 15:06
von banshee
genau an dem problem hänge ich auch gerade...

oder kann es sein dass man calc weiterhin nur einen parameter übergibt und die funktion im falle, dass sie ein 'x findet eine prozedur zurückgibt, in die der wert dann eben eingesetzt wird?

Verfasst: 10. Dez 2006 17:43
von gobbledygook
japp. das beispiel zieht dann nicht mehr

aber da bei newton-next eben (calc 'x x) aufgerufen wird und im text (für mich eindeutig genug) steht: ändere calc so dass ... !!!!

wurde daraus eben: (define (calc aexp an) (...))

mir selbst gefiele eine evaluierungs prozedur und eine ersetzungsprozedur lieber
also (define (replace asym an aexp) (...)) und anschliessend (define (evaluate aexp) (...)) wäre zwar doppelter aufwand aber vom prozedur-namens-sinn verständlicher

aber - wie schon erwähnt - siehe "newton-next" und formulierung in der aufgabe

Verfasst: 10. Dez 2006 22:23
von yourmaninamsterdam
Ich weiß auch nicht, was daran falsch wäre, Vertrag und Beispiel der Funktion zu ändern, wenn man die Funktion ändert?!

Verfasst: 11. Dez 2006 00:25
von Robert
das wäre so als würdest du die richtige Antwort auf eine falsche Frage geben.

wenn du den auftrag kriegst eine brücke zu bauen welche 40 Tonnen LKWs aushält, kannst du auch nicht Hingehen und eine Fußgängerbrücke bauen und sagen: Das ist ne Fußgängerbrücke, hier dürfen keine LKWs drüber.

Verfasst: 11. Dez 2006 01:40
von Tutor16
Robert hat geschrieben:das wäre so als würdest du die richtige Antwort auf eine falsche Frage geben.

wenn du den auftrag kriegst eine brücke zu bauen welche 40 Tonnen LKWs aushält, kannst du auch nicht Hingehen und eine Fußgängerbrücke bauen und sagen: Das ist ne Fußgängerbrücke, hier dürfen keine LKWs drüber.
Ähm, Achtung Missverständniss:
Da es sich um Vertrag und Beispiel einer alten Prozedur handelt und nicht etwas für diese Aufgabe gefordertes ist dürfen sie auch geändert werden.
Die Aussage von Robert gilt natürlich nur für Vertrag und Beispiel, die für Aufgaben vorgegeben sind.

Analog zu dem Brückenbeispiel habt ihr also eher die Situation, dass ihr aus einer Fußgängerbrücke, eine Brücke die 40 Tonnen LKWs aushält machen sollt.
Dafür brauch man logischerweise ein stärkeres Fundament.

Verfasst: 11. Dez 2006 10:52
von banshee
Das hätte man meiner Ansicht nach allerdings etwas besser beschreiben können. Weil dadurch, dass da 'erweitere' stand hab ich mich ziemlich schwer getan und ewig nach ner Lösung gesucht mit der man nur einen Parameter braucht :(