Zum Inhalt springen

Wie wird Pseudocode bewertet? Ist das Pseucode? (FIAE)


Empfohlene Beiträge


 Hier ist mein Beispiel Code für HS2 für die Prüfung Winter 2019/20 GA1

erzeugeListe(persnr: int, zeiten : zweidim, Tabelle vom Typ int, jahr: int, monat :int):
	
	schreibeKopf(persnr, jahr, monat)
	dateTime anwesenheit = ""
	int summeAnwesenheit = 0
	int tageImMonat = 0
	for(int x = 0; x < zeiten.length; x++)
		for(int y; y < zeiten[x].length; y++):
			String bemerkung = ""
		
			tageImMonat = tageImMonat(monat, jahr)
			
			if(zeiten[1][y] == null):
				bemerkung = "nicht anwesend"
			else if (zeiten[2][y] == null):
				bemerkung "Buchung fehlt"
			
			if(y > 1):
				anwesenheit = zeiten[2][y] - zeiten[1][y]
				summeAnwesenheit = summeAnwesenheit  + anwesenheit
					
			if(tageImMonat > zeiten[0][y).length):
				break;
			
			schreibeZeile(zeiten[0][y], zeiten[1][y], zeiten[2][y], zeiten[3][y], anwesenheit)
			
	schreibeFuss(summeAnwesenheit)
		

Es ist wie ich eine Pseudocode Aufgabe lösen wurde.

Hier ist allerdings ein Fehler, da ich nicht beachtet habe das die Zeiterassungstabelle keine einzelne Tage beihnaltet.

Wie viel Punkte wurde ich verlieren wenn ich bei der Aufgabe eine Sache nicht beachtet habe?

Mache ich das Falsch? Sollte ich es vielleicht diese Aufgabe sicherheitshalber durchstreichen , oder der Lösungsweg ist einigermaßen richtig und es gibts teilpunkte? (So 15-20?)

PS: Ich lerne schon seit Januar, aber beim Pseucode bin ich mir die Bewertungen der Prüfer nicht sicher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Generell ist es schwierig dir Tipps zu geben, wenn wir nur deinen Lösungsversuch und nicht die Aufgabe kennen.
Ich erinnere mich zufällig an diese Aufgabe von meiner eigenen Prüfungsvorbereitung. Die zweidimensionale Tabelle enthält Zeilen, die je einen Wert für "Tag im Monat", "Stunden" und "Minuten" enthalten. Zu einem Tag kann es unterschiedliche Anzahl an Zeilen geben, auch gar keine. Je nach Anzahl der vorhandenen Zeilen zu jedem Tag soll etwas bestimmtes ausgegeben und ggf berechnet werden, richtig?


Hier ein paar Tipps zu deinem Code:

- Nicht jedes zweidimensionale Array muss mit zwei geschachtelten Schleifen durchlaufen werden. Jede Tabellenzeile von links nach rechts per Schleife durchzulaufen macht hier keinen Sinn. Dass eine deiner Schleifen überflüssig ist, erkennst du auch daran, dass du die Laufvaribale x der äußeren Schleife nirgends verwendet wird.

- du rufst die Funktion tageImMonat bei jedem Schleifendurchgang auf, statt einmal vor der Schleife. (das ist in derPrüfung kein Fehler, aber schön ist es nicht)

- du prüfst ob ein bestimmer Wert des 2D-int Array gleich "null" ist. Das ist im Kontext der Aufgabe nicht verlangt und in vielen Programmiersprachen auch gar nicht möglich. Das würde ich auch im Pseudocode unterlassen. Schlimmer noch: Unabhängig davon wie das Ergebnis der Prüfung ausfällt rechnest du später mit dem Wert.

- Deine Abbruchbedingung macht keinen Sinn. Du greifst auf ein length-Property eines Integers zu? Was bedeutet das? Selbst wenn du einfach den Wert des Integers zeiten[0][y] meinst (der "Tag"-Wert eines Zeiteintrags), funktioniert es nicht: DAnn wird die Schleife beim ersten Druchgang gleich abbrechen.

- Ich würde bei Schleifen und Verzweigungen mit Klammern (oder End-Statements) arbeiten. In deinem Code ist nur durch die Einrückung zu erkennen welcher Code in welche Schleife gehört. Bei handschriftlicher Bearbeitung kann das problematisch sein.

- Du versuchst durch verrechnen zweier int-Werte Zeitspannen zu berechnen. Da jeder int-Wert nur Teil eines Zeitstempels ist (Stunde oder Minute) kann das so nicht funktionieren. In die Berechnung einer Zeitspanne müssen 4 int-Werten einfließen.


Bei dieser Aufgabe würde ich folgende Vorgehensweise wählen:
Zwei schleifen:
Äußere Schleife iteriert über die Tage im Monat: for(int tag = 1; tag <= tageImMonat; tag++){..}
Innere Schleife durchsucht die Tabelle nach zum Tag gehörigen Einträgen und macht alle nötigen PRüfungen und Berechnungen


Zur Bewertung kann ich leider nicht viel sagen. Meiner Ansicht nach würde dein Lösungsvorschlag nicht sehr viele Punkte erzielen, dafür fehlt es schon an einem funktionierenden Grundansatz. (Kann natürlich auch sein, dass ich auf dem Schlauch stehe und die Idee hinter deinem Code nicht verstehe)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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