Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :D 

Die Aufgabe lautet:

image.thumb.png.b6d0d0222c6a80f908491b447db0772b.png

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

Geschrieben (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 von arlegermi
  • 7 Monate später...
Geschrieben

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?

 

 

Geschrieben (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 von Whiz-zarD

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...