Maschulinka Geschrieben 28. März 2019 Geschrieben 28. März 2019 Hallo zusammen! Ich bin nicht besonders gut in Pseudocode schreiben und würde euch bitten, meine aktuelle Aufgabe zu bewerten bzw. alternative Lösungsmöglichkeiten oder Korrekturvorschläge anzubieten... oder mir zu sagen, ob es überhaupt als Pseudocode durch geht Die Aufgabe lautet: Ich habe dazu etwas zusammen geschrieben und bin damit echt unsicher ... im Prüfungsfall achte ich natürlich auf Groß- und Kleinschreibung etc., habe das jetzt mal schnell im Editor nicht gemacht aktuellezeilefehlerarray = 0 aktuellezeileliste = 0 schleife array durch reihen bis letzte reihe schleife array durch spalten bis letzte spalte wareid = wert an spalte 0 der aktuellen reihe regalnr = wert an spalte 1 der aktuellen reihe ebennr= wert an spalte 2 der aktuellen reihe fachnr = wert an spalte 3 der aktuellen reihe fahreregalan(regalnr) fahreebenean(ebenenr) fahrefachan(fachnr) pruefeware(wareid) wenn pruefeware = true entnehmeware(regalnr, ebenenr, fachnr) else kopierezeile(liste, fehler, aktuellezeileliste, aktuellezeilefehlerarray) aktuellezeilefehlerarray++ aktuellezeileliste++ ende schleife ende schleife Was könnt ihr mir für Tipps geben? Bitte lieb sein, hab es versucht Liebe Grüße, Mascha
arlegermi Geschrieben 28. März 2019 Geschrieben 28. März 2019 (bearbeitet) Sieht erstmal gut aus. Ich finde es etwas ungewöhnlich, sich in Pseudocode so weit von "echtem" Code zu entfernen, aber das ist an sich legitim. Ein paar Kleinigkeiten: Du rufst zwar die Methode pruefeware(...) auf, merkst dir die Antwort aber nirgends. Mag sein, dass das bei den Prüfern so durchgeht, ich hätte erwartet, dass du eine Variable deklarierst, in der du dir das Ergebnis merkst (die du dann in der Bedingung drunter benutzt). Du könntest dir das manuelle Hochzählen von "aktuellezeileliste" sparen, wenn du eine Schleife mit Index gewählt hättest. Ganz kleine Kleinigkeit (auf keinen Fall ein Fehler): Ich würde die Schleifenvariable nicht "Reihe" nennen, sondern "Zeile" - das ist geläufiger. Ich finde es aber z.B. gut, dass du den Spaltenwerten sprechende Namen gibst (wareid, ...). Das macht das ganze übersichtlicher. Bearbeitet 28. März 2019 von arlegermi Maschulinka reagierte darauf 1
Tobeje Geschrieben 22. November 2019 Geschrieben 22. November 2019 Kann man sich die Zweite Schleife nicht sparen? ich hätte die Aufgabe jetzt so gelöst: entnehmeWaren(liste) aktuellezeilefehlerarray = 0 für int i = 0 solange i < liste länge wareid = liste[i][0] regalnr = liste[i][1] ebennr= liste[i][2] fachnr = liste[i][3] fahreregalan(regalnr) fahreebenean(ebenenr) fahrefachan(fachnr) wenn pruefeware(wareid) = true dann entnehmeware(regalnr, ebenenr, fachnr) sonst kopierezeile(liste, fehler, i, aktuellezeilefehlerarray) aktuellezeilefehlerarray++ ende schleife ende entnehmeWahren(liste) wäre das so auch richtig?
Whiz-zarD Geschrieben 22. November 2019 Geschrieben 22. November 2019 (bearbeitet) Für mich sieht es sogar so aus, dass die zweite Schleife falsch ist und jetzt deine Lösung richtig ist. Die zweite Schleife macht ja keinen Sinn. Sie durchläuft ja nun die Spalten der Zeilen aber das ist nicht nötig, da die Spalten über einen Index angesprochen werden. Du könntest aber die Zeilen: kopierezeile(liste, fehler, i, aktuellezeilefehlerarray) aktuellezeilefehlerarray++ in: kopierezeile(liste, fehler, i, aktuellezeilefehlerarray++) ändern. Das hat den selben Effekt, da das Doppel-Plus eine Post-Inkrement-Operation ist. D.h. es wird nach dem Abrufen des Wertes dieser inkrementiert. Bearbeitet 22. November 2019 von Whiz-zarD Tobeje reagierte darauf 1
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden