public class Berechnung

Werbung
 Programmiervorkurs Wintersemester 2012/2013
Organisa(on: Steffen Gebert, Alexander Wolff Tutoren: Tobias Bleifuß, Padraig Davidson, Nicolas Färber, Johannes Grohmann, Johnny Lordo, Anna Seufert •  Kontakt (für Organisatorisches, Fehler auf Folien...): Steffen Gebert steff[email protected]­‐wuerzburg.de •  E-­‐Learning Kursraum: hMps://wuecampus2.uni-­‐wuerzburg.de/moodle/
course/view.php?id=32 Programmiervorkurs WS 2012/2013
Erste SchriMe 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? Problem
Analyse / Modellierung
algorithmische
Beschreibung
Welches Problem ist zu lösen?
Was erwarte ich von meiner Lösung?
Was heißt Programmieren? Problem
Welches Problem ist zu lösen?
Was erwarte ich von meiner Lösung?
Analyse / Modellierung
algorithmische
Beschreibung
Wie lässt sich das Problem lösen?
„Kochrezept“
Was heißt Programmieren? Problem
Welches Problem ist zu lösen?
Was erwarte ich von meiner Lösung?
Analyse / Modellierung
algorithmische
Beschreibung
Wie lässt sich das Problem lösen?
Programmierung / Codierung
Programm
Wie bringe ich meine Idee dem
Computer bei?
Z.B. Durch ein Java-Programm?
Was heißt Programmieren? Problem
Welches Problem ist zu lösen?
Was erwarte ich von meiner Lösung?
Analyse / Modellierung
algorithmische
Beschreibung
Wie lässt sich das Problem lösen?
Programmierung / Codierung
Programm
Übersetzung / Compilierung
ausführbares
Programm
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? Problem
Welches Problem ist zu lösen?
Was erwarte ich von meiner Lösung?
Analyse / Modellierung
algorithmische
Beschreibung
Wie lässt sich das Problem lösen?
Programmierung / Codierung
Programm
Übersetzung / Compilierung
ausführbares
Programm
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? Problem
Analyse / Modellierung
algorithmische
Beschreibung
Programmierung / Codierung
Programm
Übersetzung / Compilierung
ausführbares
Programm
Ausführung / Interpretierung
Problemlösung?
Vorkurs
Was heißt Programmieren? Problem
Analyse / Modellierung
Vorlesung:
algorithmische
Beschreibung
Programmierung / Codierung
Programm
Übersetzung / Compilierung
ausführbares
Programm
Ausführung / Interpretierung
Problemlösung?
Algorithmen
und
Datenstrukturen
Was brauchen wir zum Programmieren? –  JDK = Java SoXware Development Kit •  JDK 7 Standard EdiHon: hMp://www.oracle.com/technetwork/java/javase/downloads/index.html •  DokumentaHon: hMp://download.oracle.com/javase/7/docs/api/ •  Tutorials: hMp://download.oracle.com/javase/tutorial/ –  Eclipse IDE for Java Developers •  IDE = Integrated Development Environment •  Version 4.2 : hMp://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 hMp://www.grundkurs-­‐java.de/ –  C. Ullenboom: Java ist auch eine Insel, Galileo CompuHng, ISBN 978-­‐3-­‐8362-­‐1371-­‐4 hMp://openbook.galileocompuHng.de/javainsel8/ Vom Java-­‐Quellprogramm zum ausführbaren Programm Java-Quellprogramm
Java-Compiler
Java-Bytecode
Java VM
für Windows
Java VM
für Linux
Java VM
für MacOS
ausführbares
WindowsProgramm
ausführbares
LinuxProgramm
ausführbares
MacOSProgramm
Vom Java-­‐Quellprogramm zum ausführbaren Programm Java-Quell-Programm
Java-Compiler
Java-Bytecode
Kompilieren von der Konsole...
...und von Eclipse
(normalerweise automatisch)
Vom Java-­‐Quellprogramm zum ausführbaren Programm Java-Bytecode
Java VM
für Windows
Ausführen von der Konsole...
ausführbares
WindowsProgramm
...und von Eclipse
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ein Java-Programm besteht aus Klassen
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Diese Klasse heißt MyFirstClass
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Die Beschreibung einer Klasse wird
in geschweifte Klammern gefasst.
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
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 {
public static void main(String[] args) {
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 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
//Dies ist ein Kommentar
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
//Gib Zeichenkette auf Bildschirm aus:
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
/*
Dies ist ein Kommentar
mit mehreren Zeilen
*/
System.out.println("Hello World!");
}
}
Ausgabe von Text /**
* Dies ist ein Java-Doc Kommentar
*/
public class MyFirstClass {
public static void main(String[] args) {
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 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Name der Methode für die
Ausgabe einer Zeichenkette
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Parameter werden der Methode
in runden Klammern übergeben
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Zeichenketten werden in
Anführungsstriche gestellt
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Anweisungen werden mit
Semikolon abgeschlossen
Ausgabe von Text public class MyFirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Deklaration einer Variablen
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Typ der Variablen (int = Ganzzahl)
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Bezeichner der Variablen
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
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 {
public static void main(String[] args) {
int anzahlStudenten;
anzahlStudenten = 3 + 4;
System.out.println(anzahlStudenten);
}
}
Bezeichner der Variablen
erlaubt:
nicht erlaubt:
Hallo_Welt
101Dalmatiner
_H_A_L_L_O
studentenInWürzburg
hallo123
Hallo Welt
hallo_123
class
(Regeln siehe Literatur)
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Zuweisungsoperator
(rechte Seite wird zuerst ausgewertet)
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
}
Zuweisungsoperator
(rechte Seite wird zuerst ausgewertet)
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
i = i + 7; //i wird um 7 erhoeht
System.out.println(i);
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println("Das Ergebnis
ist:");
System.out.println(i);
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.print("Das Ergebnis ist:");
System.out.println(i);
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.print("Das Ergebnis ist:");
System.out.println(i);
}
}
Ausgabe ohne Zeilenumbruch
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println("Das Ergebnis ist:" + i);
}
}
Ausgabe von Zahlen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println("Das Ergebnis ist:" + i);
}
}
Verketten von Zeichenketten
Addition von Zahlen
Eingabe von Text public class EingabeUndAusgabe{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Eingabe von Text public class EingabeUndAusgabe{
public static void main(String[] args) {
String s = "Hello World!";
System.out.println(s);
}
}
Eingabe von Text import java.util.Scanner;
public class EingabeUndAusgabe{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println(s);
}
}
Eingabe von Text import java.util.Scanner;
public class EingabeUndAusgabe{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println(s);
}
}
Liest einen Text von der Tastatur ein.
Eingabe von Text import java.util.Scanner;
public class EingabeUndAusgabe{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println(s);
}
}
import erforderlich
Einfache Datentypen •  Ganzzahlige Datentypen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
} Einfache Datentypen •  Ganzzahlige Datentypen public class Berechnung {
public static void main(String[] args) {
int i;
i = 3 + 4;
System.out.println(i);
}
} kleinster Wert: - 2147483648
größter Wert:
2147483647 = 231 - 1
Länge
32 Bits, also eine binäre Zahl mit 32 Stellen
01101001101000111010010110111010
Einfache Datentypen •  Ganzzahlige Datentypen public class Berechnung {
public static void main(String[] args) {
long i;
i = 3 + 4;
System.out.println(i);
}
} kleinster Wert: - 9223372036854775808
größter Wert:
9223372036854775807 = 263 - 1
Länge
64 Bits, also eine binäre Zahl mit 64 Stellen
0110100110100011101001011011101001101001101000111010010110111010
Einfache Datentypen •  Ganzzahlige Datentypen public class Berechnung {
public static void main(String[] args) {
short i;
i = 3 + 4;
System.out.println(i);
}
} kleinster Wert: - 32768
größter Wert:
32767 = 215 - 1
Länge
16 Bits, also eine binäre Zahl mit 16 Stellen
1010010110111010
Einfache Datentypen •  Ganzzahlige Datentypen public class Berechnung {
public static void main(String[] args) {
byte i;
i = 3 + 4;
System.out.println(i);
}
} kleinster Wert: -128
größter Wert: 127 = 27 - 1
Länge
8 Bits, also eine binäre Zahl mit 8 Stellen
10100101
Einfache Datentypen •  Gleitkommazahlen public class Intdiv {
public static void main(String[] args) {
System.out.println(1 / 10);
}
} Einfache Datentypen •  Gleitkommazahlen public class Intdiv {
public static void main(String[] args) {
System.out.print("1/10 betraegt ");
System.out.print(1 / 10);
System.out.print(" mit Rest ");
System.out.print(1 % 10);
}
} Einfache Datentypen •  Gleitkommazahlen public class Intdiv {
public static void main(String[] args) {
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
Einfache Datentypen •  Gleitkommazahlen public class Floatdiv {
public static void main(String[] args) {
double dividend = 1.0;
double divisor = 10.0;
double quotient = dividend / divisor;
System.out.println(quotient);
}
} Einfache Datentypen •  Gleitkommazahlen public class Floatdiv {
public static void main(String[] args) {
double dividend = 1.0;
double divisor = 10.0;
double quotient = dividend / divisor;
System.out.println(quotient);
}
} kleinster positiver Wert: ≈ 4.9406564584124654E-324
≈ 1.7976931348623157E+308
größter positiver Wert:
Länge:
64 Bits
Einfache Datentypen •  Gleitkommazahlen public class Floatdiv {
public static void main(String[] args) {
float dividend = 1.0;
double divisor = 10.0;
double quotient = dividend / divisor;
System.out.println(quotient);
}
} kleinster positiver Wert: ≈ 1.4012984643248171E-45
≈ 3.4028234663852886E+38
größter positiver Wert:
Länge:
32 Bits
Einfache Datentypen •  Gleitkommazahlen public class Floatdiv {
public static void main(String[] args) {
System.out.println(1.0 / 10.0);
}
} Eingabe von Zahlen import java.util.Scanner;
public class EingabeUndAusgabe{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println(i);
}
}
Liest eine int-Zahl von der Tastatur ein.
Eingabe von Zahlen import java.util.Scanner;
public class EingabeUndAusgabe{
public static void main(String[] args) {
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 (schriMweise) ein Programm, das a)  den Nutzer zur Eingabe persönlicher Daten (Vorname, Nachname, Aufgabenbereich, Postleitzahl, Ort, Telefonnummer) auffordert, b)  diese Daten im SHl 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 
Herunterladen