Beispielaufgabe. Informatik, Leistungskurs

Ähnliche Dokumente
Ministerium für Schule und Weiterbildung NRW M GK HT 1 Seite 1 von 6. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Grundkurs

Ministerium für Schule und Weiterbildung NRW M LK HT 6 Seite 1 von 10. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Ministerium für Schule und Weiterbildung NRW M LK HT 7 Seite 1 von 10. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Ministerium für Schule und Weiterbildung NRW M GK HT 7 Seite 1 von 9. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Grundkurs

Ministerium für Schule und Weiterbildung NRW M LK HT 2 Seite 1 von 7. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Ministerium für Schule und Weiterbildung NRW M LK HT 4 Seite 1 von 11. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Ministerium für Schule und Weiterbildung NRW M LK HT 3 Seite 1 von 8. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Ministerium für Schule und Weiterbildung NRW M LK HT 6 Seite 1 von 9. Unterlagen für die Lehrkraft. Abiturprüfung Mathematik, Leistungskurs

Unterlagen für die Lehrkraft Zentrale Klausur am Ende der Einführungsphase 2011 Mathematik

Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg

Zentralabitur 2017 Informatik

Zentralabitur 2018 Informatik

Abiturprüfung nach dem neuen Kernlehrplan Beispielaufgabe

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Ministerium für Schule und Weiterbildung NRW BI GK HT 1 Seite 1 von 6. Unterlagen für die Lehrkraft. Abiturprüfung Biologie, Grundkurs

Ministerium für Schule und Weiterbildung NRW BI GK HT 3 Seite 1 von 7. Unterlagen für die Lehrkraft. Abiturprüfung Biologie, Grundkurs

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Probeklausur: Programmierung WS04/05

Werkzeuge zur Programmentwicklung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Einführung in die Informatik Grammars & Parsers

Programmierkurs Java

Theoretische Informatik. Reguläre Sprachen und Automaten

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Alphabet, formale Sprache

Aufgabe 1: Programmieren in Java mit Greenfoot Ballonabschießen

JAVA - Methoden

JAVA für Nichtinformatiker - Probeklausur -

Java Einführung Methoden. Kapitel 6

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1 Syntax von Programmiersprachen

ARBEITSBLATT ZU FORMALEN SPRACHEN

Stick & Strick - Bordürensimulator

Zentralabitur 2017 Mathematik

Deterministische endliche Automaten - Wiederholung

Klausur Softwaretechnologie WS 2014/15

Sprachen/Grammatiken eine Wiederholung

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

In dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben sei dazu das folgende Szenario:

ABITURPRÜFUNG 2004 GRUNDFACH INFORMATIK (HAUPTTERMIN)

Abiturprüfung auf Basis der Kernlehrpläne Beispielaufgabe

Übungsaufgaben zu Formalen Sprachen und Automaten

Berufsprüfung ICT-Applikationsentwicklung

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

2 Thema: Nutzung und Modellierung von relationalen Datenbanken in Anwendungskontexten 21 Stunden

Welche Informatik-Kenntnisse bringen Sie mit?

Theoretische Informatik I

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

Grundlagen der Theoretischen Informatik

Übungsblatt 7. Was ist die Ausgabe de facto? Entspricht die Ausgabe Ihren Erwartungen?

6 Kontextfreie Grammatiken

Formale Sprachen und Grammatiken

Fachanforderungen für die Abiturprüfung im Fach Maschinenbautechnik

Informatik I WS 07/08 Tutorium 24

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

3. Nur die mit diesen Regeln erzeugten Ausdrücke sind reguläre Ausdrücke über Σ.

Ministerium für Schule und Weiterbildung NRW BI GK HT 4 Seite 1 von 8. Unterlagen für die Lehrkraft. Abiturprüfung Biologie, Grundkurs

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Einführung in die Informatik I (autip)

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Vorlesung Theoretische Informatik

JAVA - Methoden - Rekursion

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Grammatiken und ANTLR

Interpreter - Gliederung

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Objektorientierte Programmierung

Java Schulung (Java 2 Java Development Kit 5 / 6)

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil)

1 Hashing und die Klasse String

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Prüfung Informatik D-MATH/D-PHYS :00 11:00

Ausarbeitung des Interpreter Referats

Repetitorium Informatik (Java)

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Einführung in die Theoretische Informatik

Sprachen und Programmiersprachen

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

IT-Basics 2. DI Gerhard Fließ

Inhalt Kapitel 5: Syntax

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe)

Probeklausur: Programmierung WS04/05

FACHCURRICULUM KL. 9. Raum und Form Figuren zentrisch strecken Üben und Festigen. Strahlensätze. Rechtwinklige Dreiecke.

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Niedersächsisches Kultusministerium Juli 2014

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

11. Rekursion, Komplexität von Algorithmen

Abiturprüfung auf Basis der Kernlehrpläne Beispielaufgabe

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

Informatik II Musterlösung

Einstieg in die Informatik mit Java

Transkript:

Seite 1 von 5 Name: Aufgabenstellung Informatik, Leistungskurs Eine Firma konstruiert aus Fertigteilen verschiedene Spielzeugautos. Folgende Bauteile stehen dafür zur Verfügung: Bauteil Bezeichnung block Kurzbezeichnung bl blockmitrad br frontscheibe fs heckscheibe hs tuer tu fenster fe spoiler sp Nur für den Dienstgebrauch!

Seite 2 von 5 Name: Die zu konstruierenden Spielzeugautos werden durch eine formale Sprache L(G) beschrieben, die durch eine Grammatik G = {T, N, P, S definiert wird. T = {bl, br, fs, hs, tu, fe, sp N = {A, B, C, D, E, F S = A P = { A bla brb hsc, B brb blb hsc fec tuc fsd, C fec tuc fsd, D bld bre, E ble bre spf ε, F ε Beispiel: Das Wort blhsfetufsbrsp ist der Code für folgendes Spielzeugauto: Abbildung 1: Beispiel für ein Spielzeugauto mit dem Code blhsfetufsbrsp a) Abbildung 2: Spielzeugauto für Aufgabenteil a) Geben Sie zu dem in Abbildung 2 dargestellten Auto das entsprechende Wort der Autosprache L(G) an. Geben Sie ein Wort der Autosprache L(G) für ein Auto an, das aus neun Bauteilen besteht. Bestimmen Sie die beiden Wörter der Autosprache L(G), die Autos aus genau drei Bauteilen beschreiben. (8 Punkte) Nur für den Dienstgebrauch!

Seite 3 von 5 Name: b) Zeigen Sie anhand der Grammatik G, dass das Wort brbrblfsfsbr nicht zur Autosprache L(G) gehört. Zeigen Sie mithilfe der Grammatik G, dass das Wort hstufefsbrsp zur Autosprache gehört. (10 Punkte) c) Begründen Sie, dass die Grammatik G der Autosprache L(G) regulär ist. Entwickeln Sie einen endlichen Automaten, der alle Wörter der Autosprache akzeptiert. Die Firma gibt eine Software in Auftrag, mit der interaktiv Automodelle konstruiert werden können. Nach Eingabe eines Wortes der Autosprache prüft ein Parser, ob das zugehörige Automodell entsprechend der Grammatik L(G) zulässig ist, und zeigt dann eine Abbildung des Modells an oder gibt eine Fehlermeldung aus. Bevor der Parser die Syntax des Wortes der Autosprache prüft, zerlegt der Scanner das zu parsende Wort in eine Liste der im Wort enthaltenen Terminale der Autosprache L(G). (12 Punkte) Abbildung 3: Interaktives Erstellen von Automodellen Für das Beispiel in Abbildung 3 gibt die Methode scan mit dem Methodenkopf public List<String> scan(string pwort) die Liste ("hs","tu","fe","fs","br","sp") zurück, wenn ihr das Wort "hstufefsbrsp" als Parameter übergeben wurde. Diese Liste wird im Folgenden Tokenliste genannt. Falls das Wort nicht ausschließlich aus Terminalen der Autosprache zusammengesetzt ist, wird eine leere Liste zurückgegeben. d) Entwickeln Sie einen Algorithmus für das oben beschriebene Zerlegungsproblem. (6 Punkte) Nur für den Dienstgebrauch!

Seite 4 von 5 Name: e) Quellcode 1 ist ein Ausschnitt aus der Klasse AutoParser. 1 2 3 4 public class AutoParser { private List<String> tokenliste; private String token; private Scanner scanner; 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 public AutoParser() { scanner = new Scanner(); private String gibnaechstestoken() { if (tokenliste.hasaccess()) { String token = tokenliste.getcontent(); tokenliste.next(); return token; else { return ""; public boolean parse(string pwort) { tokenliste = scanner.scan(pwort); if (!tokenliste.isempty()) { tokenliste.tofirst(); return gilta(); else { return false; private boolean gilta() { if (token.equals("bl")) { return gilta(); else if (token.equals("br")) { return giltb(); else if (token.equals("hs")) { return giltc(); else { return false; private boolean giltb() {... private boolean giltc() {... private boolean giltd() {... private boolean gilte() {... private boolean giltf() {... Quellcode 1: Ausschnitt des Quellcodes der Klasse AutoParser Nur für den Dienstgebrauch!

Seite 5 von 5 Name: Analysieren und erläutern Sie die Methode parse und die Methode gilta anhand des zu parsenden Wortes "hstufefsbrsp". Ermitteln Sie unter Zuhilfenahme der Grammatik G der Autosprache L(G) die Methoden, die beim Parsen des Wortes "hsfsbr" aufgerufen werden. Implementieren Sie die Methode gilte. (14 Punkte) Zugelassene Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (grafikfähiger Taschenrechner / CAS-Rechner) Nur für den Dienstgebrauch!

Seite 1 von 6 Unterlagen für die Lehrkraft Informatik, Leistungskurs 1. Aufgabenart Analyse, Modellierung und Implementation von kontextbezogenen Problemstellungen mit Schwerpunkt auf den Inhaltsfeldern Algorithmen und formale Sprachen und Automaten 2. Aufgabenstellung siehe Prüfungsaufgabe 3. Materialgrundlage entfällt 4. Bezüge zu dem Kernlehrplan und den Vorgaben 1 Die Aufgaben weisen vielfältige Bezüge zu den Kompetenzerwartungen und Inhaltsfeldern des Kernlehrplans bzw. zu den in den Vorgaben ausgewiesenen Fokussierungen auf. Im Folgenden wird auf Bezüge von zentraler Bedeutung hingewiesen: 1. Inhaltsfelder und inhaltliche Schwerpunkte Algorithmen Analyse, Entwurf und Implementierung von Algorithmen Formale Sprachen und Automaten: Syntax und Semantik einer Programmiersprache (Java) Endliche Automaten Grammatiken regulärer Sprachen 1 Scanner, Parser und Interpreter für eine reguläre Sprache Möglichkeiten und Grenzen von Automaten und formalen Sprachen 2. Medien / Materialien keine 5. Zugelassene Hilfsmittel Wörterbuch zur deutschen Rechtschreibung Taschenrechner (grafikfähiger Taschenrechner / CAS-Rechner) 1 Produktionen mit ε

Seite 2 von 6 6. Modelllösungen Die Modelllösung stellt eine mögliche Lösung bzw. Lösungsskizze dar. Der gewählte Lösungsansatz und weg der Schülerinnen und Schüler muss nicht identisch mit dem der Modelllösung sein. Sachlich richtige Alternativen werden mit entsprechender Punktzahl bewertet (Bewertungsbogen: Zeile Sachlich richtige Lösungsalternative zur Modelllösung ). Teilaufgabe a) Zum Auto in Abb. 2 gehört das Wort: brblfsbr Ein mögliches Wort der Autosprache mit 9 Terminalen: brbrhstututufsbrsp Die beiden einzigen Wörter der Autosprache, die jeweils ein Auto aus drei Bauteilen beschreiben sind: hsfsbr und brfsbr Teilaufgabe b) Aus dem Versuch, das Wort brbrblfsfsbr mithilfe der Grammatik zu erzeugen, ergibt sich folgende Ableitungskette: A -> brb -> brbrb -> brbrblb -> brbrblfsd -> Widerspruch! Es gibt keine Produktion mit dem Nichtterminal D auf der linken Seite, deren rechte Seite mit dem Terminal fs beginnt. Daher lässt sich das Wort nicht ableiten und gehört somit nicht zur Autosprache. Das Wort hstufefsbrsp lässt sich mithilfe folgender Ableitungskette aus der Grammatik der Autosprache L(G) ableiten: A -> hsc -> hstuc -> hstufec ->hstufefsd -> hstufefsbre -> hstufefsbrspf -> hstutefsbrsp Teilaufgabe c) Eine Grammatik ist regulär, wenn sie entweder rechtsregulär oder linksregulär ist. Eine Grammatik ist rechtsregulär, wenn für alle Produktionen der Grammatik folgende Regeln gelten: 1. Die linke Seite einer Produktion besteht nur aus einem Nichtterminal. 2. Die rechte Seite einer Produktion enthält das leere Wort, ein Terminal oder ein Terminal gefolgt von einem Nichtterminal. Die Autogrammatik L(G) erfüllt beide Kriterien für eine rechtsreguläre Grammatik. Auf der linken Seite der Produktionen stehen nur Nichtterminale und auf der rechten Seite entweder das leere Wort oder ein Terminal gefolgt von einem Nichtterminal.

Seite 3 von 6 Zu jeder regulären Grammatik gibt es einen äquivalenten endlichen Automaten. Aus der Grammatik L(G) lässt sich folgender endliche Automat konstruieren: Alle nicht angegebenen Eingaben führen in einen Fehlerzustand. Teilaufgabe d) Algorithmus Wenn das Wort aus einer ungeraden Zahl von Zeichen besteht, liegt ein Fehlerfall vor. Ansonsten wird das zu scannende Wort in Paare von Zeichen zerlegt. Für jedes Zeichenpaar wird folgender Arbeitsschritt durchgeführt. Wenn das Zeichenpaar Terminal der Grammatik ist, wird es an die anfangs leere Tokenliste angehängt, andernfalls liegt ein Fehlerfall vor. Die Tokenliste wird zurückgegeben oder im Fehlerfall die leere Liste. Teilaufgabe e) Analyse der Methode parse: 1. Aufruf der Methode parse("hstufefsbrsp") 2. Der Scanner bestimmt die Tokenliste: tokenliste = ("hs","tu","fe","fs","br","sp") 3. Da die Tokenliste nicht leer ist, wird das erste Element der Tokenliste zum aktuellen Element. 4. Der Variablen token wird durch Aufruf der Methode gibnaechstestoken() der Wert "hs" zugewiesen. 5. Das boolesche Ergebnis des Aufrufes der Methode gilta() wird zurückgegeben. Analyse der Methode gilta(): Die Methode A ruft in Abhängigkeit des Wertes der Variablen token eine Methode mit booleschem Rückgabewert auf und gibt den erhaltenen Wert zurück. Wenn token gleich "bl", wird gilta() aufgerufen und der erhaltene boolesche Wert zurückgegeben, wenn token gleich "br", wird giltb() aufgerufen und der Wert zurückgegeben, wenn token gleich "hs", wird giltc() aufgerufen und der Wert zurückgegeben. In allen anderen Fällen gibt die Methode gilta() den Wert false zurück.

Seite 4 von 6 Bei dem vorgegeben Beispiel hat die Variable token den Wert "hs" und es wird giltc() aufgerufen. Die Methode parse(string pwort) hat die Funktion zu prüfen, ob sein als Parameter übergebener String der Syntax der Autogrammatik entspricht. Für jedes Nichtterminal der Autogrammatik gibt es eine Methode, die jeweils dessen Produktionen prüft und je nach Ergebnis true oder false zurückgibt. In der Methode parse wird die Methode für das Startsymbol A der Grammatik aufgerufen. Die rechten Seiten der Produktionen von A bestehen aus einem der Terminale "bl", "br" oder "hs", gefolgt von einem Nichtterminal. Wenn das aktuelle token einen dieser Werte hat, muss die Methode des ihm folgenden Nichtterminals aufgerufen werden, andernfalls wird sofort false zurückgegeben. Entsprechend wird weiterverfahren, bis die Tokenliste vollständig abgearbeitet ist. Die Methode gilta() gibt true zurück, wenn keine der im Laufe der Syntaxanalyse aufgerufenen Methoden false zurückgeliefert hat. Andernfalls gibt die Methode gilta() false zurück und das Wort gehört nicht zur Autosprache. Beim Aufruf von parse("hsfsbr") werden folgende Produktionen abgearbeitet A hsc C fsd D bre E ε Beim Parsen des Wortes "hsfsbr" werden daher die Methoden gilta(), giltc(), giltd(), und gilte() aufgerufen. Implementation der Methode gilte: private boolean gilte() { if (token.equals("bl") token.equals("br")) { return gilte(); else if (token.equals("sp")) { return giltf(); else if (token.equals("")) { return true; else { return false;

Seite 5 von 6 7. Teilleistungen Kriterien / Bewertungsbogen zur Prüfungsarbeit Name des Prüflings: Kursbezeichnung: Schule: Teilaufgabe a) Anforderungen Der Prüfling maximal erreichbare Punktzahl (AFB) 1 gibt das Wort der Autosprache L(G) für die Abbildung 2 an. 2 (I) 2 gibt ein Wort der Autosprache für ein Auto mit 9 Bauteilen an. 2 (I) 3 bestimmt für die beiden zulässigen Autos mit drei Bauteilen die Wörter der Autosprache. Sachlich richtige Lösungsalternative zur Modelllösung: (8) Summe Teilaufgabe a) 8 Teilaufgabe b) 4 (II) Lösungsqualität EK 2 ZK DK Anforderungen Der Prüfling 1 zeigt anhand der Grammatik, dass das vorgegebene Wort nicht zur Autosprache gehört. 2 zeigt mithilfe der Grammatik, dass das vorgegebene Wort zur Autosprache gehört. Sachlich richtige Lösungsalternative zur Modelllösung: (10) maximal erreichbare Punktzahl (AFB) 4 (II) 6 (II) Lösungsqualität EK ZK DK Summe Teilaufgabe b) 10 2 EK = Erstkorrektur; ZK = Zweitkorrektur; DK = Drittkorrektur

Seite 6 von 6 Teilaufgabe c) Anforderungen Der Prüfling maximal erreichbare Punktzahl (AFB) 1 begründet, dass die Grammatik der Autosprache regulär ist. 4 (II) 2 entwickelt einen endlichen Automaten, der alle Wörter der Autosprache akzeptiert. Sachlich richtige Lösungsalternative zur Modelllösung: (12) Summe Teilaufgabe c) 12 Teilaufgabe d) 8 (II) Lösungsqualität EK ZK DK Anforderungen Der Prüfling 1 entwickelt einen Algorithmus und berücksichtigt folgende Aspekte: - Zerlegung des Wortes in Paare von Zeichen - Prüfung, ob die Zeichenpaare Terminale der Grammatik sind - Verwaltung der Zeichenpaare in der Tokenliste - Behandlung von Fehlerfällen Sachlich richtige Lösungsalternative zur Modelllösung: (6) maximal erreichbare Punktzahl (AFB) 6 (II) Lösungsqualität EK ZK DK Summe Teilaufgabe d) 6 Teilaufgabe e) Anforderungen Der Prüfling maximal erreichbare Punktzahl (AFB) 1 analysiert und erläutert die Methode parse. 3 (III) 2 analysiert und erläutert die Methode gilta. 3 (III) 3 ermittelt die beim Parsen aufgerufenen Methoden. 3 (II) 4 implementiert die Methode gilte. 5 (II) Sachlich richtige Lösungsalternative zur Modelllösung: (14) Summe Teilaufgabe e) 14 Lösungsqualität EK ZK DK