FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

P2 E1.2

P2 E1.2 2003-05-05 15:08
Anonymer User
Zitat : Implementiert die Operation analysiereStundendaten().

hem, mir is ja nicht so ganz klar wo man die jetzt implementieren soll, in einer der vier klassen, oder sollen wir da ne neue klasse fuer erstellen???

danke :)

Re: P2 E1.2 2003-05-05 18:13
Fred
Zitat : Implementiert die Operation analysiereStundendaten().

hem, mir is ja nicht so ganz klar wo man die jetzt implementieren soll, in einer der vier klassen, oder sollen wir da ne neue klasse fuer erstellen???

danke :)
Schau Dir mal den Quellcode der einzigen Klasse an, mit der Du Dich laut Aufgabenzettel beschaeftigen sollst ;-)
Da ist naemlich bereits eine entsprechende (noch) leere Methode, die Du fuellen sollst.

Re: P2 E1.2 2003-05-05 18:16
Fred
Ach ja zum Vergleich noch das Ergebnis von Aufgabe 1.2

Stunde: Zugriffe 0: 10 1: 21 2: 15 3: 8 4: 0 5: 18 6: 1 7: 7 8: 16 9: 7 10: 3 11: 9 12: 19 13: 20 14: 12 15: 28 16: 15 17: 11 18: 15 19: 13 20: 2 21: 17 22: 15 23: 9

Re: P2 E1.2 2003-05-12 15:53
RaggaDee
Kann mal jemand bei Implementation helfen?

public void analysiereStundendaten() { while (leser.hatWeitereEintraege()) { zugriffeInStunde[] = leser.naechsterEintrag(); } }
So gehts schon mal nicht, also wie fülle ich ein Array über Objekt Referenzen??

Re: P2 E1.2 2003-05-12 16:20
Dosenwein
Kann mal jemand bei Implementation helfen?


public void analysiereStundendaten()
{

while (leser.hatWeitereEintraege())
{
zugriffeInStunde[] = leser.naechsterEintrag();
}
}



So gehts schon mal nicht, also wie fülle ich ein Array über Objekt Referenzen??


ich glaube es gab da sowas wie ne Methode in Logeintrag die gibStunde() hiess.

Du musst halt den Logeintrag den du über leser.naechstereintrag() bekommst in einem selbsterstellten Logeintrag speichern, und daraus dann durch eintrag.gibstunde() die stunde auslesen.
Dann erhoehst du den entsprechenden array-wert um einen.

public void analysiereStundendaten()
{
int stunde;
while (leser.hatWeitereEintraege())
{
Logeintrag eintrag = leser.naechsterEintrag();
stunde = eintrag.gibStunde();
zugriffeInStunde[stunde]++;
}
}


Dosenwein

scheiss tabs….



Re: P2 E1.2 2003-05-12 16:24
Da:Sourcerer
public void analysiereStundendaten()
{
int stunde;
while (leser.hatWeitereEintraege())
{
Logeintrag eintrag = leser.naechsterEintrag();
stunde = eintrag.gibStunde();
zugriffeInStunde[stunde] = ++;
}
}
Och mensch, leute…


public void analysiereStundendaten() { while (leser.hatWeitereEintraege()) { Logeintrag eintrag = leser.naechsterEintrag(); zugriffeInStunde[eintrag.gibStunde()]++; } }

Re: P2 E1.2 2003-05-12 16:27
Dosenwein
Och mensch, leute…

Was jammerst du denn,

das mit stunde diente lediglich der übersichtlichkeit… :)))

Dosenwein

Uups, seh grade "zugriffeInStunde[] = ++;" . arghhh….
muss natürlich das = weg..

Re: P2 E1.2 2003-05-12 16:57
MoKrates
public void analysiereStundendaten() { while (leser.hatWeitereEintraege()) zugriffeInStunde[leser.naechsterEintrag().gibStunde()]++; }
Kuerzer is schoener :)
Is aber genau so gut.

SCNR

MoKrates

Re: P2 E1.2 2003-05-12 17:20
Da:Sourcerer
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Re: P2 E1.2 2003-05-12 18:09
TriPhoenix
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Kann man [img]http://www.fb18.de/gfx/22.gif[/img]


Re: P2 E1.2 2003-05-12 19:53
RaggaDee
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Kann man [img]http://www.fb18.de/gfx/22.gif[/img]
… solange der Rumpf aus einer Anweisung besteht, wie beim if



Re: P2 E1.2 2003-05-12 19:54
TriPhoenix
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Kann man [img]http://www.fb18.de/gfx/22.gif[/img]
… solange der Rumpf aus einer Anweisung besteht, wie beim if

Logo, sonst müsste Java wirklich ganz schön raten, wann das while/if denn nun vorbei sein soll :)

Re: P2 E1.2 2003-05-12 22:36
UncleOwen
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Kann man [img]http://www.fb18.de/gfx/22.gif[/img]

Soll man aber nicht (hab ich zumindest in Erinnerung, dass Zülli das mal erwähnt hat)

Re: P2 E1.2 2003-05-12 22:37
UncleOwen
Logo, sonst müsste Java wirklich ganz schön raten, wann das while/if denn nun vorbei sein soll :)

Und immer schön aufs "dangling else" aufpassen ;)

Re: P2 E1.2 2003-05-13 01:28
Anonymer User
Ich weiß atm nicht, ob man in Java die Klammern vom while einfach wegnehmen kann…
Hatte da bei solchen Spielchen schon ein paar böse Überraschungen[img]http://www.fb18.de/gfx/16.gif[/img]

Kann man[img]http://www.fb18.de/gfx/22.gif[/img]

Soll man aber nicht (hab ich zumindest in Erinnerung, dass Zülli das mal erwähnt hat)

Habe in den P2-Übungungen auch wieder sowas gesehen:

while (somethingToTest()) doThis(); doThat(); goOn();
Hmmm, komisch daß doThat() nicht in jedem Schleifendurchlauf ausgeführt wird. [img]http://www.fb18.de/gfx/24.gif[/img]

marko

Re: P2 E1.2 2003-05-13 01:56
MoKrates
Lach da nicht drueber. Es gibt tatsaechlich Programmiersprachen, die die Verschachtelung daran erkennen, wie Zeilen eingerueckt werden. Sind IIRC aber nur dazu da, um nicht lernen-wollenden Studenten beizubringen, dass eingerueckte Bloecke besser lesbar sind :)

Ansonsten sowieso:
Wenn man etwas schreibt, dann sollte man wissen, was man tut. Weiss man es nicht, so sollte man es besser auf die sichere Art und Weise tun (in Java: Klammern setzen)

Klammern weglassen kann man in Java ueberall, ausser bei
try/catch/finally, synchronized, methodendefinitionen, klassendefinitionen… bei "switch" weiss ich es nicht genau…

Auf jeden Fall aber bei: while, do, for, if/else.
Bei if/else, wie UncleOwen schon erwaehnte, unbedingt darauf aufpassen (wenn man die Klammern weglaesst), dass man keine Doppeldeutigkeiten erzeugt. Der Compiler uebersetzt das naemlich gewoehnlich anstandslos, nur man kriegt nicht das, was man erwartet. Zur Not lieber Klammern. Will man das nicht, so kann man die Doppeldeutigkeit durch ein "else ;" loswerden.

MoKrates

Re: P2 E1.2 2003-05-13 13:53
asdf
Lach da nicht drueber. Es gibt tatsaechlich Programmiersprachen, die die Verschachtelung daran erkennen, wie Zeilen eingerueckt werden.
@Mokrates: Kannst du mal ein Programmiersprache als Beispiel
nennen; mir ist noch keine unter die Augen gekommen, wo der
Compiler/Parser die Verschachtelung and der Zeileneinrueckung
erkennt.

TIA


Re: P2 E1.2 2003-05-13 15:09
Faleiro
Python, glaube ich :-)

Re: P2 E1.2 2003-05-13 16:31
Anonymer User
Python, glaube ich :-)

Ja, ist in Python definitiv so.

Die Geschmäcker spalten sich daran. Wer Python liebt, mag meist diese "Blockbildung durch Einrückung"; wer Python ablehnt, kann sich oft über dieses seltsame Eigenart aufregen.

Ich bin ein Hybrid: Die Idee, so Blöcke zu kennzeichnen finde ich durchaus gut, Python mag ich trotzdem nicht allzu gerne. Wenn es um Sprachen dieser Art geht, hängt mein Herz an Ruby, aber auch mit Perl habe ich schon viel gemacht.

marko

Re: P2 E1.2 2003-05-13 19:15
MoKrates
Es ist glaub ich am weitesten verbreitet, seine Bloecke durch Einrueckung leichter lesbar zu machen. Haeufig ist es allerdings so, dass die Situation eine andere Formatierung sinnvoll macht. In diesen Faellen, moechte man dann auch die Moeglichkeit haben, anders zu formatieren, ohne jedoch eine komplett andere Syntax nehmen zu muessen (wie es zB in Basic der Fall ist).

MoKrates