AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE)

Ähnliche Dokumente
Prüfung Computation, Programming

Kurze Begründung, warum der Ausdruck korrekt ist oder jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist

Grundlegende Programmierkonzepte: Variablen, Methoden-Parameter, Rückgabewerte

Java programmieren mit JavaKara. Eine Zusammenfassung in Beispielen

Arbeitsblatt zu Methoden

Prüfung Computation, Programming

Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

Grundlegende Programmierkonzepte: Anweisungen und Methoden

Gestern: Kara. Steuerung: Endliche Automaten

Methoden-Expertin. Aufgabe 1. Das Neue. Lösung in JavaKara. Puzzle: Expertin D

Aufgabe Total Punkte

Informatik 11: Einführung in Java. Lösungen zu den Rekursions-Aufgaben

Eine Einführung in den Kontrollfluss durch ein JavaKara-Programm: - Aufruf von Methoden (ohne Parameter, ohne Rückgabewerte) - Programmausführung mit

Arbeiten mit JavaKara

import JavaKaraProgram; public class Quadrat extends JavaKaraProgram { // Anfang von Quadrat void turnaround() { kara.turnleft(); kara.

Aufgaben zu JavaKara: Arrays

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch

Prüfung Programming: Bildbearbeitung

Kapitel 2: Programmfluss steuern

JavaKara. In JavaKara gibt es folgende Anweisungen: kara.move()

2.2 Syntax, Semantik und Simulation

TU Kaiserslautern. Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben. Hinweise zu den Übungen

Prüfung Programming, Automation, Computation

Prüfung Programming, Automation, Computation

Aufgaben: Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public c l a s s Quadrat extends JavaKaraProgram 4 { 5 void turnaround ( )

PROGRAMMIEREN. Kapitel 1 Erste Schritte

Arbeitsblatt zur While Schleife

Einfaches Labyrinth Kleeblatt-Suche

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

Kapitel 3: Variablen

Programmieren lernen mit Visual Basic

Programmiertechnik 1 FOR-SCHLEIFEN

2 Teil 2: Nassi-Schneiderman

Kapitel 1: Die ersten Schritte 1

Gierhardt. 1 import javakara. JavaKaraProgram ; 3 public class Playit1 extends JavaKaraProgram. 4 { // Anfang von Playit1. 6 void gehezumbaum ( ) 7 {

Aufgabenblatt: Methoden - rekursiv

Deterministische endliche Automaten - Wiederholung

Rekursion mit JavaKara

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einführung in die Programmierung. (K-)II/Wb17

Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Klausur Einführung in die Informatik I für Elektrotechniker 16. Juli 2003

Programmiertechnik 1 FOR-SCHLEIFEN

Aufgaben. Objektorientierte Programmierung

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Informatik mit Kara. Spielerischer Einstieg in die Informatik. Gerhard Bitsch. Seminarsitzung Informatik, Januar Kepler - Gymnasium Tübingen

JavaKara Aufgaben. 1 Kara und die Blätter... (einfach)

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Einstieg in die Informatik mit Java

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Javakurs für Anfänger

Die Klasse MiniJava ist in der Datei MiniJava.java definiert:

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Übersicht Shell-Scripten

1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Aufgaben. Objektorientierte Programmierung

3. Anweisungen und Kontrollstrukturen

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Klausur "ADP" WS 2013/2014

Ideen und Konzepte der Informatik

Software Entwicklung 1

Einstieg in die Informatik mit Java

Übungspaket 12 Der Datentyp char

hue12 January 24, 2017

Einstieg in die Informatik mit Java

Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden. Name:

Programmieren - wie einsteigen? class HelloWorldApp { public static void main(string[] args) { System.out.println("Hello World!

Probeklausur Name: (c)

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Installation. Start. Das Territorium im Simulator

Übung Praktische Informatik I

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Aufruf des Compilers in der Kommandozeile und Ausführung des Programms:

Prüfung Informatik D-MATH/D-PHYS

Programmieren I + II Regeln der Code-Formatierung

Welche Informatik-Kenntnisse bringen Sie mit?

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Einführung in die Programmierung 1

Präzedenz von Operatoren

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

Felder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz

Institut fu r Informatik

Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Felder. M. Jakob. 28. April Gymnasium Pegnitz

pue13 January 28, 2017

ERNTEDANK. 6 Kinderteile zum Thema Erntedank aus Miteinander durch das Jahr (Teil 2) von Barbara Himmelsbach

1 Grundbefehle. Gerade Linien zeichnen

Klausur "ADP" SS 2013

Die Käfer machen vieles immer wieder...

Transkript:

AUFGABE 1: REGULÄRE AUSDRÜCKE (5 PUNKTE) a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a, b, c [a-f] Ein beliebiges Zeichen aus der Menge {a, b, c, d, e, f \d eine Ziffer [0-9] X Y X oder Y X* Eine beliebige Wiederholung von X X+ Mindestens einmal X X? Höchstens einmal X {n {m,n (xyz) [^xyz] der vorangehende Ausdruck muss exakt n mal vorkommen der vorangehende Ausdruck muss mindestens m mal und darf höchstens n mal vorkommen Gruppierung: xyz müssen miteinander vorkommen Nicht x, nicht y, nicht z \X X ein Sonderzeichen \()[]*+?{. ^$- AUFGABE 1.1 (3 PUNKTE) Sie möchten Uhrzeiten mit regulären Ausdrücken beschreiben. Sie haben bereits mit Google gesucht und einige mögliche Kandidaten ermittelt. Prüfen Sie, ob die folgenden regulären Ausdrücke korrekt Uhrzeiten im Vierundzwanzigstunden-Format beschreiben oder nicht. Die Uhrzeiten in diesem Format gehen von 00:00 bis zu 23:59. Regulärer Ausdruck Kurze Begründung, warum der Ausdruck korrekt ist ODER jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist [012][0-9]:[0-5][0-9] ([01]\d 2[0-3]):([0-5]\d) 1

(Aufgabe 1.1, Fortsetzung) Regulärer Ausdruck Begründung, warum der Ausdruck korrekt ist ODER jeweils zwei Gegenbeispiele, die zeigen, warum der Ausdruck nicht korrekt ist \d\d:\d\d ([01][0-4] [01][5-9] 2[0-3]):([0-5][0-9]) AUFGABE 1.2 (2 PUNKTE) Postleitzahlen in England haben folgendes Format (etwas vereinfacht): 1-2 Grossbuchstaben für das Sortieramt, z.b. G für Glasgow 2 Ziffern für den Postbezirk 1 Leerzeichen 1 Ziffer für das Zustellamt 2 Buchstaben für den Zustellbereich eines Briefträgers Ein Beispiel einer gültigen Postleitzahl in diesem Format ist RH10 2RY. Geben Sie einen regulären Ausdruck an, die die beschriebenen Postleitzahlen erkennt: 2

AUFGABE 2: PROGRAMM LESEN PROGRAMM ERGÄNZEN UND LESEN (5 PUNKTE) AUFGABE 2.1 (3 PUNKTE) Zeichnen Sie in die Welten links ein, wie die Welten nach der Ausführung des Programms rechts aussehen. for (int i = 1; i < world.getsizex() - 1; i++) { world.setleaf(i, i, true); for (int i = 1; i < world.getsizex() - 1; i++) { world.setleaf(i, world.getsizey() - 1 - i, true); /* Zur Erinnerung: world.setleaf(x, y, true) legt an der Koordinate (x, y) ein Kleeblatt, wenn dort noch keines liegt. world.getsizex() gibt die Breite der Welt zurück, world.getsizey() die Höhe. */ public void myprogram() { treppe(4); void treppe(int anzahlstufen) { for (int i = 0; i < anzahlstufen; i++) { stufe(2); void stufe(int laenge) { legex(laenge); kara.turnleft(); legex(laenge); kara.turnright(); void legex(int laenge) { for (int i = 0; i < laenge; i++) { kara.putleaf(); 3

AUFGABE 2.2 (2 PUNKTE) Sie erhalten ein JavaKara-Programm, das ein anderer Programmierer geschrieben hat: while (!kara.treefront()) { if (kara.mushroomfront()) { kara.turnright(); kara.putleaf(); Markieren Sie in der Welt unten links diejenigen Felder, auf denen Sie Pilze setzen müssen, damit das obige Programm Kara die Spirale in der Welt unten rechts legen lässt. 4

AUFGABE 3: : JAVAKARA-PROGRAMM LESEN (5 PUNKTE) Sie erhalten ein JavaKara-Programm, das ein anderer Programmierer geschrieben hat:: public void mymainprogram() { int halbebreite = world.getsizex() / 2; for (int y = 0; y < world.getsizey() / 2; y++) { int anzahl = tools.intinput("geben Sie eine Zahl zwischen 0 und " + halbebreite + " ein."); legeblaetter(y, anzahl); legeblaetter(world.getsizey() - 1 - y, anzahl); void legeblaetter(int y, int anzahl) { int halbebreite = world.getsizex() / 2; for (int x = halbebreite - anzahl; x < halbebreite + anzahl; x++) { world.setleaf(x, y, true); Zur Erinnerung: world.getsizey() liefert die Anzahl Zeilen der Welt; world.getsizex() liefert die Anzahl Spalten der Welt. Immerhin hat er Ihnen auch den Hinweis hinterlassen, dass das Programm gedacht ist für anfänglich leere Welten, deren Breite eine gerade Zahl (2, 4, 6, ) sein sollte. AUFGABE 3.1 (2 PUNKTE) Zeichnen Sie in die leere Welt unten, wie die Welt nach Ausführung des Programmes aussieht. Beachten Sie, dass die Welt 8x8 Felder gross ist. Der Benutzer gibt nacheinander die Zahlen 1,2,3,2 ein: 5

AUFGABE 3.2 (2 PUNKTE) Beschreiben Sie in je zwei, drei Sätzen präzise, was welche Methode macht: legeblaetter(...) mymainprogram() AUFGABE 3.3 (1 PUNKT) Beschreiben Sie in ein, zwei Sätzen, was im Hauptprogramm die zweifachen Aufrufe von legeblaetter(...) bewirken: 6

AUFGABE 4: : JAVAKARA-PROGRAMM SCHREIBEN (5( PUNKTE) Schreiben Sie ein Programm, das Kara um Pilze laufen und dabei Kleeblätter aufnehmen lässt wie in der Abbildung unten. Er soll dabei alle Kleeblätter in der unteren Zeile essen. Er ist fertig, wenn er vor dem Baum steht: Beispiel 1: Welt vorher Beispiel 1: Welt nachher Beispiel 2: Welt vorher Beispiel 2: Welt nachher Hinweis: Der Einfachheit halber nehmen wir an, dass nie ein Pilz direkt vor einem Baum steht. Wir nehmen ferner an, dass nie zwei Pilze direkt hintereinander stehen. AUFGABE 4.1 (4 PUNKTE) Der Anfang ist bereits gemacht, Sie können die Methoden entfernekleeblatt() und laufeumpilz() verwenden, wenn Sie möchten, und sich auf das Hauptprogramm in mymainprogram() konzentrieren. Schreiben Sie ein Programm, das Kara zu dem Baum laufen lässt und das dabei alle Kleeblätter entfernt: public void mymainprogram() { 7

void entfernekleeblatt() { if (kara.onleaf()) { kara.removeleaf(); void laufeumpilz() { kara.turnleft(); kara.turnright(); kara.turnright(); kara.turnleft(); AUFGABE 4.2 (1 PUNKT) Beschreiben Sie in zwei, drei Sätzen, was an dem Programm geändert werden müsste, wenn mehrere Pilze nebeneinander stehen dürften wie in der Abbildung unten? Mehrere Pilze nebeneinander 8

AUFGABE 5: 5 : PROGRAMMIEREN ERKLÄREN (5 PUNKTE) Stellen Sie sich vor, Sie möchten einem Kollegen erzählen, was Sie über das Programmieren gelernt haben. Ihr Kollege hat noch keine Erfahrung im Programmieren. Erklären Sie ihm daher anhand von einfachen JavaKara-Beispielen, wie Sie den Computer dazu bringen, JavaKara Dinge tun zu lassen. Erklären Sie ihm zunächst umgangssprachlich, was Sie JavaKara tun lassen möchten. Verwenden Sie dazu ein möglichst einfaches Beispiel: Stell Dir vor, ich will den Marienkäfer dazu bringen, 33 Kleeblätter zu legen. Mit den Befehlen kara.putleaf(); legt der Käfer ein einzelnes Kleeblatt und läuft weiter. Aber ich möchte diese Befehle natürlich nicht 33 mal kopieren müssen! Also verwende ich eine sog. Zählschleife, um den Computer die Befehle 33 mal ausführen zu lassen. Schreiben Sie anschliessend auf, wie Ihr Beispiel in Java umgesetzt werden würde: Das würde ich in Java wie folgt schreiben: for (int i = 0; i < 33; i++) { kara.putleaf();. Die Feinheiten des Codes (hier zum Beispiel Zählbeginn bei 0) brauchen Sie dabei nicht weiter zu vertiefen. Erklären Sie Verzweigungen (if-else): Wie kann JavaKara Entscheidungen treffen? Erklären Sie Wiederholungen (while): Wie kann JavaKara Dinge wiederholen? 9