Size: 1854
Comment:
|
Size: 1854
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
@Mirko + alle: Gute Frage, ich habe selber gerade die Musterlösung für die Aufgabe geschrieben und habe es wie folgt gehandhabt. Bei ''erase'' müssen ''start'' und ''length'' beide ''>= 0'' sein, ich habe dafür jeweils ein ''assert'' am Anfang der Methode. Ich finde negative Werte für diese Argumenten machen nicht wirklich Sinn bzw. der Sinn wäre zuweit hergeholt. Sonst ist aber alles erlaubt, also sowohl dass der ''start'' erst am oder nach dem Ende des strings kommt (dann wird einfach nichts gelöscht) und dass ''start + length'' bis über den string hinausgeht (dann wird halt von ''start'' bis zum Ende des strings gelöscht). Diese Randfälle sollten natürlich alle in dem Test für diese Methode berücksichtigt werden. Bei insert habe ich sowohl einen ''assert(start >= 0)'' also auch einen ''assert(start <= _length)'' weil alles andere keinen Sinn macht. '''Hannah 2Jun10 21:42''' | @Mirko + Alle: Gute Frage, ich habe selber gerade die Musterlösung für die Aufgabe geschrieben und habe es wie folgt gehandhabt. Bei ''erase'' müssen ''start'' und ''length'' beide ''>= 0'' sein, ich habe dafür jeweils ein ''assert'' am Anfang der Methode. Ich finde negative Werte für diese Argumenten machen nicht wirklich Sinn bzw. der Sinn wäre zuweit hergeholt. Sonst ist aber alles erlaubt, also sowohl dass der ''start'' erst am oder nach dem Ende des strings kommt (dann wird einfach nichts gelöscht) und dass ''start + length'' bis über den string hinausgeht (dann wird halt von ''start'' bis zum Ende des strings gelöscht). Diese Randfälle sollten natürlich alle in dem Test für diese Methode berücksichtigt werden. Bei insert habe ich sowohl einen ''assert(start >= 0)'' also auch einen ''assert(start <= _length)'' weil alles andere keinen Sinn macht. '''Hannah 2Jun10 21:42''' |
Fragen und Kommentare zur 6. Vorlesung / zum 6. Übungsblatt
@Mirko + Alle: Gute Frage, ich habe selber gerade die Musterlösung für die Aufgabe geschrieben und habe es wie folgt gehandhabt. Bei erase müssen start und length beide >= 0 sein, ich habe dafür jeweils ein assert am Anfang der Methode. Ich finde negative Werte für diese Argumenten machen nicht wirklich Sinn bzw. der Sinn wäre zuweit hergeholt. Sonst ist aber alles erlaubt, also sowohl dass der start erst am oder nach dem Ende des strings kommt (dann wird einfach nichts gelöscht) und dass start + length bis über den string hinausgeht (dann wird halt von start bis zum Ende des strings gelöscht). Diese Randfälle sollten natürlich alle in dem Test für diese Methode berücksichtigt werden. Bei insert habe ich sowohl einen assert(start >= 0) also auch einen assert(start <= _length) weil alles andere keinen Sinn macht. Hannah 2Jun10 21:42
Hi, wie sollen wir den Fall bei erase(..) behandeln wenn start negativ ist, (und auch der Fall wenn length negativ ist). Man könnte bei erase(-10,12) ja z.b. die ersten beiden Zeichen löschen. Und bei erase(5,-3), die Zeichen an den Stellen 5,4,3. Oder dürfen wir in diesen Fällen einen Fehler ausgeben / den String unverändert lassen. Mirko 2Jun10 21:21
@Alle: Habe gerade noch eine Destruktor + Test zu meinem Code aus vorlesung-6 hinzugefügt, also wenn Sie den schon bei sich runtergeladen haben, machen Sie ein svn update. Hannah 2Jun10 20:05
@Simson + Alle: Ja, da gab es gerade Probleme, aber laut Jens Hoffmann sollte jetzt wieder alles gehen. Die Dateien von der Vorlesung heute habe ich bereits hochgeladen. Hannah 2Jun10 19:54
Die svn-Ordner der Vorlesungsdateien und Musterlösungen sind gesperrt? Simson 2Jun10 18:55