Übung 2 - eine Schleife?

felixh
Neuling
Neuling
Beiträge: 1
Registriert: 25. Apr 2013 11:18

Übung 2 - eine Schleife?

Beitrag von felixh »

Hi,

mir fehlt ein bisschen der Ansatz bei Übung 2. Wie kann man da denn nur mit einer Schleife auskommen? Man braucht doch mindestens eine um über die Liste und eine um über die jeweiligen Arrays zu iterieren, oder etwa nicht? Dieser Hinweis mit der "abstrakten Sequenz" ist mir irgendwie ein wenig zu... abstrakt. Wäre sehr dankbar für einen Ansatz, falls das hier jemandem überhaupt erlaubt ist.

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Übung 2 - eine Schleife?

Beitrag von Prof. Karsten Weihe »

felixh hat geschrieben: mir fehlt ein bisschen der Ansatz bei Übung 2. Wie kann man da denn nur mit einer Schleife auskommen? Man braucht doch mindestens eine um über die Liste und eine um über die jeweiligen Arrays zu iterieren, oder etwa nicht?
Schauen Sie sich noch einmal den Durchlauf im Video zu ArrayList an. Sie benötigen zwei Laufvariable, eine für die Liste, die andere für das Array. Aber Sie können dennoch in einer einzigen Schleife in jeder Iteration nur eine der beiden Laufvariablen fortschalten...

KW

jonas313
Neuling
Neuling
Beiträge: 1
Registriert: 1. Mai 2013 13:38

Re: Übung 2 - eine Schleife?

Beitrag von jonas313 »

Hi,

also darf man via Pointer, so wie immer , über die Liste laufen ?

Welche Items, über die man nicht iterieren darf, sind denn in der Aufgabenstellung gemeint ?

VG

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Übung 2 - eine Schleife?

Beitrag von JannikV »

Hi, ja du darfst Hilfsvariablen wie Referenzen auf Elemente legen.

Damit ist gemeint, dass du nicht über die ListItems iterieren sollst, im Sinne von ein item pro iterationsschritt. Sondern dass du die ganzen Elemente als lineare Sequenz betrachten sollst und über diese iterierst.

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Re: Übung 2 - eine Schleife?

Beitrag von Domac »

Hallo,

an sich war der Aufgabenteil a) echt cool! Man musste nur viel Hirnschmalz drauf verwenden (meiner Meinung nach schwerer als meine Robotik 2 Übung…). :oops:
Allerdings bin ich mir wirklich im unklarem was man bei Aufgabenteil b) machen soll… wie stelle ich die Schleifeninvariante auf und was ist die Schleifenvariante?
Wo kann ich da am besten nachschauen? So etwas wie Folien gibt es ja leider nicht und im Wiki kann ich auch nichts finden. Wäre es zudem möglich (,mit nur einem weiterem Plugin für das Wiki,) das Wiki als PDF anzubieten? Das wäre sehr hilfreich!

Grüße
Extend my dropbox space (here).
Thanks!

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Übung 2 - eine Schleife?

Beitrag von Prof. Karsten Weihe »

Domac hat geschrieben: Allerdings bin ich mir wirklich im unklarem was man bei Aufgabenteil b) machen soll… wie stelle ich die Schleifeninvariante auf und was ist die Schleifenvariante?
Darüber habe ich bei jedem Algorithmus in der Vorlesung intensiv gesprochen, und in den bisher gezeigten Videos kamen Invariante und Variante ebenfalls immer wieder vor... :roll:

Für aufgabennahe Beispiele schauen Sie hier:
http://wiki.algo.informatik.tu-darmstad ... Array_list
http://wiki.algo.informatik.tu-darmstad ... list:_find
http://wiki.algo.informatik.tu-darmstad ... t_position
http://wiki.algo.informatik.tu-darmstad ... st:_remove

KW

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Übung 2 - eine Schleife?

Beitrag von JannikV »

Kurz:

Die Schleifeninvariante ist eine Eigenschaft die nach, bzw. vor jeder Iteration erfüllt ist. Potentiell abhängig von der Nummer der Iteration.
Also etwa, "Nach i Iterationen sind die ersten i Elemente sortiert."

Die Schleifenvariante beschreibt die Änderung die von einer Iteration zur nächsten passiert.
Also beispielsweise, "Die Variable i wird um 1 erhöht."

Kann man nach Möglichkeit natürlich noch mathematischer aufschreiben.

Wenn man sich überlegt was das bedeutet:
Aus Schleifeninvariante und -variante folgt die Korrektheit des Algorithmus.
Aus Variante und Abbruchbedingung folgt, dass der Algorithmus terminiert.

VG

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Übung 2 - eine Schleife?

Beitrag von Prof. Karsten Weihe »

Domac hat geschrieben: wie stelle ich die Schleifeninvariante auf und was ist die Schleifenvariante?
Dazu gibt es auch demnächst ein Video "ProblemsAndAlgorithms" - ist im Prinzip schon fertig, aber noch nicht hochgeladen und freigeschaltet.

KW

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Re: Übung 2 - eine Schleife?

Beitrag von Domac »

Vielen Dank für das Beispiel und die Links! Mit den Videos kann ich persönlich nichts anfangen… habe dazu auch schon einmal Feedback in diesem Forum dazu gegeben.
Das Beispiel im Wiki bei "Array list: find" ist jedoch gut, ich werde mal gucken wie ich damit zurecht komme.
Die Vorlesung kann ich aus Zeitmangel leider nicht besuchen…

Noch eine Frage zu Aufgabenteil a). Soll compress() auch auf Listen der Form "empty→empty→empty→non-empty", wobei empty/non-empty sich auf das array bezieht, funktionieren?

Grüße
Extend my dropbox space (here).
Thanks!

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Übung 2 - eine Schleife?

Beitrag von JannikV »

Eigentlich sollte das keine gültige ArrayList sein. In einer solchen müsste in jedem Array mindestens ein Wert stehen. Dafür muss ggf. eine remove Methode sorgen (die ja nicht zu implementieren ist.)

Ich sage also mal nein.

JohnDoe
Windoof-User
Windoof-User
Beiträge: 24
Registriert: 9. Okt 2011 13:26

Re: Übung 2 - eine Schleife?

Beitrag von JohnDoe »

JannikV hat geschrieben:Sondern dass du die ganzen Elemente als lineare Sequenz betrachten sollst und über diese iterierst.
Ich verstehe noch nicht ganz über was ich letztlich iterieren soll. Wenn ich - nach meinem Verständnis - die Elemente als Lineare Sequenz betrachte, iteriere ich doch letztlich immernoch über jedes einzelne Element der Sequenz und damit ja schließlich über die ListItems...?

Danke
John

Benutzeravatar
JannikV
Nerd
Nerd
Beiträge: 609
Registriert: 24. Apr 2011 12:42

Re: Übung 2 - eine Schleife?

Beitrag von JannikV »

Letztlich ja. Also natürlich iterierst du auch über die Items. Aber eher indirekt. Also du iterierst über die Elemente im ersten Array, wenn du da durch bist über die des zweiten, wenn du da durch bist über die des dritten usw.

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Re: Übung 2 - eine Schleife?

Beitrag von Domac »

@JohnDoe Man soll ja nur eine Schleife verwenden und ich habe es so gemacht, dass ich eben bei der condition der Schleife nicht über die ListItems iteriere (als nicht sowas wie "foreach listitem li of list" plump gesagt). Ich iteriere eher über die sequentiell geschalteten arrays. Das dabei zwangsläufig ein interner pointer der listitems in der Schleife verschoben wird ist implizit klar… ich hoffe, dass dir das weiterhilft! :-)

Vielleicht noch ein kleiner Tipp:
Ich habe mich erstmal hingesetzt und habe sehr abstrakte Kommentarzeilen geschrieben und darunter dann den code! :-)
Also erstmal die Funktion in der Theorie entwerfen.

Grüße
Extend my dropbox space (here).
Thanks!

Prof. Karsten Weihe
Dozentin/Dozent
Beiträge: 1824
Registriert: 21. Feb 2005 16:33

Re: Übung 2 - eine Schleife?

Beitrag von Prof. Karsten Weihe »

Domac hat geschrieben: Die Vorlesung kann ich aus Zeitmangel leider nicht besuchen…
Es gibt auch die Aufzeichnungen der Vorlesung vom letzten Jahr.

KW

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Re: Übung 2 - eine Schleife?

Beitrag von Domac »

Prof. Karsten Weihe hat geschrieben:
Domac hat geschrieben: Die Vorlesung kann ich aus Zeitmangel leider nicht besuchen…
Es gibt auch die Aufzeichnungen der Vorlesung vom letzten Jahr.
Wo wieder das Problem ist, dass ich mit Videos wirklich absolut nicht arbeiten kann… wie ich schon erwähnt hatte.

Grüße
Extend my dropbox space (here).
Thanks!

Antworten

Zurück zu „Archiv“