Programmiervorkurs Wintersemester 2013/2014
Programmiervorkurs Wintersemester 2013/2014 Organisation: Tutoren: Steffen Gebert, Alexander Wolff Johannes Grohmann, Anna Seufert, Anna Aumann, Nicolas Färber, Constantin Kleinbeck, Fabian Unruh, Alexander Werthmann, Hasan Tuncay
Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert E-Learning Kursraum: steffen.gebert@informatik.uniwuerzburg.de https://wuecampus2.uniwuerzburg.de/moodle/course/view.php?id =4430
Programmiervorkurs WS 2013/2014 Erste Schritte Termin 1
Was heißt Programmieren?
Was heißt Programmieren? Problem Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung?
Was heißt Programmieren? Analyse / Modellierung Problem algorithmische Beschreibung Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung?
Was heißt Programmieren? Analyse / Modellierung Problem algorithmische Beschreibung Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Wie lässt sich das Problem lösen? Kochrezept
Was heißt Programmieren? Analyse / Modellierung Programmierung / Codierung Problem algorithmische Beschreibung Programm Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Wie lässt sich das Problem lösen? Wie bringe ich meine Idee dem Computer bei? Z.B. Durch ein Java-Programm?
Was heißt Programmieren? Analyse / Modellierung Programmierung / Codierung Übersetzung / Compilierung Problem algorithmische Beschreibung Programm ausführbares Programm Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Wie lässt sich das Problem lösen? Wie bringe ich meine Idee dem Computer bei? Z.B. Durch ein Java-Programm? Wie muss der ausführbare Code aussehen? Z.B. Java-Bytecode?
Was heißt Programmieren? Analyse / Modellierung Programmierung / Codierung Übersetzung / Compilierung Problem algorithmische Beschreibung Programm ausführbares Programm Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Wie lässt sich das Problem lösen? Wie bringe ich meine Idee dem Computer bei? Z.B. Durch ein Java-Programm? Wie muss der ausführbare Code aussehen? Z.B. Java-Bytecode? Ausführung / Interpretierung Problemlösung? Ist das Problem gelöst?
Was heißt Programmieren? Analyse / Modellierung Problem algorithmische Beschreibung Programmierung / Codierung Vorkurs Übersetzung / Compilierung Ausführung / Interpretierung Programm ausführbares Programm Problemlösung?
Was heißt Programmieren? Problem Analyse / Modellierung Programmierung / Codierung algorithmische Beschreibung Vorlesung: Algorithmen und Datenstrukturen Übersetzung / Compilierung Ausführung / Interpretierung Programm ausführbares Programm Problemlösung?
Was brauchen wir zum Programmieren? JDK = Java Software Development Kit JDK 7 Standard Edition: http://www.oracle.com/technetwork/java/javase/downloads/index.html Dokumentation: http://download.oracle.com/javase/7/docs/api/ Tutorials: http://download.oracle.com/javase/tutorial/ Eclipse IDE for Java Developers IDE = Integrated Development Environment Version 4.2 : http://www.eclipse.org/downloads/
Java-Bücher D. Ratz, J. Scheffler, D.Seese & J.Wiesenberger: Grundkurs Programmieren in Java, Band 1, Hanser Verlag, ISBN 978-3-446-40493-9 http://www.grundkurs-java.de/ C. Ullenboom: Java ist auch eine Insel, Galileo Computing, ISBN 978-3-8362-1371-4 http://openbook.galileocomputing.de/javainsel8/
Vom Java-Quellprogramm zum ausführbaren Programm Java-Quellprogramm Java-Compiler Java-Bytecode Java VM für Windows ausführbares Windows- Programm Java VM für Linux ausführbares Linux- Programm Java VM für MacOS ausführbares MacOS- Programm
Vom Java-Quellprogramm zum ausführbaren Programm Java-Quell-Programm Java-Compiler Kompilieren von der Konsole... Java-Bytecode...und von Eclipse (normalerweise automatisch)
Vom Java-Quellprogramm zum ausführbaren Programm Java-Bytecode Java VM für Windows ausführbares Windows- Programm Ausführen von der Konsole......und von Eclipse
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Ein Java-Programm besteht aus Klassen
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Diese Klasse heißt MyFirstClass
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Die Beschreibung einer Klasse wird in geschweifte Klammern gefasst.
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); In einer Klasse können Methoden definiert werden. In jedem Java-Programm gibt es eine Methode, die main heißt. Diese wird beim Aufruf des Programms zuerst ausgeführt.
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Bei Ausführung einer Methode werden die Anweisungen in den geschweiften Klammern nacheinander ausgeführt.
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { //Dies ist ein Kommentar System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { //Gib Zeichenkette auf Bildschirm aus: System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { /* Dies ist ein Kommentar mit mehreren Zeilen */ System.out.println("Hello World!");
Ausgabe von Text /** * Dies ist ein Java-Doc Kommentar */ public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Text /** * Dieses Programm gibt die Zeichenkette * "Hello World!" auf den Bildschirm aus. * * @author Jan-Henrik Haunert * @date 2010-09-28 * @version 1.0 */ public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Name der Methode für die Ausgabe einer Zeichenkette
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Parameter werden der Methode in runden Klammern übergeben
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Zeichenketten werden in Anführungsstriche gestellt
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!"); Anweisungen werden mit Semikolon abgeschlossen
Ausgabe von Text public class MyFirstClass { System.out.println("Hello World!");
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i);
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i); Deklaration einer Variablen
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i); Typ der Variablen (int = Ganzzahl)
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i); Bezeichner der Variablen
Ausgabe von Zahlen public class Berechnung { int anzahlstudenten; anzahlstudenten = 3 + 4; System.out.println(anzahlStudenten); Bezeichner der Variablen guter Stil: Bezeichner von Variablen beginnen mit kleinen Buchstaben und sind möglichst selbsterklärend.
Ausgabe von Zahlen public class Berechnung { int anzahlstudenten; anzahlstudenten = 3 + 4; System.out.println(anzahlStudenten); Bezeichner der Variablen erlaubt: nicht erlaubt: Hallo_Welt _H_A_L_L_O hallo123 101Dalmatiner studenteninwürzburg Hallo Welt hallo_123 class (Regeln siehe Literatur)
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i); Zuweisungsoperator (rechte Seite wird zuerst ausgewertet)
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println(i); Zuweisungsoperator (rechte Seite wird zuerst ausgewertet)
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; i = i + 7; //i wird um 7 erhoeht System.out.println(i);
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println("Das Ergebnis ist:"); System.out.println(i);
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.print("Das Ergebnis ist:"); System.out.println(i);
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.print("Das Ergebnis ist:"); System.out.println(i); Ausgabe ohne Zeilenumbruch
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println("Das Ergebnis ist:" + i);
Ausgabe von Zahlen public class Berechnung { int i; i = 3 + 4; System.out.println("Das Ergebnis ist:" + i); Verketten von Zeichenketten Addition von Zahlen
Eingabe von Text public class EingabeUndAusgabe{ System.out.println("Hello World!");
Eingabe von Text public class EingabeUndAusgabe{ String s = "Hello World!"; System.out.println(s);
import java.util.scanner; Eingabe von Text public class EingabeUndAusgabe{ Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s);
import java.util.scanner; Eingabe von Text public class EingabeUndAusgabe{ Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s); Liest einen Text von der Tastatur ein.
import java.util.scanner; Eingabe von Text public class EingabeUndAusgabe{ Scanner sc = new Scanner(System.in); String s = sc.next(); System.out.println(s); import erforderlich
Einfache Datentypen Ganzzahlige Datentypen public class Berechnung { int i; i = 3 + 4; System.out.println(i);
Einfache Datentypen Ganzzahlige Datentypen public class Berechnung { int i; i = 3 + 4; System.out.println(i); kleinster Wert: - 2147483648 größter Wert: 2147483647 = 2 31-1 Länge 32 Bits, also eine binäre Zahl mit 32 Stellen 01101001101000111010010110111010
Einfache Datentypen Ganzzahlige Datentypen public class Berechnung { long i; i = 3 + 4; System.out.println(i); kleinster Wert: - 9223372036854775808 größter Wert: 9223372036854775807 = 2 63-1 Länge 64 Bits, also eine binäre Zahl mit 64 Stellen 0110100110100011101001011011101001101001101000111010010110111010
Einfache Datentypen Ganzzahlige Datentypen public class Berechnung { short i; i = 3 + 4; System.out.println(i); kleinster Wert: - 32768 größter Wert: 32767 = 2 15-1 Länge 16 Bits, also eine binäre Zahl mit 16 Stellen 1010010110111010
Einfache Datentypen Ganzzahlige Datentypen public class Berechnung { byte i; i = 3 + 4; System.out.println(i); kleinster Wert: -128 größter Wert: 127 = 2 7-1 Länge 8 Bits, also eine binäre Zahl mit 8 Stellen 10100101
Gleitkommazahlen Einfache Datentypen public class Intdiv { System.out.println(1 / 10);
Gleitkommazahlen Einfache Datentypen public class Intdiv { System.out.print("1/10 betraegt "); System.out.print(1 / 10); System.out.print(" mit Rest "); System.out.print(1 % 10);
Gleitkommazahlen Einfache Datentypen public class Intdiv { System.out.print("1/10 betraegt "); System.out.print(1 / 10); System.out.print(" mit Rest "); System.out.print(1 % 10); Modulo-Operator liefert den Rest der Division
Gleitkommazahlen Einfache Datentypen public class Floatdiv { double dividend = 1.0; double divisor = 10.0; double quotient = dividend / divisor; System.out.println(quotient);
Gleitkommazahlen Einfache Datentypen public class Floatdiv { double dividend = 1.0; double divisor = 10.0; double quotient = dividend / divisor; System.out.println(quotient); kleinster positiver Wert: 4.9406564584124654E-324 größter positiver Wert: 1.7976931348623157E+308 Länge: 64 Bits
Gleitkommazahlen Einfache Datentypen public class Floatdiv { float dividend = 1.0; double divisor = 10.0; double quotient = dividend / divisor; System.out.println(quotient); kleinster positiver Wert: 1.4012984643248171E-45 größter positiver Wert: 3.4028234663852886E+38 Länge: 32 Bits
Gleitkommazahlen Einfache Datentypen public class Floatdiv { System.out.println(1.0 / 10.0);
import java.util.scanner; Eingabe von Zahlen public class EingabeUndAusgabe{ Scanner sc = new Scanner(System.in); int i = sc.nextint(); System.out.println(i); Liest eine int-zahl von der Tastatur ein.
import java.util.scanner; Eingabe von Zahlen public class EingabeUndAusgabe{ Scanner sc = new Scanner(System.in); double d = sc.nextdouble(); System.out.println(d); Liest eine double-zahl von der Tastatur ein. (Je nach lokalen Einstellungen wird Komma wie in 1.0 oder 1,0 erwartet.)
Aufgabe Erstellt (schrittweise) ein Programm, das a) den Nutzer zur Eingabe persönlicher Daten (Vorname, Nachname, Aufgabenbereich, Postleitzahl, Ort, Telefonnummer) auffordert, b) diese Daten im Stil einer Visitenkarte ausgibt, c) einen Satz folgender Form ausgibt: VORNAME: Ich wohne in ORT. d) und die eingegebenen Daten tabellarisch darstellt. z.b. Name: NAME, VORNAME Adresse: Telefon: ADRESSE NUMMER