Maschulinka Geschrieben 28. März 2019 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 28. März 2019 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tobeje Geschrieben 22. November 2019 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Whiz-zarD Geschrieben 22. November 2019 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.