Aufgabe Vorschlag C2 - Aufgabe 3 · Abitur Hessen Informatik LK 2021

Thema: Registermaschine und Berechenbarkeit · Aus der Prüfung LK (2021)

Aufgabenstellung

Containercodes

In der Containerschifffahrt erhält jeder Container einen weltweit eindeutigen Code aus zehn Zeichen. Die ersten drei Zeichen sind der Reederei-Schlüssel, der aus drei Großbuchstaben besteht. Das vierte Zeichen ist ein Produktgruppenschlüssel, der je nach Art des Containers eines der Zeichen U, J oder Z ist. Die letzten sechs Zeichen stellen die Registriernummer dar, wobei für Zahlen kleiner 100000 die Ziffernfolge vorne mit Nullen aufgefüllt wird. Ein möglicher Containercode ist beispielsweise FTLU006293.

Die letzte Ziffer der Registriernummer ist eine Kontrollziffer. Sie muss so gewählt sein, dass das Ergebnis des folgenden Überprüfungsalgorithmus ein Vielfaches von 10 ist.

Die Großbuchstaben werden anhand der Tabelle in Material 1 durch Zahlen ersetzt. Im Überprüfungsalgorithmus werden dann von links nach rechts die Stellen des Containercodes mit den Zahlen 1 bis 10 multipliziert; die erste Stelle mit 1 und die letzte mit 10. Die Ergebnisse werden aufsummiert und die entstehende Summe ganzzahlig durch 11 geteilt.

Material 1

Tabelle zur Codierung der Buchstaben in Containercodes

A · B · C · D · E · F · G · H · I · J · K · L · M

10 · 12 · 13 · 14 · 15 · 16 · 17 · 18 · 19 · 20 · 21 · 23 · 24

N · O · P · Q · R · S · T · U · V · W · X · Y · Z

25 · 26 · 27 · 28 · 29 · 30 · 31 · 32 · 34 · 35 · 36 · 37 · 38

3 Implementieren Sie den Überprüfungsalgorithmus durch ein kommentiertes Registermaschinenprogramm. Ist der Containercode korrekt, soll nach der Überprüfung eine 1 im Akkumulator stehen, andernfalls eine 0. Sie dürfen davon ausgehen, dass die Großbuchstaben bereits durch die entsprechenden Zahlen der Tabelle in Material 1 ersetzt sind und der Containercode in den Registern 1 bis 10 der Registermaschine steht.

Aufgabenstellung: Aufgabe Vorschlag C2 - Aufgabe 3 · Abitur Hessen Informatik LK 2021

Lösung

Nach den offiziellen Korrekturhinweisen

Implementieren Sie den Überprüfungsalgorithmus durch ein kommentiertes Registermaschinenprogramm. Ist der Containercode korrekt, soll nach der Überprüfung eine 1 im Akkumulator stehen, andernfalls eine 0. Sie dürfen davon ausgehen, dass die Großbuchstaben bereits durch die entsprechenden Zahlen der Tabelle in Material 1 ersetzt sind und der Containercode in den Registern 1 bis 10 der Registermaschine steht.

Lösung: ```pseudocode // Registerbelegung // R1-R10: Eingabe des Container-Codes // R11: Laufvariable // R12: Zwischensumme // R13: Divisionsergebnis LOAD #1 // Initialisierung der Laufvariablen STORE 11 // Position des Feldes und Wert des Multiplikators Loop: LOAD *11 MUL 11 // Produktbildung ADD 12 // Zwischensumme erhöhen STORE 12 LOAD 11 // Index weiterschalten ADD #1 STORE 11 LOAD 11 SUB #10 // Test auf Ende des Codes (> 10) JNZERO Ende GOTO Loop Ende: LOAD 12 // abschließende Division DIV #11 STORE 13 DIV #10 // Prüfung auf Vielfaches von 10 MUL #10 STORE 14 LOAD 13 SUB 14 JZERO Korrekt LOAD #0 // Containercode falsch END Korrekt: LOAD #1 // Containercode korrekt END ```

Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium

Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.

‹ Aufgabe Vorschlag C1 - Aufgabe 4 · LK 2021

Mehr Aufgaben zu Registermaschine und Berechenbarkeit