Aufgabenblatt 8!!

Augabe 4

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabenblatt 8!!
Servus allerseits,

also bisher hab ich mich bei den Aufgaben immer ganz gut durchgeschlagen. Immer alles pünktlich abgegeben und auch brav meine Punkte bekommen! Aber wenn ich mir die 4te Aufgabe anschaue is alles aus!!

Also wollt ich mal wissen, ob ich als einzeiger so dastehe oder ob auch andere an der Aufgabe kämpfen (bzw. verzweifeln) ?!? Im speziellen die ersten vier Unteraufgaben knüppeln meiner Meinung nach ziemlich rein… :motz:


Im Vergleich zu Blatt 7 fand ich die recht entspannend. Klar, jede Menge suchen und ersetzen spielen… und Tipparbeit. Ach ja, und ein Problem mit dem CLASSPATH lösen, dass ALGOFrame funktioniert… :wand:
Mich nervt nur die 3.4… mal wieder ein Beweis wo ich sag “trivial, aber wie soll ich das zeigen?” :stuck_out_tongue:


kann ich jetzt eigentlich überhaupt nicht bestätigen. Ich habs grade eben fertig gemacht, und muss sagen, dass ich keine größeren probleme dabei hatte. :slight_smile:
Im vergleich zu blatt 7 wars läppisch.


ebenfalls, aber die beweise sind echt sch***


Ok, Teilaufgaben 4-7 sind wirklich nur suchen und ersetzen! Soweit kein Problem.

Allerdings vertsehe ich nicht, welchen Sinn es macht, wie in Teilaufgabe 1 gefordert, dass execute in ALGOBlock und ALGOStatement als Parameter einen ALGOFrame übergeben bekommen?? Und was wird mit dem übergebenen Frame gemacht?

Wenn ich den Sinn dieser Aktion verstehen würde, dann könnte ich auch den Rest der Aufgabe hinbekommen…


Im Moment könntest du theoretisch auch ohne auskommen. ALGOBlock bekommt den Frame, damit er ihn an die Statements weiter geben kann. Und die können dann z.B. ihren Dialogboxen den Frame als Parent-Objekt übergeben… nicht wirklich nötig, damit’s läuft, aber nicht schlecht. Vielleicht kommt ja mal wieder später irgendwas dazu… :wink:


ähm ich hab als display methode folgendes:

public void display(String s){
outputTextArea.setText(s);
}

anscheinend funzt das aber ned. kann mir jemand n tipp geben, was falsch ist?


so ersetzt du den gesamten Text, versuchs mal mit append


aber mal ne andre Frage: wie habt ihr Aufgabe 8-3-3 bewiesen??


Morgoth:
probiers mal mit
outputTextArea.setText(outputTextArea.getText() + “\n” + s);

Marksman
durch umformen.


naja, des is doch des gleiche wie outputTextArea.append(“\n” + s) nur a weng umständlicher oder?.. :wink:

aha, und wie? also was soll ich da umformen? ich mein was genau muss ich zeigen, um zu beweisen dass das rekursion möglich macht?


öhm, ja.

du hast 4 fälle, und überführst jeden nach x^n. dann bist du fertig

Edit: dass das rekursion ermöglich musst du afaik gar nicht zeigen, und wenn doch, ist es fast das gleiche wie aufgabe 3.2


ok, ja man muss zeigen dass es rekursion ermöglicht.
dazu zeigst du einfach, dass x^((n-1)/2) und x^(n/2) wiederrum einen der 4 Fälle besetzen. Dass (n-1)/2 kleiner ist als n muss ich ja wohl nicht extra erwähnen oder? damit ist gezeigt dass sich das problem in 2 geringere Teilprobleme überführen lässt, ich denke das reicht dann aus.


HILFE!

Ich habe endlich algo8 fertig bekommen! Bloß jetzt klappen die beispielprogramme nicht! Es kommt immer eine Nullpointerexception!
Hat jemand einen Tip?


hmmm… entweder hab ich grad nen baumarkt vor dem kopf oder hier stimmt was nicht

aufgabe 3.3, nach den regeln auf dem blatt

x^8 = (x^4)^2 = (((x^2)^2)^2)

so, jetzt muesste ich das x^2 in der innersten klammer auflösen. tue ich das erhalte ich nach den regeln aber
x^2 → (2>1 & 2 mod 2 = 0) => (x^(2/2))^2 = (x^1)^2 = (x)^2
ja aber was nun? es gibt ja keine regel die mir sagt, wie ich das ^2 auflösen soll…
also fehlt da nicht ein basisfall, nämlich (x^2 = x * x) ?
meiner erachtens ginge es nämlich nur dann weiter:
(((x^2)^2)^2) = ((xx = y)^2)^2) = (yy = z)^2 = z*z


hmmm das selbe dachte ich mir auch mal …

allerdings funktioniert des bei mir auch so und ich glaub ich weiß auch warum:
du musst dir des verschachtelt vorstellen. Es wird ja power(8) aufgerufen.

power(8)
power(4)^2
(power(2)^2)^2
((power(1)^2)^2)^2
power von 1 ist ja definiert als return value(hier als Beispiel mal 3) also:
return ((( 3 ) ^2 ) ^2 ) ^2
return ( (9) ^2 ) ^ 2
return 81 ^2
return 6561
feddisch :slight_smile:

hoffentlich isses dadurch klar geworden!


ich geb masta_lu recht: die dritte regel kann nicht korrekt sein - da muss x ^ (n / 2) * x ^ (n / 2) stehen.

void.


genau das ist das problem.
3^2 →

  1. 3^1 = 3
  2. 2 > 1 & 2 mod 2 = 0 =>
    3^2 = (3^(2/2))^2 … was uns nicht wirklich weiterbringt.
    du rechnest 3 * 3. da steht aber nirgendwo “wie” bzw. “das” du das machen sollst. :finger: :wink:
    ich werd das so abgeben… mal sehen, was denen dazu einfällt! :gun: :-p :cool:

aber das ist doch genau dasselbe wie (x^(n/2))^2… :-/