Theoretische Übung 2

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

Re: Theoretische Übung 2

Beitrag von Prof. Karsten Weihe »

Seldon hat geschrieben:
Übungsblatt 2 hat geschrieben:[...] und es darf zusätzlich nur eine einzige Schleife verwendet werden. Diese Schleife soll nicht über die ListItems iterieren, sondern über die Elemente der abstrakten Sequenz.
Das "zusätzlich" verwirrt mich. Ist das im Sinne von "außerdem", also es gibt insgesamt nur eine Schleife
Ja, mit "zusätzlich" ist gemeint: "Eine zusätzliche Einschränkung für Ihren Lösungsansatz ist, dass nur eine einzige Schleife insgesamt verwendet werden darf."

KW

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

Re: Theoretische Übung 2

Beitrag von JannikV »

Jaa, du kannst das auch schlauer initialisieren.

Aber du darfst nur genau eine Schleife insgesamt verwenden.

VG

EDIT: da war der Prof schneller xD aber schon seit 10 minuten oO ich sollte auch mal die seite umblättern =P

sab
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 28. Okt 2011 08:42

Re: Theoretische Übung 2

Beitrag von sab »

JannikV hat geschrieben:Erstmal greifst du dir das erste ListItem heraus und setzt eine int Variable auf 0 so dass die praktisch den Anfang dieses ersten Arrays markiert. Dann erhöhst du die immer weiter bis das Array zu ende ist. Dann wird die Variable auf das nächste ListItem gesetzt und es geht von vorne los.
Ich glaube, ich stehe immernoch auf dem Schlauch^^ Wenn ich mir das erste ListItem herausgreife -- tue ich dann nicht genau das, was ich nicht tun soll, nämlich über die ListItems iterieren?

Benutzeravatar
m_plaul
Windoof-User
Windoof-User
Beiträge: 39
Registriert: 27. Mai 2009 12:43

Re: Theoretische Übung 2

Beitrag von m_plaul »

sab hat geschrieben:
JannikV hat geschrieben:Erstmal greifst du dir das erste ListItem heraus und setzt eine int Variable auf 0 so dass die praktisch den Anfang dieses ersten Arrays markiert. Dann erhöhst du die immer weiter bis das Array zu ende ist. Dann wird die Variable auf das nächste ListItem gesetzt und es geht von vorne los.
Ich glaube, ich stehe immernoch auf dem Schlauch^^ Wenn ich mir das erste ListItem herausgreife -- tue ich dann nicht genau das, was ich nicht tun soll, nämlich über die ListItems iterieren?
Grundlegend interessieren dich nur die Arrays. Natürlich musst du dich dadurch auch indirekt mit den ListItems beschäftigen, aber nur dann, um über das nächste Array zu iterieren.

Mein Lösungsansatz ist folgender:
Ich greife auf das erste Array zu ("das erste" bedeutet hier: Array des ersten ListItems). Dort speichere ich mir die erste null-position. Danach springe ich in das nächste Array (das Array des nächsten ListItems). Sollte ich da einen nicht-null Eintrag finden, speichere ich diesen an die gespeicherte null-position, setze die gefundene Zahl auf null und springe wieder zurück ins alte Array um auf weitere null-Einträge zu prüfen. Dazu einige Spezialfälle abfangen und dann solltest du das hinbekommen.

Gruß,
Marco.

sab
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 28. Okt 2011 08:42

Re: Theoretische Übung 2

Beitrag von sab »

m_plaul hat geschrieben:Grundlegend interessieren dich nur die Arrays. Natürlich musst du dich dadurch auch indirekt mit den ListItems beschäftigen, aber nur dann, um über das nächste Array zu iterieren.
Aaaah okay. Das ist für mich zwar über ListItems iterieren - auch wenn ich lediglich den Inhalt, hier eben Arrays, anschaue.
Na gut, dann iteriere ich eben über die ListItems, aber nenne es nicht so ;)

Vielen Dank!

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

Re: Theoretische Übung 2

Beitrag von Prof. Karsten Weihe »

sab hat geschrieben: Na gut, dann iteriere ich eben über die ListItems, aber nenne es nicht so ;)
Hmh, vielleicht verstehe ich die Diskussion ja falsch, aber ...

Jede Iteration Ihrer Schleife betrachtet genau ein gespeichertes Element der abstrakten Sequenz. Dass Sie dann nicht in jeder Iteration auf demselben ListItem sitzen können, ist logisch. Falls Sie das meinten, dann ist es ok.

KW

Benutzeravatar
m_plaul
Windoof-User
Windoof-User
Beiträge: 39
Registriert: 27. Mai 2009 12:43

Re: Theoretische Übung 2

Beitrag von m_plaul »

sab hat geschrieben:
m_plaul hat geschrieben:Grundlegend interessieren dich nur die Arrays. Natürlich musst du dich dadurch auch indirekt mit den ListItems beschäftigen, aber nur dann, um über das nächste Array zu iterieren.
Aaaah okay. Das ist für mich zwar über ListItems iterieren - auch wenn ich lediglich den Inhalt, hier eben Arrays, anschaue.
Na gut, dann iteriere ich eben über die ListItems, aber nenne es nicht so ;)

Vielen Dank!
Du iterierst tatsächlich über das Array, wechselst nur eben hin und wieder das ListItem, um auf ein anderes Array zugreifen zu können^^

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

Re: Theoretische Übung 2

Beitrag von Prof. Karsten Weihe »

m_plaul hat geschrieben: Du iterierst tatsächlich über das Array, wechselst nur eben hin und wieder das ListItem, um auf ein anderes Array zugreifen zu können^^
Man könnte es auch so sagen: Stellen Sie sich die Arrays aneinandergehängt vor. Dieses Super-Array geht man einmal durch. Auf ein Element dieses Super-Arrays greift man zweistufig zu: (1) das konkrete Einzel-Array, (2) das konkrete Element in diesem konkreten Einzel-Array.

KW

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Theoretische Übung 2

Beitrag von studypad »

viewtopic.php?p=141965#p141965

Dort wird mit der Iterationsanzahl etwas anderes gesagt als hier erklärt wird.

Ich bin nun sehr verwirrt und habe mittlerweile 2 Lösungsvarianten entwickelt.

Meiner Meinung nach funktioniert es nicht wenn wir nur über die vorhandenen Elemente iterieren. Hingegen ist die Super-Array-Idee logischer, somit iterieren wir aber über maximal AnzDerListItems*N Elemente.

wima
Neuling
Neuling
Beiträge: 1
Registriert: 27. Apr 2012 20:22

Re: Theoretische Übung 2

Beitrag von wima »

Ich hätte eine Frage zum löschen: Und zwar wenn ich ein Element gleich null setze wird es dann gelöscht und die anderen rücken nach?

Seldon
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 119
Registriert: 19. Apr 2012 18:12

Re: Theoretische Übung 2

Beitrag von Seldon »

wima hat geschrieben:Ich hätte eine Frage zum löschen: Und zwar wenn ich ein Element gleich null setze wird es dann gelöscht und die anderen rücken nach?
Nachrücken nicht von alleine ;) Ein Array ist keine verkettete Liste, sondern ein geschlossener Bereich im Speicher mit fester Feldbreite.

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

Re: Theoretische Übung 2

Beitrag von Prof. Karsten Weihe »

studypad hat geschrieben:viewtopic.php?p=141965#p141965

Dort wird mit der Iterationsanzahl etwas anderes gesagt als hier erklärt wird.
:?: :?: :?: :shock:

Meines Erachtens sind die beiden Erklärungsansätze zwar aus unterschiedlicher Sicht, aber 100% miteinander konsistent. Der Super-Array aus meine obigen Metapher würde ebenfalls vier echte(!) Elemente enthalten. Nur über diese vier wird iteriert. Das geht, weil zu jedem eigentlichen Array ja immer die Anzahl echter Elemente in der Variablen n mitgespeichert wird, so dass man jeden der eigentlichen Arrays nach n Schritten verlassen kann.

KW

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Theoretische Übung 2

Beitrag von studypad »

Okay. stimmt. Kann mich korrigieren:

Es funktioniert. Es ist durchaus lösbar, auch wenn ich es nur auf dem Papier, aber mit rund 4-5 Beispielen die auch die Randfälle abdecken durchgespielt habe.

sven.lohrmann
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 26. Apr 2012 12:16

Re: Theoretische Übung 2

Beitrag von sven.lohrmann »

Ich hab auch noch einige Verständnisprobleme. Wenn man über Elemente der Arrays iteriert muss man doch zwangsläufig auch über die ListItems iterieren, denn irgendwie muss man ja zum nächsten Element der Liste gelangen. Wenn ich eine Schleife habe welches das Array durchläuft und nach dem letzten Element des Arrays den Pointer auf das nächste Array (Listenelement) setze ist dies schließlich auch eine Iteration oder lieg ich hier falsch?

kathi^_^
Erstie
Erstie
Beiträge: 11
Registriert: 28. Apr 2012 17:19

Re: Theoretische Übung 2

Beitrag von kathi^_^ »

Hallo,
Ich hab mir das Forum durchgelesen, aber mir ist eine Sache immer noch unklar.
Darf man jetzt bei einer In-Place Programmierung neue int Variablen anlegen oder verstößt das gegen die Konventionen von In-Place Programmierung?

Antworten

Zurück zu „Archiv“