TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grudlage der Programmierug Programmierpraktikum Woche 03 (10.11.2016) Stefa Berktold s.berktold@tum.de
PRÄSENZAUFGABEN Heutige Übersicht Aufgabe 3.1 Sytaxbäume Quellcode i Sytaxbaum umwadel (MiiJava Grammatik) Aufgabe 3.2 Kotrollflussdiagramme Quellcode Kotrollflussgraph Aufgabe 3.3 Programmieraufgabe (MiiJava) Brettspiel: Schlagespiel (mit Vorgabe)
HAUSAUFGABEN Abgabe: 14.11.2016 05:00 Uhr Aufgabe 3.4 Sytaxbäume Quellcode i Sytaxbaum umwadel (MiiJava Grammatik) Aufgabe 3.5 Kotrollflussdiagramme Quellcode Kotrollflussgraph Aufgabe 3.6 Programmieraufgabe (MiiJava) Kartespiel: 17 ud 4
AUFGABE 3.1 Sytaxbaum Zeiche Sie für das folgede MiiJava- Programm de Sytaxbaum. Dazu steht Ihe die Grammatik vo MiiJava aus der Vorlesug zur Verfügug. Eie Zusammefassug dieser Grammatik fide Sie auf Moodle.
AUFGABE 3.1 Sytaxbaum <program> <decl>* <>* <decl> <type> <> (, <>)*; <> ; { <>* } <> = <> ; <> = read(); write( <> ); if ( <cod> ) <> if ( <cod> ) <> else <> while (<cod>) <> <> <cod> <comp> <uop> <biop> <bbiop> <buop> <type> <> <umber> <umber> <> ( <> ) <uop> <> <> <biop> <> true false ( <cod> ) <> <comp> <> <buop> <cod> <cod> <bbiop> <cod> ==!= <= < >= > - - + * / % &&! it letter ( letter digit )* digit digit*
AUFGABE 3.1 LÖSUNG Sytaxbaum progr am decl type,, ; = read ( ) ; if ( cod ) else it x x comp { } { } umbe r 0 < x = umbe r ; = umbe r ; while ( cod comp ) { write ( } ) ; write ( ) ; 1 0 <= = ; = ; x biop biop + umbe r * ( ) 1 uop -
AUFGABE 3.2 Kotrollflussdiagramm Zeiche Sie de Kotrollflussgraphe für das folgede Java-Fragmet: Hiweis: Zum Zeiche köe Sie z.b. das Programm LibreOffice Draw, welches Sie uter http://www.libreoffice.org/ fide, oder die Webseite http://draw.io verwede. Speicher Sie Ihre Kotrollflussgraphe im pdf-format ab.
AUFGABE 3.2 LÖSUNG Kotrollflussdiagramm
AUFGABE 3.3 Schlagespiel (Auszug) I dieser Aufgabe solle Sie eie Variate des Schlagespiels für zwei Spieler programmiere. Erstelle Sie dazu ei Programm s Schlagespiel.java. [ ] Implemetiere Sie ihre Lösug Schritt für Schritt: 1. Beschräke Sie sich zuerst auf eie Spieler ud ei leeres Spielfeld. Das Spiel besteht am Afag ur aus Würfel bis die 35 überschritte wird. 2. Beachte Sie u Leiter ud Schlage ach dem Würfel prüfe Sie, ob das Zielfeld leer ist. 3. Beachte Sie u auch Kette vo Leiter ud Schlage bewege Sie eie Spielstei ach dem Würfel so lage, bis er weder auf eier Schlage och auf eier Leiter ladet. 4. Erweiter Sie Ihr Spiel u um de zweite Spieler. Hiweis: Verwede Sie die Klasse Spielfeld, um das Spielfeld zu zeiche. Ersetze Sie dazu exteds MiiJava durch exteds Spielfeld. [ ]
AUFGABE 3.3 Schlagespiel (Auszug) Die Grudidee des Spiels ist folgede: Das Spiel hat die Felder 0 bis 35. Jeder Spieler besitzt eie Spielstei. Beide Spielsteie starte auf Feld 0 Es dürfe zwei Spielsteie gleichzeitig auf eiem Feld stehe. Im Wechsel wird gewürfelt. Der Spielstei des etsprechede Spielers wird um die etsprechede Augezahl vorgerückt. Vo alle Felder, die durch 5 teilbar sid, führt eie Leiter ach obe. Wer ei solches Feld erreicht, kommt sofort 3 Felder weiter. Erreicht ma ei Schlagefeld (jedes Feld, das durch 7 teilbar ist), rutscht ma automatisch um 4 Felder zurück. Die Felder 0 ud 35 sid weder Leiteroch Schlagefelder. Leiter ud Schlage trete i Aktio, we ei Spielstei dieses Feld erreicht. Es ist daher möglich, Kette vo Schlage ud/oder Leiter zu beutze. Wer zuerst das Feld 35 erreicht oder überschreitet, gewit das Spiel. Am Ede wird der Sieger ausgegebe. Gebe Sie jeweils das Würfelergebis ud das eue Spielfeld aus.
AUFGABE 3.3 LÖSUNG Schlagespiel (Auszug) Eie Lösugsvorschlag fide Sie uter http://tutor16.stecrz.de (PW: tutor16). Die offizielle Lösuge zu alle Präsezaufgabe sid voraussichtlich ab 11.11.2016 20:00 Uhr auf Moodle verfügbar (ud dürfe icht vorab ausgehädigt werde).