You are not logged in.

ALmex

Praktikant

  • "ALmex" is male
  • "ALmex" started this thread

Posts: 7

Date of registration: Oct 8th 2003

Location: Peine

Occupation: Das frage ich mich auch...

1

Sunday, November 2nd 2003, 5:52pm

Programmieren 1 - Übung 3

Ich habe ein Problem mit der Programmierübung...
Dies ist der gegebene Code:
;; Berechnung der Quadratwurzel mit dem Newton-Verfahren

(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))

(define (improve guess x)
(average guess (/ x guess)))

(define (average x y)
(/ (+ x y) 2))

(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))

(define (sqrt x)
(sqrt-iter 1.0 x))

Bei Aufgabe 1 wird verlangt, dass die Differenz des Schätzwertes mit dem vorigen Schätzwert verglichen werden soll. Ich denke, daß ich dabei "square guess" und "x" in der good-enough?-Prozedur ersetzen muss. Das krieg ich nicht gebacken, da ich nicht weiß, wie ich den vorigen Schätzwert erhalte. Muss ich dafür eine neue Variable definieren und wenn ja, wie macht man das im Beispiel?


Ach ja, hier gibts das Aufgabenblatt:
http://www-psue.informatik.uni-hannover.…bung/blatt3.pdf

Danke schonmal!!!
while (!asleep()) sheep++;

Artemis

Trainee

  • "Artemis" is male

Posts: 52

Date of registration: Oct 6th 2003

Location: Milchstraße

Occupation: um Millionaer zu werden

2

Monday, November 3rd 2003, 3:23pm

um die loesung nicht direkt zu verraten, sondern nur nen tip zu geben:

denk auch mal daran, dass du nicht unbedingt den letzten schaetzwert nehmen musst, sonder auch den nächsten nehmen kannst... wenn die aussage zutrifft, gibts du halt den naechsten schaetzwert als ergebnis und nicht den aktuellen aus.

hoffe das ist wirklich nur ein tip :)
he who runs away, lives to fight another day

ALmex

Praktikant

  • "ALmex" is male
  • "ALmex" started this thread

Posts: 7

Date of registration: Oct 8th 2003

Location: Peine

Occupation: Das frage ich mich auch...

3

Tuesday, November 4th 2003, 10:25pm

@Artemis: Danke, jetzt hab ichs!!! :D
while (!asleep()) sheep++;

kennyinhell

Praktikant

  • "kennyinhell" is male

Posts: 20

Date of registration: Sep 16th 2002

Location: Südstadt

4

Wednesday, November 5th 2003, 1:05am

Hab mal ne frage zu aufgabe 2:

kann ich von einer unendlichen geometrischen reihe eigentlich nen grenzwert bestimmen, wenn q nicht kleiner als 1 ist? sonst strebt der grenzwert doch auch gegen unendlich oder?

Mutzkow

Junior Schreiberling

  • "Mutzkow" is male

Posts: 129

Date of registration: Oct 10th 2003

Location: Hannover

Occupation: Informatik

5

Wednesday, November 5th 2003, 1:14am

Kann das sein, dass die Änderung bei Aufgabe eins wirklich nur sehr minimal ist? ?(
Es ist ein einförmiges Ding um das Menschengeschlecht. Die meisten verarbeiten den größten Teil der Zeit, um zu leben, und das bisschen, das ihnen von Freiheit übrig bleibt, ängstigt sie so, dass sie alle Mittel aufsuchen, um es los zu werden.

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

6

Wednesday, November 5th 2003, 1:19am

Quoted

Original von Artemis
um die loesung nicht direkt zu verraten, sondern nur nen tip zu geben:

denk auch mal daran, dass du nicht unbedingt den letzten schaetzwert nehmen musst, sonder auch den nächsten nehmen kannst... wenn die aussage zutrifft, gibts du halt den naechsten schaetzwert als ergebnis und nicht den aktuellen aus.

hoffe das ist wirklich nur ein tip :)


Hehe, jaja Artemis, wir haben uns da ja heute (gesten) nachmittag drüber unterhalten. Mankann es auch mit dem davorherigen Wert machen, das klappt auch, allerdings ist immer die Frage, was ist besser programmiert. Bei mir funzt es auch anders, aber zZ steige ich nicht durch, was ich gemacht habe ^^
=> schlecht :)

Quoted

Original von kennyinhell
Hab mal ne frage zu aufgabe 2:

kann ich von einer unendlichen geometrischen reihe eigentlich nen grenzwert bestimmen, wenn q nicht kleiner als 1 ist? sonst strebt der grenzwert doch auch gegen unendlich oder?


ich meine, man kann Grenzwert bestimmen.
weiß aber grade Formel mäßig nur für endlich
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

7

Wednesday, November 5th 2003, 11:43pm

(ruler distance highlight length) zeichnet ein Lineal in ein Fenster der Länge length, wobei alle distance Pixel eine kurze Markierung und alle hightlight Pixel eine längere Markierung gezeichnet werden soll.
Man soll nun so eine ruler procedure schreiben.
Vielleicht liegts an der Uhrzeit, aber ich finde irgendwie überhaupt keinen Einstieg in diese Aufgabe ?( ?( ?( ?( ?(

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

8

Thursday, November 6th 2003, 12:33am

Ansatz:

1.) Zeichne von Pixel null bis length, also Strich von (x,0) bis (x,30) zB
2.) distance sollte ein vielfaches von highlight sein, damit es wie ein Lineal aussieht
3.) Abruch bei Koordinate(letzte Pixel) + distance > length


Ich hoffe das hilft erstmal

Aber noch was, wie beschreibe ich in Code oder zumindest in deutsch die Sperrbereiche? Oder anders woher weiss mein Programm wieviel Dreicke ich bei Schritt n zeichnen muss?


Marco ^^

Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

9

Thursday, November 6th 2003, 5:31pm

Nochmal zur Aufgabe 1, Übungszettel drei von ganz oben
===============================

(define (sqrt-iter guess x)
(if (good-enough? guess (improve guess x))
guess
(sqrt-iter (improve guess x) x)))

(define (improve guess x)
(average guess (/ x guess)))

(define (average x y)
(/ (+ x y) 2))

(define (good-enough? guess x)
(< (abs (- guess (improve guess x)))) 0.001)

(define (sqrt x)
(sqrt-iter 1.0 x))

------

Ich kriege diese Fehlermeldung : <: expects at least 2 arguments, given 1: 1.0 für die Zeile mit dem IF, was ist da falsch dran?

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

10

Thursday, November 6th 2003, 5:48pm

Quoted

Original von Torrero
Nochmal zur Aufgabe 1, Übungszettel drei von ganz oben
===============================

(define (sqrt-iter guess x)
(if (good-enough? guess (improve guess x))
guess
(sqrt-iter (improve guess x) x)))

(define (improve guess x)
(average guess (/ x guess)))

(define (average x y)
(/ (+ x y) 2))

(define (good-enough? guess x)
(< (abs (- guess (improve guess x)))) 0.001)

(define (sqrt x)
(sqrt-iter 1.0 x))

------

Ich kriege diese Fehlermeldung : <: expects at least 2 arguments, given 1: 1.0 für die Zeile mit dem IF, was ist da falsch dran?
Genau das, was da steht. Du hast beim Aufruf von "<" nur ein Argument angegeben. Eine Klammer ist falsch gesetzt.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

11

Thursday, November 6th 2003, 6:26pm

Quoted

Original von kennyinhell
Hab mal ne frage zu aufgabe 2:

kann ich von einer unendlichen geometrischen reihe eigentlich nen grenzwert bestimmen, wenn q nicht kleiner als 1 ist? sonst strebt der grenzwert doch auch gegen unendlich oder?


Yoo :D

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

12

Thursday, November 6th 2003, 11:17pm

was ist mit -q^n?

Nur ne Frage, hab sonst ka
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

13

Thursday, November 6th 2003, 11:54pm

Was ist der unterschied zwischen iterativen und rekursiven Prozessen ? Die Definition von den offizielen Folien kapiere ich nämlich überhaupt nicht, vielleicht kann mir ja jemand in einfachen Worten iterativ und rekursiv erklären.

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

14

Thursday, November 6th 2003, 11:59pm

rekursiv ruft sich selber auf und ich stell mir das immer so vor: das programm "klappt" sozusagen die rekusiven fälle immer weiter auf, bis es an den Punkt gekommen ist, wo etwas definiert ist und das ist dann der Dominostein der umgeworfen wird und dann "klappt" alles wieder zusammen und rechnet sich selber aus. Wenn du ein Beispiel für diesen Dominostein brauchst: das 0-te und 1-te Glied bei den Fibonacci-Zahlen, die schon definiert sind. Wenn du das n-te Glied berechnen möchtest, gehen zuerst alle n rekursiven Aufrufe der Prozedur los bis man halt beim 0ten Glied angekommen ist und dann fällt das Kartenhaus zusammen.
Daher kann es bei rekursiven Programmen natürlich zu enormen Speicherbelegungen kommen, was nicht optimal ist. An dieser Stelle treten iterative Programme auf, wo du bei jedem iterativen Schritt, den vorherigen Rechenschritt merkst und dann immer weiter gehst, sodass der Speicher konstant und gleichmäßig belastet wird, was bei rekursiven eben nicht der Fall ist.
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

15

Friday, November 7th 2003, 12:55am

Aufgabe:
Schreiben sie eine Prozedur (geom-sum q i), die die endliche geometrische Reihe (Sigma von k=0 bis i) q^k berechnet.
Wie geht das ansatzweise?

Lugg

Praktikant

  • "Lugg" is male

Posts: 9

Date of registration: Oct 12th 2003

Location: früher Bemerode, jetzt List

Occupation: Nix besseres zu tun

16

Friday, November 7th 2003, 2:00am

Wie wär's damit:
[php]
(define (geom-sum q i)

(define (iter k sofar)
(if (= k i)
(+ sofar (expt q k))
(iter (+ k 1)
(+ sofar (expt q k)))))

(iter 0 0)
)
[/php]

Im Prinzip funktioniert das so:
Du zählst k von 0 hoch, solange bis k = i ist. und für jedes mal k hochzählen addierst du q^k zu deinem zwischenwert, und gibst den zum schluss aus. Hab ich gerade fertig, jetzt zur unendlichen reihe...

Lugg

Praktikant

  • "Lugg" is male

Posts: 9

Date of registration: Oct 12th 2003

Location: früher Bemerode, jetzt List

Occupation: Nix besseres zu tun

17

Friday, November 7th 2003, 2:21am

Ha! Habs :)
Falls es noch irgendwen interessiert...

[php]
(define (geom-sum-infty q)
(define k 0)
(define (iter k sofar)
(cond ((> k 1337) sofar)
((< (abs (- sofar (+ sofar (expt q k)))) 0.000001) sofar)
(else
(iter (+ k 1) (+ sofar (expt q k))))))
(iter 0 0)
)[/php]

funktioniert zumindest hier sehr gut. Wenn die Reihe gegen unendlich geht, gibt er sogar +inf.0 aus... ist das nicht praktisch? *begeistert*

Ingrim Ingrasch

Erfahrener Schreiberling

  • "Ingrim Ingrasch" is male

Posts: 325

Date of registration: Oct 8th 2003

Location: Märchenland

Occupation: Assistant Director, IT Operations

18

Friday, November 7th 2003, 9:15am

hmm hab die endliche so gemacht :

Source code

1
2
3
4
5
(define (geo-sum q i)
  (if (OR (< q 1) (> q 1))
  (/ (- (expt q (- i 1))(expt q 0)) (- q 1) ) (+ 1 i)))

(geo-sum 99 154)

This post has been edited 3 times, last edit by "Ingrim Ingrasch" (Nov 7th 2003, 9:41am)


Torrero

Senior Schreiberling

  • "Torrero" is male

Posts: 854

Date of registration: Oct 16th 2003

Location: Laatzen

Occupation: Angewandte Informatik

19

Monday, November 10th 2003, 11:03pm

(define gp(create-graph-window "Sierpinski-triangle" 100 100 640 480))

(define (m u v)
(/ (+ u v) 2))

(define (sierpinski-triangle x1 y1 x2 y2 x3 y3 n)
(sierpinski_iter x1 y1 x2 y2 x3 y3 n 1))

(define (sierpinski_iter x1 y1 x2 y2 x3 y3 n i)
(triangle x1 y1 x2 y2 x3 y3)
(if (< i n)
(sierpinski_iter x1 y1 (m x1 x2) (m y1 y2) (m x1 x3) (m y1 y3) n (+ i 1)) (triangle x1 y1 x2 y2 x3 y3))
(if (< i n)
(sierpinski_iter (m x1 x2) (m y1 y2) x2 y2 (m x2 x3) (m y2 y3) n (+ i 1)) (triangle x1 y1 x2 y2 x3 y3))
(if (< i n)
(sierpinski_iter (m x1 x3) (m y1 y3) (m x2 x3) (m y2 y3) x3 y3 n (+ i 1)) (triangle x1 y1 x2 y2 x3 y3))
)

könnte mir jemand sagen, wozu die Variable i dienen soll?

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

20

Monday, November 10th 2003, 11:36pm

Quoted

Original von Torrero
könnte mir jemand sagen, wozu die Variable i dienen soll?


Sie ist eine Laufvariable und wird bei jedem Unteraufruf von sierpinski_iter inkrementiert.
tar: Anlegen eines leeren Archivs wird feige verweigert.

This post has been edited 2 times, last edit by "migu" (Nov 10th 2003, 11:37pm)