Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- C++ Sprache (http://www.informatikerboard.de/board/thread.php?threadid=3677)


Geschrieben von as_string am 30.08.2017 um 14:27:

 

Das mit dem letzten Index und der Arraygröße hast Du gerade falschrum verstanden:
Beim Anlegen eines neuen Arrays musst Du die Größe angeben. Die ist hier m_numberOfEntries + 1, weil das neue eins größer sein soll, das hat also schon gestimmt gehabt.
Aber beim kopieren des neuen Eintrags an letzter Stelle des neuen Arrays musst Du den letzten Index nehmen. Der ist aber immer genau eins kleiner als die Größe des Arrays (ist doch logisch: Wenn Du 3 "Dinger" in der Hand hast und diese von 0 an durchnummerierst, also dem ersten gibst Du den index 0, dann 1 dann 2, dann ist der höchste Index 2 obwohl Du 3 in der Hand hast).
Wenn Du aber von m_numberOfEntries + 1 wieder 1 abziehst, dann kommt m_numberOfEntries raus (Du brauchst nicht +1 und dann wieder -1 schreiben, das hatte ich nur so gemacht, um zu verdeutlichen, dass ich eigentlich von der Arraygröße eine Eins abgezogen habe, was aber in diesem Fall eben gerade zum alten m_numberOfEntries-Wert führt).

Schlagen könnte ich Dich dafür, dass Du schon wieder m_numberofSize benutzt! Die Variable gibt es hier doch überhaupt gar nicht und hat es auch noch nie gegeben! Sei doch mal etwas konzentriert, ist ja wirklich schlimm... Das hat auch nichts damit zu tun, ob Du Dir schwer tust mit Programmieren oder nicht, sondern ist schlicht Schlamperei!

Schlimm finde ich auch, dass Du immer noch die Zuweisungen falsch herum machst!
Angenommen ich habe zwei int-Variablen a und b, a habe den Wert 1 und b den Wert 2. Welchen Wert haben beide dann nach der Zeile:
a = b;

Die Zeile 34 ist wieder völliger Blödsinn. Du schreibst im Kommentar richtig, was Du machen willst. Da schreibst Du was von neuem Array, wo bitte kommt aber das neue Array in Deiner Anweisung überhaupt auch nur vor??? Das kann doch nicht sein, wenn ich schreibe, ich will was von m_entries ins neue Array kopieren das neue Array überhaupt gar nicht vorkommt. Davon abgesehen ist die Zuweisungsrichtung auch wieder falsch, vermute ich.

Zeile 37 verwendet i. Das ist aber nach dem Schleifendurchlauf auf dem Wert von m_numberOfEntries und der letzte Index ist dann nicht i+1 sonder m_numberOfEntries. Allerdings ist da auch wieder ein neues Problem: Du verwendest die ganze Zeit die Variable i, die ist aber nirgends deklariert. Welchen Typ hat den die Variable überhaupt, das steht ja nirgends.
Dann würde ich außerhalb der for-Schleife i. A. die Indexvariable der for-Schleife i gar nicht mehr verwenden. Eigentlich willst Du ja auf das letzte Element von newEntries zugriefen, das ist aber einfach newEntries[m_numberOfEntries] wie ich schon mehrfach geschrieben habe.

Was ich aber nicht verstehe: Du hast in der Schleife jetzt ein if() mit einem Datumsvergleich eingebaut (beim if fehlt übrigens das i) und schiebst dann auch an der richtigen Stelle den neuen Termin ein. Das machst Du übrigens ab diesem Zeitpunkt dann immer. Du musst Dir irgendwie merken, ob Du entry schon ins neue Array kopiert hast oder nicht! Du darfst entry nur einmal einfügen. Insbesondere darfst Du entry auch nur dann an die letzte Stelle kopieren, wenn Du vorher das noch nicht eingefügt hast. Ich verstehe auch gar nicht, warum wir jetzt mit der einfachen Sache angefangen hatten, dass wir die Sortierung für den Moment mal ignorieren und einfach immer hinten einfügen, aber Du jetzt wieder diese if-Anweisung überhaupt drin hast.
Danach musst Du Dir noch überlegen, was eigentlich mit dem Zielindex des neuen Arrays ist, wenn Du entry schon eingefügt hast. Ich habe das jetzt schon einige Male versucht zu erklären, bringt wohl auch nichts, wenn ich es nochmal versuche...

Gruß
Marco



Geschrieben von Victor am 30.08.2017 um 14:35:

 

Ok ich gebe jetzt einfach auf und fange mit einer neuen Aufgabe an .

Ich glaube das ist noch einfach zu schwer für mich im Moment.

Vielleicht wird es mit der Zeit besser .

Melde mich glaube ich heute noch mit ner neuen Aufgabe großes Grinsen



Geschrieben von as_string am 30.08.2017 um 14:44:

 

Ich denke, Du solltest Dir wirklich zuerst die Grundlagen aneignen, glaube mir, macht viel mehr Sinn!

Gruß
Marco


Forensoftware: Burning Board, entwickelt von WoltLab GmbH