Abgabe: (vor 12 Uhr)

Ähnliche Dokumente
Abgabe: (vor 12 Uhr)

Abgabe: (vor 12 Uhr) Aufgabe 3.1 (P) Kontrollflussgraph. Zeichnen Sie für das folgende MiniJava-Programm den Kontrollflussgraphen.

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Programmierkurs Java

Übungen zu Algorithmen

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Programmieren in C (Übungsblatt 1)

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

Einführung in die Programmierung für Computerlinguisten

Institut fu r Informatik

Einführung in die Programmierung WS 2014/15. Übungsblatt 0: Einführung

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Übung Informatik I - Programmierung - Blatt 3

Informatik B von Adrian Neumann

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung

FAKULTÄT FÜR INFORMATIK

public class SternchenRechteckGefuellt {

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Allgemeine Hinweise:

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

Prof. Dr. Heinrich Müller. Informatik VII Universität Dortmund. Organisatorisches zum Vorkurs Informatik

Kapitel. Platzhalter. Was sind Platzhalter?

Informatik für Elektrotechnik und Informationstechnik

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Hello World in Java. Der Weg zum ersten Java-Programm

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Allgemeine Hinweise:

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungsblatt 4. Java Vorkurs (WS 2015)

Praktikum aus Programmierung Dr. Michael Hahsler (WS 05/06) Projekt: Würfelpoker

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Praktikum 1: Einführung, BMI Rechner

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

JAVA für Nichtinformatiker - Probeklausur -

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Grundlagen der Programmentwicklung

FB Informatik. Fehler. Testplan

Technische Informatik für Ingenieure WS 2010/2011 Musterlösung Übungsblatt Nr. 4

Institut für Informatik

Power Supply Control Kit

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

4 Schleifen und Dateien

13. Tutorium zu Programmieren

GI Vektoren

Schleifenanweisungen

C A L D E R A G R A P H I C S

1 Vom Problem zum Programm

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

5. Tutorium zu Programmieren

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Allgemeine Informatik II SS :30-13:30 Uhr

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

PREV CLASS NEXT CLASS FRAMES NO FRAMES All Classes

Informatik I Tutorial

Kontrollstrukturen und Funktionen in C

Übungen zu C++ Kapitel 1

Übung zu Einführung in die Informatik # 11

Probeklausur: Programmierung WS04/05

Einführung in Python Übung 1

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Projekt: Programmierung mit dem. Grafikfähiger Taschenrechner CASIO CFX-9850GB Plus

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

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

Übungspaket 12 Der Datentyp char

Handbuch für die Erweiterbarkeit

Deutsche Version. Einführung. Hardwareinstallation. PU013 Sweex PCI-Karte mit 1 parallelem Anschluss & 2 seriellen Anschlüssen

World4You Internet Service GmbH. Hafenstrasse 47-51, A-4020 Linz

(1) Network Camera

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

Entwurf von Algorithmen - Kontrollstrukturen

Übungen zu Algorithmen

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

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

Greenfoot: Verzweigungen

Kurzanleitung. Einstieg in die TripleCard Profi-Software. Zeiterfassungs- Software für. TripleCard Terminal

Übungsblatt 7. Thema: Sortieren, Objektorientierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Allgemeine Informationen zum Praktikum

CHIPDRIVE Profi-Zeiterfassung Kurzanleitung

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

EiP Übung

Klausur zu Grundlagen der Informatik / Allgemeine Informatik I 2. März 2006 (WS 2005/2006) Prof. Dr. Franz Schweiggert / Norbert Heidenbluth

Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Praktische Informatik I WS 1999/2000

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

Tutorium/Aufgaben zu PHP

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

Einführung in PHP. (mit Aufgaben)

Informatik I - Einstiegskurs

CEN1112 Labor Software-Entwicklung

Kontrollstrukturen: Wiederholungsanweisungen

Einführung in Eclipse und Java

Deutsche Version. Einführung. Hardwareinstallation. PU012 Sweex PCI-Express Karte mit 2 seriellen Anschlüssen

Transkript:

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Übungsblatt 1 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz, Dr. M. Petter 20.10.11 Abgabe: 30.10.11 (vor 12 Uhr) Die Klasse MiniJava In der Klasse MiniJava sind einige Details versteckt, damit Sie sich in den ersten Wochen ganz auf das Wesentliche konzentrieren können. Die Klasse bietet folgende Methoden zur vereinfachten Ein- bzw. Ausgabe: read() und readint() zum Einlesen eines ganzzahligen Werts, readstring() zum Einlesen einer textuellen Eingabe, sowie write(...) zur vereinfachten Ausgabe. Um die Klasse benutzen zu können, laden Sie die Klasse MiniJava.java von der Vorlesungsseite: http://www2.in.tum.de/hp/file?fid=645 speichern Sie MiniJava.java im selben Verzeichnis wie Ihre eigenen Java-Dateien und erweitern Sie ihre Klassendefinition(en) um extends MiniJava. Verwenden Sie zur Lösung der Aufgaben nur MiniJava-Sprachkonstrukte! Aufgabe 1.1 (P) Erste Schritte a) Starten Sie die Entwicklungsumgebung NetBeans. Erstellen Sie ein neues Projekt namens Info1 in NetBeans. Öffnen Sie die Datei MiniJava.java in NetBeans und speichern Sie diese in Ihrem Projekt unter Info1/src/info1/MiniJava.java ab. NetBeans weist Sie daraufhin, dass die package declaration geändert werden muss. Fügen Sie dazu die Zeile package info1; am Anfang der Klasse MiniJava ein. b) Erstellen Sie nun die Klasse HelloWorld im Package info1 in NetBeans. Diskutieren Sie mit Ihrem Tutor die automatisch erstellten Elemente des Programms. Ergänzen Sie Ihr Programm folgendermassen: public c l a s s HelloWorld extends MiniJava { w r i t e ( H e l lo World! ) ; Am Ende sollte ihr Netbeans in etwa so aussehen:

2 Machen Sie sich mit den grundlegenden Funktionen, wie dem Erstellen und Ausführen des Programms vertraut. c) Machen Sie den Ordner in ihrem Benutzerverzeichnis ausfindig, an dem Netbeans Ihre Java-Dateien ablegt übertragen Sie den Ordner mit den Java-Quellcode-Dateien als Ihre Lösung auf den Abgabeserver. (Auf diese Weise geben Sie in Zukunft Ihre Hausaufgaben ab, wie auf dem 1. Merkblatt ausführlich beschrieben.) Sie finden diese Dateien unter Unix normalerweise unter /home/username/netbeansprojects/info1/src, bzw. unter Windows im Ordner %HOMEPATH%\Eigene Dokumente\NetBeansProjects\Info1\src Aufgabe 1.2 (P) Ein- und Ausgabe a) Bart muss schon wieder nachsitzen. Als Strafaufgabe muss er ein Programm schreiben, das auf dem Bildschirm 100 Mal den Satz Ich darf während der Vorlesung nicht Computer spielen! ausgibt. Helfen Sie ihm dabei dies möglichst effizient umzusetzen. Erstellen Sie dazu im Package info1 eine neue Klasse namens Bart.java. b) Leider muss Bart des öfteren nachsitzen und verschiedene Sätze verschieden oft als Strafaufgabe ausgeben lassen. Modifizieren Sie das obige Programm so, dass es nach einem Satz und seinen Wiederholungen fragt und diesen dann entsprechend oft am Bildschirm ausgibt. Lösungsvorschlag 1.2 public c l a s s Bart extends MiniJava { int i ; i = 1 ; while ( i <=100){ w r i t e ( Ich d a r f w hrend der Vorlesung + nicht Computer s p i e l e n! ) ; i = i +1;

3 public c l a s s Bart extends MiniJava { w r i t e ( Welcher Satz s o l l ausgegeben werden? ) ; S t r i n g s a t z = r e a d S t r i n g ( ) ; w r i t e ( Wie o f t s o l l der Satz ausgegeben werden? ) ; int anzahl = r e a d I n t ( ) ; int i ; i = 1 ; while ( i <= anzahl ) { w r i t e ( s a t z ) ; i = i +1; Aufgabe 1.3 (P) Summe Schreiben Sie ein Java-Programm namens Sum.java, welches solange Zahlen einliest und summiert bis die Zahl 0 eingegeben wird. Anschließend soll die berechnete Summe ausgegeben werden. Lösungsvorschlag 1.3 public c l a s s Sum extends MiniJava { int sum ; sum = 0 ; int x ; x = read ( ) ; while ( x!= 0) { sum = sum + x ; x = read ( ) ; w r i t e (sum) ; Aufgabe 1.4 (P) 17 und 4 In dieser Aufgabe wollen wir das Kartenspiel 17 und 4 programmieren, das wie folgt funktioniert: Zwei Spieler spielen gegen einander. Ziel des Spiels ist es, mit zwei oder mehr Karten näher an 21 Punkte heranzukommen als der andere Spieler, ohne dabei den Wert von 21 Punkten zu überschreiten. Eine Karte kann einen Wert zwischen 2 und 11 Punkten haben. Jeder Spieler hat am Anfang zwei Spielkarten. Er kann entscheiden, ob er weitere Karten ziehen möchte oder nicht.

4 Glaubt er, nahe genug an 21 Punkte herangekommen zu sein, so lehnt er weitere Karten ab. Wenn er durch einen Zug 22 oder mehr Punkte erreicht, verliert er sofort. Es gewinnt der Spieler, der als erstes am nächsten an 21 Punkte herankommt. Schreiben Sie ein Mini-Java Programm SuV.java, mit dem man 17 und 4 zu zweit spielen kann. Jeder Spieler soll über Dialogboxen gefragt werden, ob er weitere Karten ziehen will: 1 für ja, 0 für nein. Verwenden Sie dazu die statische Methode int drawcard() der Klasse MiniJava, um Karten zu ziehen. Achten Sie darauf, Eingaben auf Ihre Gültigkeit hin zu überprüfen! Lösungsvorschlag 1.4 public c l a s s SuV extends MiniJava { int cont = 1 ; w r i t e ( Player one ) ; // Store p l a y e r 1 s score in an i n t e g e r int playerone = drawcard ( ) ; // e x i t when score exceeded or user r e f u s e s to p l a y while ( ( playerone < 21) && ( cont == 1) ) { // draw cards playerone = playerone + drawcard ( ) ; w r i t e ( Player one : You drew +playerone ) ; i f ( playerone > 21) { // p l a y e r s c o r e > 17+4 : ) w r i t e ( Player one i s dead : Player one l o s t! ) ; return ; cont = read ( Player one continue? (1=yes, 0=no ) ) ; while ( ( cont > 1) ( cont < 0) ) { cont = read ( Player one continue? (1=yes, 0=no ) ) ; w r i t e ( I t s Your turn, Player two! ) ; int playertwo = drawcard ( ) ; cont = 1 ; // computer t r i e s to b e a t p l a y e r u n t i l he l o o s e s while ( ( playertwo < 21) && ( cont == 1) ) { // draw cards playertwo = playertwo + drawcard ( ) ; w r i t e ( Player two : You drew +playertwo ) ; // e x i t when score exceeded or user r e f u s e s to p l a y i f ( playertwo <21){ cont = read ( Player2 continue? (1=yes, 0=no ) ) ; while ( ( cont > 1) ( cont < 0) ) { cont = read ( Player2 continue? (1=yes, 0=no ) ) ; // j u s t f o r information : i f ( playertwo > 21 playertwo < playerone ) {

5 w r i t e ( Player one won! ) ; else { w r i t e ( Player two beat p l a y e r one : Player two won ) ;