Betreutes Programmieren. 4-Gewinnt

Größe: px
Ab Seite anzeigen:

Download "Betreutes Programmieren. 4-Gewinnt"

Transkript

1 WS 2011/2012 Fakultät Angewandte Informatik Programmierung verteilter Systeme Prof. Dr. Bernhard Bauer Betreutes Programmieren Programmieraufwand für geübte Programmierer: max. 40 min. Programmieraufwand für ungeübte Programmierer: min. Musterlösung: 94 Codezeilen 1 Forderung: Beschriebene Funktionalitäten ohne Zusatzaufgaben. Grundsätzliches: API 4-Gewinnt Alle von Java unterstützten Funktionen und Klassen finden Sie in der dazugehörigen API (Applications Program Interface). Dazu sollte man wissen, dass alle Funktionen bestimmten Klassen zugeordnet sind. Hinzu kommt noch, dass diese Klassen wiederum in Paketen enthalten sind allerdings ist dies für die Lösung der Aufgabe irrelevant und wird im Laufe des Semesters vertieft. Dennoch sollten Sie sofort damit anfangen, sich mit der API zu beschäftigen: Java-API: 1: Alle Pakete; 2: Alle im gerade gewählten Paket enthaltenen Klassen; 3: Alle in der gewählten Klasse enthaltenen Funktionen 1 Orientierung: Keine Leerzeilen; keine Kommentare; in eigenen Zeilen (34x); Klammer auch um 1-Zeilen Blocks; keine?-operatoren; 1 Anweisung pro Zeile, außer bei Deklarationen gleichen Typs: int a, b, c=0,...;

2 Eclipse (Schnellstart für CIP-Pool) Starten Sie Eclipse unter C:\Program Files\eclipse\eclipse.exe Richten Sie sich einen geeigneten Workspace ein. Als Default wird Ihnen C:\Users\<name>\workspace empfohlen. In diesem Ordner werden alle Ihre Programme gespeichert. Wählen Sie nun rechts das Symbol "Workbench Go to the Workbench" Gehen Sie nun auf File -> New -> Project wobei Sie das 2. Project wählen Wählen Sie nun unter Java -> Java Project, anschließend Next Wählen Sie nun einen Projektnamen, wie z.b. "Betreutes Programmieren 2" und wählen Sie Finish. Die anschließende Frage können sie mit Yes beantworten Markieren Sie nun im linken Fenster unter Betreutes Programmieren 2 den src - Ordner Anmerkung: Per Konvention ist es üblich, dass jede Java-Klasse sich in einem Paket befindet. Diesen Standard wollen wir uns angewöhnen. Rechtsklick auf src und wählen Sie New->Package und wählen Sie einen geeigneten Namen, wie "main" (Paketnamen werden nach Konvention immer mit Kleinbuchstaben am Anfang geschrieben) Rechtsklick auf main und wählen Sie New->Class und nennen Sie diese "VierGewinnt" Es öffnet sich nun im rechten Teil ein Dokument in dem Sie Ihren Code schreiben können Ausgeführt wird der Code über den weißen Pfeil auf grünem Grund zwischen dem Käfer und dem analogen Pfeil mit einem kleinen roten Koffer darunter oder mit Run->Run oder Strg+F11 oder Rechtsklick auf VierGewinnt->RunAs-> JavaApplication Kommandozeilenparameter kann man übergeben via: Run->Open Run Dialog->(x)=Arguments->Programm arguments: Das ist ein test dies ist das gleich wie die Eingabe java VierGewinnt Das ist ein test in der Eingabeaufforderung und übergibt damit dem Programm die vier Parameter args[0]=das args[1]=ist args[2]=ein args[3]=test

3 4-Gewinnt: Beim 4-Gewinnt gibt es ein Spielfeld aus BREITE vielen Schächten, die je HOEHE viele Steinen fassen. Zwei Spieler werfen abwechselnd einen ihrer Steine von oben in einen Schacht ihrer Wahl, wobei der Stein soweit wie möglich nach unten fällt.gewinner ist derjenige, der als erster 4 Steine oder mehr nebeneinander in einer Reihe platzieren kann, wobei hier alle Richtungen (horizontal, vertikal und diagonal) zählen. Zur Veranschaulichung dient folgende Grafik, bei der der Spieler mit den X-Steinen gewonnen hat: X X O X O X X O O O X Aufgabe: Schreiben Sie ein Kommandozeilen-basiertes 4-Gewinnt Spiel. Dabei soll der Mensch gegen die Maschine antreten. Der Einfachheit halber wird auf die automatische Überprüfung, wer gewonnen hat, verzichtet. Schreiben Sie sich eine Klasse VierGewinnt, in der sich auch die Main-Methode befindet. Die Feldgröße (HOEHE, BREITE) wird beim Starten des Programms via Kommandozeilenparameter festgelegt und die Werte als globale Variablen private static int HOEHE und private static int BREITE gespeichert. Dabei soll die Anzahl der übergebenen Parameter überprüft und eine entspr. Fehlermeldung ausgegeben werden. Außerdem legen zwei weitere globale Variablen vom Typ private static char die Spielsteine von SPIELER und RECHNER fest. Plausibilitätstests der Spielfeldabmessungen sind Ihnen freigestellt. In der Main-Methode wird das Spielfeld als ein 2-dimensionales char-array feld realisiert, welches zu Beginn mit Leerzeichen initialisiert wird. Anschließend wird in einer Endlosschleife zunächst das Spielfeld ausgegeben, der Benutzer zu einer Eingabe aufgefordert, das Spielfeld abermals ausgegeben und die Eingabe des Rechners verarbeitet. Dann startet die Schleife von vorn. Die Ausgabe des Feldes soll mit einer Methode private static void malefeld(char feld[][]) geschehen. Eine weitere Methode private static lesekoordinate() fordert den Benutzer solange zu einer Eingabe auf, bis dieser entweder einen Wert zwischen 1 und BREITE eingibt oder mit 0 anzeigt, dass er das Programm beenden möchten. Die dritte Methode private static boolean trageein(char feld[][], int schacht, char stein) trägt in den vom Benutzer oder Rechner gewählten schacht dessen Spielstein stein (globale Variable) in das Spielfeld feld ein und liefert als Rückgabewert, ob das geklappt hat oder nicht. Sollte dies nicht geklappt haben, wird der entsprechende Spieler in der Main-Methode solange wieder zu einer Eingabe aufgefordert, bis ein passender Schacht gewählt wurde, so dass das Eintragen klappt. Der Schacht des Rechners wird berechnet, indem man sich mit einer passenden Funktion der java.lang.math-klasse eine Zufallszahl aus [0,1[ generieren lässt, diese auf das Intervall [0,BREITE-1[ streckt und anschließend zum nächstgelegenen int rundet (ebenfalls durch geeignete Funktion der Math-Klasse): eingabe = (int) Math.RUNDEN((BREITE-1) * Math.ZUFALL); (RUNDEN und ZUFALL sind dabei passend zu ersetzen) Da es sich um eine Endlosschleife handelt, muss das Programm unter Umständen mit Strg+C beendet werden. Nach Ihrem bisherigen Wissensstand dürfte es kein Problem darstellen, dieses Programm in C zu schreiben. Wenn Sie sich in Java bereits sicher fühlen oder Erfahrung haben, versuchen Sie, die Aufgabe nach obiger Aufgabenstellung zu lösen. Andernfalls erhalten Sie nun im Folgenden eine Schritt für Schritt Anleitung mit Vergleichen, wie es in C gemacht werden würde, und was für Elemente gerade behandelt werden. Anleitung: Bevor Sie mit der Arbeit beginnen, öffnen Sie die API, scrollen Sie im linken oberen Frame (1) zum Paket java.lang und klicken es an. java.lang ist das Standardpaket und ist immer eingebunden. Im unteren Frame (2) öffnet sich nun eine Übersicht über alle Interfaces, Klassen, Aufzählungen,... wobei vorerst die Klassen das einzig Interessante für uns sind. Klicken Sie nun auf eine Klasse, z.b. Math, erhalten Sie im rechten Frame (3) eine Übersicht über diese Klasse, bestehend aus Beschreibung, Konstantenübersicht, Methodenübersicht, Detaillierte Konstanten, Detaillierte Methoden. Die Methodenübersicht teilt Ihnen in der ersten Spalte mit, welche Modifikatoren die einzelnen Funktionen haben (diese spielen die ersten paar Wochen keine Rolle) und welchen Rückgabetyp und -wert. In der zweiten Spalte steht dann der Funktionsname mit Eingabeparameterliste und einer kurzen Beschreibung: static double abs (double a) ist eine statische Methode, die den Absolutbetrag einer double-zahl als double zurückliefert. 1) Wir wollen mit der Main-Funktion starten. Bevor man aber in Java die Main-Funktion, oder irgendeine andere Funktion, benutzen kann, benötigt man eine Klasse, die diese und weitere Funktionen umschließt. Daher definieren wir uns also eine Klasse mit einem sprechenden Namen: - Per Konvention schreibt man Klassennamen immer groß. - public ist ein Modifikator, der dafür sorgt, dass die Klasse von überall aus erreichbar ist. Mehr dazu im Laufe des Semesters. Speichern Sie die Datei auch unbedingt unter dem Klassennamen ab, da es sonst nicht möglich ist, das Programm zu kompilieren. In diesem Fall muss Ihre Datei also VierGewinnt.java heißen. Alle Funktionen werden in dieser Klasse zusammengefasst, also erhalten wir: // Hier kommen Funktionen hin 2) Während es in C verschiedene Signaturen der Main-Funktion gibt, hat Java nur eine: public static void main (String args[]), die ein wenig an int main (int argc, char* argv[]) erinnert. - public und static sind Modifikatoren, die für die ersten paar Wochen des Semesters einfach akzeptiert werden sollten ;)

4 - Im Gegensatz zur C-Main gibt die Java-Main keinen Wert zurück und ist somit void. - Sowohl in Java, als auch in C werden die Argumente als Strings übergeben, allerdings wird in Java kein int argc benötigt, da man die Länge des String-Arrays args mittels args.length abfragen kann und args[0] beinhaltet nicht den Programmnamen, sondern den ersten Kommandozeilenparameter sofern vorhanden. Wir erhalten also: public static void main (String args[]) 3) Nutzt man in C globale Variablen, so müssen diese vor deren Benutzung in der Funktion deklariert werden, Java hingegen sieht eine Klasse als abgeschlossenes System und lässt Deklarationen überall zwischen den Funktionen zu. Dennoch wollen wir uns an die Konventionen halten und globale Variablen am Anfang der Klassendeklaration vor der ersten Funktion deklarieren: // Platz für globale Variablen public static void main (String args[]) Für das Programm benötigen wir 4 globale Variablen: int HOEHE, int BREITE für die Spielfeldabmessungen und char SPIELER und char RECHNER, wobei der Spieler mit dem Stein 'X' und der Rechner mit den Stein 'O' spielen soll. Als Modifikatoren benötigen die Variablen außerdem noch private static. So könnten also zwei der vier Variablen private static int HOEHE; private static char SPIELER='X'; lauten (die anderen beiden schaffen Sie selbst). 4) Gut, der Rahmen wäre also geschaffen. Da die Feldgröße entscheidend für das Spiel ist und über Kommandozeilenparameter eingegeben werden soll, wird dies der erste Schritt sein. Aus C kennen Sie das Vorgehen: if(argc<3) printf("zu wenig Parameter. Bitte geben Sie Höhe und Breite an."); return 1; if(argc>3) printf("zu viele Parameter. Bitte geben Sie nur Höhe und Breite an."); return 2; Übersetzung: Wie Sie aus dem HelloWorld - Programm der Vorlesung bereits wissen, können Sie in Java mittels System.out.println("") Text auf der Konsole ausgeben. Was argc in Java heißt, wurde bereits in 2) geklärt, und einen Programmabbruch erzeugt man mit der exit() - Methode der Klasse System 2, also mittels System.exit(0). 5) Nun, da wir wissen, dass wir die richtige Anzahl an Parametern bekommen haben, können wir diese verarbeiten. Allerdings gibt es dabei noch ein kleines Hindernis: args ist ein String-Array und die globalen Variablen BREITE und HOEHE, in denen die Abmessungen gespeichert werden sollen, sind vom Typ int, d.h. wir müssen noch den int-wert parsen. Dies wird mit der Methode parseint() der Hüll-Klasse Integer gemacht: HOEHE = Integer.parseInt(args[0]); (BREITE analog mit args[1]) Achtung: Im Gegensatz zu C wird in Java die Fehlerbehandlung nicht unbedingt über Rückgabewerte geregelt. Würden Sie in diesem Fall einen String parsen, der nicht ausschließlich aus Integer besteht (und ggf. noch dem Minus-Zeichen), so würde eine sog. NumberFormatException geschmissen werden. Dazu erfahren Sie im Laufe des Semesters noch mehr und dies soll hier nur als Ausblick erwähnt werden. Daher ergeben auch Plausibilitätstests der Variablen an dieser Stelle wenig Sinn und können somit weggelassen werden. 6) Zu Testzwecken können wir mal den ersten Testlauf machen und uns dabei die über die Kommandozeile übergebenen Parameter ausgeben lassen. In C wurde dies mittels printf("eingegeben wurden HOEHE %i und BREITE %i", HOEHE, BREITE) gemacht. In Java ist es möglich Strings, oder Variablen anderen Datentyps und Strings mit + zu verbinden: "Das ist ein Test "+4 würde "Das ist ein Test 4" liefern. Oder wenn man eine Variable int anzahl hat, so könnte man den Satz System.out.println("Sie haben "+anzahl+" gelbe Bananen bestellt") ausgeben lassen. Machen Sie dies für HOEHE und BREITE. Um das Programm auszuführen, müssen Sie es zunächst kompilieren: javac VierGewinnt.java Anschließend führen Sie es mit java VierGewinnt 4 7 oder anderen Parametern aus und Sie sollten ihre Ausgabe ähnlich "HOEHE: 4, BREITE: 7" 2 System enthält einige Methoden des laufenden Systems, also der Java Virtual Machine. Schauen Sie sich bei Zeiten mal die Methode gc() genauer an und versuchen Sie sich dadurch zu erklären, warum es in Java keine free() Methode gibt.

5 erhalten. 7) Als nächstes definieren wir uns ein Spielfeld, das aus einem 2-dimensionalen char-array besteht. Während dies in C dynamische Speicherreservierung mittels malloc() bedeutete, ist dies in Java wesentlich einfacher zu lösen. Wir erinnern uns: War die Array-Größe bereits zur Kompilierzeit bekannt, so konnte man in C ein 2-dim Array mittels char feld [BREITE][HOEHE] deklarieren. Java ermöglicht dies auch zur Laufzeit, allerdings werden Arrays und andere Objekte mit new erzeugt, was man mit der dynamischen Speicherreservierung vergleichen kann. So erhält man: char feld[][] = new char[breite][hoehe] Initialisieren Sie nun mit einer doppelten for-schleife (o.ä.) das Spielfeld mit Leerzeichen ' '. Merke: Alle mit new erzeugten Objekte verhalten sich wie Pointer in C, folgen also in Funktionen dem Call by Reference Prinzip! 8) Um das Spiel zu realisieren, lagern wir die restlichen Aufgaben in drei Funktionen aus: private static void malefeld (char feld[][]) private static int lesekoordinate() private static boolean trageein(char feld[][], int schacht, char stein) anders als in C ist es nicht nötig, Prototypen der Funktionen am Anfang der Klasse zu deklarieren. Wir haben jetzt also // Globale Variablen public static void main (String args[]) // args-prüfung // feld-deklaration + Initialisierung private static void malefeld (char feld[][]) private static int lesekoordinate() private static boolean trageein(char feld[][], int schacht, char stein) 9) Als erstes widmen wir uns der malefeld() Funktion: private static void malefeld (char feld[][]) Dabei soll das übergebene feld Zeile für Zeile durchlaufen werden. Die Funktion ist void, d.h. sie gibt nichts zurück. Die Abmessungen von feld sind durch HOEHE und BREITE gegeben. 3 Weiter sei noch gesagt, dass System.out.println() die Ausgabe mit einem '\n' abschließt, System.out.print() hingegen nicht. Sie können an die Funktionen Strings mit "" übergeben oder einzelne Character / Steuerzeichen mit einfachen Hochkommata ''. Wie bei printf eben auch. Ansonsten müssen Sie nur mit einer for-schleife feld durchlaufen und den Inhalt (angemessen formatiert, z.b. so wie in der Beschreibung zu Anfang) ausgeben. In Java ist auch die Deklaration von Variablen in der for-schleifen-definition erlaubt: for (int i=0;i<bla;i++). Ansonsten ist die Aufgabe analog zu C lösbar. Bemerkung: Geben Sie das Feld besser von HOEHE-1 bis 0 aus, so dass auch tatsächlich die Felder von unten nach oben befüllt werden. Ansonsten würde ja die 0te Zeile zuerst, dann die 1., die 2. usw. ausgegeben, sodass obige Abbildung auf dem Kopf stünde. Anmerkung: Auch in Java gäbe es printf. 10) Die zweite Funktion ist lesekoordinate(): private static int lesekoordinate() Sie soll den Benutzer so lange zu einer Eingabe auffordern, bis dieser eine gültige Eingabe liefert und diese dann zurückgeben. Gültige Eingabe bedeutet, dass die eingegebene Zahl in [1;BREITE] liegen soll. Definieren Sie 0 als Eingabe für den Abbruch des Programms. In C haben Sie gelernt: int lesekoordinate() int x=-1; do printf("bitte eine Zahl zwischen 1 und %i eingeben",breite); x = getchar(); while(getchar()!='\n' && x!='\n'); while(y-48<0 y-48>breite)) if(y-48==0) exit(0); return y-48; Eine der Möglichkeiten, um in Java von Kommandozeile einzulesen ist die System.in.read() Methode. Diese liest das erste Zeichen des Eingabestroms aus, bei nochmaligen Aufruf das zweite usw. Diese Methode ist also analog zu getchar(). Leider ist es hier aufgrund des Exception-Handlings in Java notwendig eine von System.in.read() geschmissene Exception abzufangen. Ohne sich weiter darüber Gedanken zu machen, können Sie die Methode wie folgt aufbauen: private static int lesekoordinate() int y = -1; 3 Eigentlich etwas unsauber. Man kann die Länge der Felder auch mit feld.length und feld[0].length abfragen.

6 try // Code Ihrer Funktion catch(exception e) return y; Ansonsten ist die Aufgabe analog zu C lösbar. Auch hier muss der Eingabestrom geleert werden. 11) Die letzte Funktion ist trageein(): private static boolean trageein(char feld[][], int schacht, char stein) Dabei werden Sie mit dem neuen Datentyp boolean vertraut gemacht. Dieser hat als Wertemenge lediglich true,false. In der Funktion soll versucht werden, den Spielstein stein in den durch schacht festgelegten Schacht des Spielfelds feld einzutragen. Da ja von oben in das Spielfeld geworfen wird, muss überprüft werden, ob in diesem Schacht überhaupt noch Platz ist und falls ja, muss der Stein auf dem derzeit höchsten Stein des Schachts platziert werden. Ist das Eintragen erfolgreich verlaufen, soll true zurückgegeben werden, ansonsten false. In C wäre das... int i=0; while(i<hoehe && feld[schacht][i]!=' ') i++; if(i<hoehe) feld[schacht][i] = zeichen; return 1; return 0; 12) Nachdem wir nun alle Funktionen be- und geschrieben haben, können wir zur Main-Funktion zurückkehren. Deklarieren Sie sich dort eine Variable boolean gewonnen und initialisieren Sie diese mit false, sowie eine Variable int eingabe. Fügen Sie in den bisherigen Code eine Endlosschleife while(!gewonnen) // hier den restlichen Code ein. In dieser Endlosschleife soll nun abwechselnd das gleiche passieren: - geben Sie das Spielfeld mittels des Aufrufs malefeld(feld) aus. - in einer do-while-schleife soll nun der Rückgabewert von lesekoordinate() in eingabe gespeichert werden. Als Abbruchbedingung wählen Sie den Rückgabewert true der Funktion trageein(feld,eingabe,spieler). Beachten Sie, dass der Spieler Zahlen aus [1;BREITE] eingibt, das Array feld allerdings die Schächte [0;BREITE-1] besitzt: do eingabe=...; while(trageein(...)==false); - anschließend wird wieder feld ausgegeben. - nun folgt eine weitere do-while-schleife, in der der Rechner seinen Zug macht. eingabe wird dabei mittels der Rundung zum nächsten Integer einer double Zufallszahl berechnet. Hier dürfen Sie etwas die Arbeit mit der API üben. Die Klasse Math in java.lang bietet eine Vielzahl an mathematischen Funktionen. Eine Funktion liefert eine double-zufallszahl zwischen 0 und 1, eine andere Funktion rundet ein double zum nächstgelegenen Integer und gibt diese Zahl als double zurück. Sie muss folgerichtig gecastet werden. Haben Sie die beiden Funktionen gefunden, können Sie diese hier einsetzen (wobei Math. benötigt wird): eingabe = (int) Math.RUNDEN((BREITE-1) * Math.ZUFALLSZAHL); Diese do-while-schleife hat dieselbe Abbruchbedingung wie die vorhergehende. Anschließend beginnt die Endlosschleife von vorn. Damit ist das Programm abgeschlossen. Die Endlosschleife kann mittels Strg+C abgebrochen werden. Freiwillige Zusatzaufgaben: Schreiben Sie eine Funktion private static boolean istvoll(char feld[][]), die überprüft, ob ein Spielfeld bereits voll ist. Implementieren Sie eine Funktion private static boolean hatgewonnen(char feld[][]), die überprüft, ob ein Spieler gewonnen hat. Dabei muss überprüft werden, ob waagerecht, senkrecht oder diagonal 4 oder mehr Steine vom gleichen Typ in einer Reihe liegen. Es empfiehlt sich diese Überprüfungen wiederum in eigene Funktionen auszulagern (testewaag, testesenk, testediag). Außerdem spart man sich Arbeit, wenn man nur vom aktuell gesetzten Stein aus prüft und nicht das ganze Feld. Der Zufallsgenerator ist als Gegner keine Herausforderung. Überlegen Sie sich eine lustige künstliche Intelligenz public static int ki()

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

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

Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil) Vier Gewinnt Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester 2008. Aufgabe 1 (Vier Gewinnt 1. Teil) Implementieren Sie eine Java-Klasse VierGewinnt1, mit einer

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

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

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

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

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

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

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Java Programmierung auf der Konsole / unter Eclipse

Java Programmierung auf der Konsole / unter Eclipse Fakultät Informatik, HFU Brückenkurs Programmieren 1 Java Programmierung auf der Konsole / unter Eclipse Allgemeine Begriffe Programmiersprache: künstliche Sprache zur Notation von Programmen Programm:

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung

Mehr

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

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE)

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE) Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java

Mehr

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays Dass Sie unter Access Daten in Tabellen speichern und gezielt darauf zugreifen können, wissen Sie als Access [basics]-leser schon längst. Aber was, wenn Sie nur ein paar gleichartige Daten zwischenspeichern

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo

Mehr

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 10 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Übungsblatt Nr. 10 Aufgabe 20: Code Verständnis Löse diese Aufgabe selbständig als Vorbereitung zur Übung auf dem Papier. a) Gib

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

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

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi Grundlagen der Programmierung 1 WS 2012/2013 Prof. Dr. Stefan Böttcher Aufgabenblatt 1: - Präsenzübung für die Übungen Do. 11.10.- Mi. 17.10.2012 Ausgabe Mi. 10.10.2012 1.1. Zahlen vertauschen mit wenigen

Mehr

CEN1112 Labor Software-Entwicklung

CEN1112 Labor Software-Entwicklung Dipl.-Ing. (FH) Peter Bitterlich M.Sc. Joachim Storz Fakultät für Technik STUDIENGANG MEDIZINTECHNIK CEN1112 Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 C-Programmierung Vertiefung Wintersemester

Mehr

Arbeiten mit JavaKara

Arbeiten mit JavaKara Arbeiten mit JavaKara 1. Programmierumgebung Möchte man ein neues Programm erstellen, so wird einem ein Programmeditor zur Verfügung gestellt, der bereits eine vorgefertigte Schablone darstellt. In der

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Eclipse Tutorial.doc

Eclipse Tutorial.doc Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden. Allgemein Ein Einzug sollte aus 4 Leerzeichen bestehen.

Mehr

Greenfoot: Verzweigungen

Greenfoot: Verzweigungen Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Eine Einführung in. für mathematisch- technische Assistenten / Informatik (IHK)

Eine Einführung in. für mathematisch- technische Assistenten / Informatik (IHK) Eine Einführung in für mathematisch- technische Assistenten / Informatik (IHK) Autor: Michael Wiedau Version vom 30. August 2006 Inhaltsverzeichnis 1. Den Workspace wählen... 3 2. Ein neues Projekt erstellen...

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken 4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Konstruktoren, Packages und Scopes

Konstruktoren, Packages und Scopes Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Konstruktoren, Packages und Scopes Dipl. Inf. Manuel Götz Lehrstuhl für Angewandte

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

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

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Prof.Dr. Alfred Irber Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren"

Prof.Dr. Alfred Irber Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen Programmieren Prof.Dr. Alfred Irber 7.6.2012 Dies ist keine Musterprüfung, sondern eine Sammlung von Aufgaben aus früheren Prüfungen "Programmieren" Textformatierung (30 Punkte) Schreiben Sie ein komplettes C-Programm,

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

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

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 07: Mehr zu Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Weitere Übungen zu Arrays Arrays und Objekte (Wetterstation) 2-Dimensionale

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

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

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

Java Kurzreferenz Für Fortgeschrittene

Java Kurzreferenz Für Fortgeschrittene Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit Javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

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

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013. Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr