Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Wanja

Junior Schreiberling

  • "Wanja" started this thread

Posts: 150

Date of registration: Feb 4th 2003

1

Tuesday, January 17th 2006, 4:49pm

Scheme Ü9

Bei aufgabe 2 wollen die nen internen counter haben. Darf die variable dafür extern definiert sein?

This post has been edited 2 times, last edit by "Wanja" (Jan 17th 2006, 5:15pm)


julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

2

Tuesday, January 17th 2006, 5:32pm

Geht auch ohne, mit einem let um das lambda herum -> siehe HTML-Version des Buches.

Übrigens ist das Blatt und die Mail dazu ja mal wieder totaler Murks. Also die Quoten-Nervaufgabe 4 muss wohl sein, aber 3? Die Aufgabe ist eh schon angenehm happig, aber wie soll das mit mastermind als parameterloser Funktion funktionieren? Ich bin einfach davon ausgegangen, dass das n Typo ist, aber er hats in der Mail ja nochmal bestätigt... aber er hat auch schon wieder weiße und schwarze Steine verwechselt, so what... oO

sommla

Junior Schreiberling

  • "sommla" is male

Posts: 169

Date of registration: Oct 27th 2005

3

Wednesday, January 18th 2006, 4:25pm

Aufgabe1

Hi,

hat jemand ne Ahnung, wie man bei Aufgabe 1 in einer define sowohl eine Zahl ausgeben als auch eine Rechenoperation durchführen kann?!

Bsp.:
(define count 1)
(define (f)
count
(set! count 0))

Irgendwie will MrEd nicht!!
Lieber ein Haus im Grünen als 'nen Grünen im Haus.

isec

Zuhörer

Posts: 3

Date of registration: Oct 19th 2005

4

Wednesday, January 18th 2006, 8:31pm

RE: Aufgabe1

hi also ich hab da begin verwendet, da count aber erst ausgegeben werden soll nachdem man es umsetzt hab ich das nochmal in eine adere variable gepackt... also so:

(define count 1)
(define x 0)

(define (f)
(begin
(set! x count)
(set! count 0)
x))

alllerdings steht in der aufgabenstellung dass man man (- (f) (f)) beliebig oft hintereinander aufrufen können soll und es soll immer das gleiche rauskommen also ist das noch nicht die lösung ;)

Red Eye

Junior Schreiberling

  • "Red Eye" is male

Posts: 187

Date of registration: Oct 6th 2005

Occupation: Informatik

5

Wednesday, January 18th 2006, 9:30pm

Nabend....


also, ich hab das so gelöst:

(define f
(let ((a 0.5)) ;definere a=0.5
(lambda () ; gebe lambda als Prozedur ohne Parameter zurück
(begin ;Starte Rumpf der lambda Prozedur
(set! a (* -1 a)) ;Wechsle den Wert von a (d.h. mach aus a=0.5 a=-0.5)
a ;gebe den neuen Wert von a zurück
)
)
)
)

(- (f) (f))

Somit kann man erkennen, ob es von rechts oder von links ausgeführt wird......


Gruss

Red Eye
Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten.

isec

Zuhörer

Posts: 3

Date of registration: Oct 19th 2005

6

Wednesday, January 18th 2006, 11:06pm

ja gut, das war jetzt die komplettlösung ...

sommla

Junior Schreiberling

  • "sommla" is male

Posts: 169

Date of registration: Oct 27th 2005

7

Thursday, January 19th 2006, 2:12pm

Morgen,

okey hab jetzt auch ne Lösung rausbekommen!
Besten Danke für die Hilfe!

Aufgabe 4 ist auch ganz schön nervig!! *grummel*
Lieber ein Haus im Grünen als 'nen Grünen im Haus.

BLUESCREEN

Junior Schreiberling

  • "BLUESCREEN" is male

Posts: 244

Date of registration: Oct 11th 2005

8

Thursday, January 19th 2006, 6:48pm

Wie soll man in Aufgabe 4 eigentlich das (set! g h) visualisieren, also was soll in dem Frame zu dem Aufruf stehen?

Laut Help Desk heißen die beiden Parameter von set! NAME und EXPRESSION, aber man kann auch den Funktionsrumpf nicht unter das Frame schreiben, da set! eine Scheme-interne Funktion ist...

ruffy85

Trainee

  • "ruffy85" is male

Posts: 103

Date of registration: Oct 12th 2005

Location: Hildesheim

Occupation: B.Sc. Informatik / 1. Semester

9

Thursday, January 19th 2006, 10:23pm

Müssen wir denn überhaupt bei Aufgabe 4 programmieren oder nur zeichnen?

A1 bis A3 habe ich fertig, waren ein paar harte Nüsse bei, aber gut zu schaffen...

Nur bei A4 weiß ich nicht genau, was ich machen soll, sprich nur zeichnen oder auch umprogrammieren...

Red Eye

Junior Schreiberling

  • "Red Eye" is male

Posts: 187

Date of registration: Oct 6th 2005

Occupation: Informatik

10

Thursday, January 19th 2006, 11:15pm

Morgen :)

Bei Aufgabe 4 musst du nur zeichnen....d.h. es so zeihnen wie die PowerPoint presentation vom Prof letzte woche.



Gruß

Red Eye
Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten.

ruffy85

Trainee

  • "ruffy85" is male

Posts: 103

Date of registration: Oct 12th 2005

Location: Hildesheim

Occupation: B.Sc. Informatik / 1. Semester

11

Friday, January 20th 2006, 12:01am

Danke für die Info, hatte schon etwas Muffensausen, dachte, müsste alles in eine parameterlose Form bringen :-P Spaß beiseite...

Dann bin ich ja auf der sicheren Seite... Zeichnen kann ich mir Zeit mit lassen.

maffe

Unregistered

12

Friday, January 20th 2006, 9:59pm

Quoted

Original von Red Eye
Nabend....


also, ich hab das so gelöst:

(define f
(let ((a 0.5)) ;definere a=0.5
(lambda () ; gebe lambda als Prozedur ohne Parameter zurück
(begin ;Starte Rumpf der lambda Prozedur
(set! a (* -1 a)) ;Wechsle den Wert von a (d.h. mach aus a=0.5 a=-0.5)
a ;gebe den neuen Wert von a zurück
)
)
)
)

(- (f) (f))

Somit kann man erkennen, ob es von rechts oder von links ausgeführt wird...

Ich hab's etwas anders gemacht. Die Differenz soll ja immer 1 sein. Also hab ich einen Zähler, der bei jedem Aufruf von (f) um 1 runtergezählt wird. So kann man zwischendurch auch (f) aufrufen, ohne dass es was am Ergebnis ändert :) Auch wenn's nicht gefordert war, das fiel mir halt zuerst ein ;-)