Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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...

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?

 

 

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.