Sequenzen: Lineare Programme. Das EVA-Prinzip Ausgabe Eingabe Verarbeitung Rezept, Zutaten Topf,...

Post on 06-Apr-2016

219 views 1 download

Transcript of Sequenzen: Lineare Programme. Das EVA-Prinzip Ausgabe Eingabe Verarbeitung Rezept, Zutaten Topf,...

Sequenzen:Lineare Programme

Das EVA-Prinzip

Ausgabe

Eingabe

Verarbeitung

Rezept, Zutaten

Topf, Ofen (Hardware)Kochen (Software)

Lecker

Beispiel Lineares Programm: Brutto berechnen

Bruttonetto einlesen

prozent einlesen

steuern = netto * prozent / 100

brutto = netto + steuern

brutto ausgeben

Ein- und Ausgabe

Ausgabe in Java

System.out.println("Hallo"); // Ausgabe von Hallo und System.out.println("Welt"); // springt in die nächste Zeile

Ausgabe:HalloWelt

System.out.print("Hallo"); // Ausgabe von Hallo und System.out.println("Welt"); // bleibt in der gleichen Zeile

Ausgabe: HalloWelt

String text="Hallo";int zahl=5;System.out.println(text+"Welt"+zahl+ "! ");

Ausgabe: HalloWelt5!

Eingabe in Java: Die Scanner-Klasse

Definiert die Eingabe über die Tastatur

Einlesen eines Strings

Einlesen einer Integer

Pfad zu der Scanner-Klasse angeben

Arbeitsauftrag

Schreiben Sie das Java-Programm

zum Struktogramm „Brutto“

Ein- und Ausgabe mit der JOptionPane

Ausgabe eines Strings

Fehlermeldung

Einlesen eines Strings

Arbeitsauftrag

Entwickeln Sie ein Struktogramm, das den Abstand von zwei

Punkten in der Ebene ermittelt.

Grundbegriffe

Maschinensprache, Programmiersprachen, Algorithmus, Compiler, Interpreter, JavaVirtualMachine, java, javac

Variablen und Datentypen

Bezeichner, Datentypen, Definition, Wertzuweisung

Operatoren

Arithmetische Operatoren, Modulo, Vergleichsoperatoren, Logische Operatoren

Ein-/Ausgabe

print / println, “Hallo”+name, Scanner

Programme

Struktogramm, Java-Prg

Themen Klassenarbeit

Typumwandlungen(Typecasting)

Implizites und explizites Typecasting

int long

int iZahl=1000;long loZahl=1000000;loZahl=iZahl; // funktioniert implizit

long int

iZahl = (int) loZahl; // explizit durch den Typecast-Operator

float double

float fZahl=3.14f;double dZahl=77.7;dZahl = fZahl; // funktioniert implizit

double float

fZahl = (float) dZahl; // explizit durch den Typecast-Operator

Explizites Typecasting zwischen verschiedenen Datentypen

int float

Int iZahl1=5;float fZahl1=10.8f;

fZahl1 = (float) iZahl1;iZahl1 = (int) fZahl1; // danach hat iZahl1 den Wert 10

String int, String float

String sZahl1="56";int iZahl1=5;float fZahl1=10.8f;

iZahl1 = Integer.valueOf(sZahl1);sZahl1 = String.valueOf(iZahl1); fZahl1 = Float.valueOf(sZahl1);sZahl1 = String.valueOf(fZahl1);

Typecasting Beispiele 1

iZahl = (int) fZahl1 * (int) fZahl2;oderiZahl = (int) (fZahl1 * fZahl2); // Klammern sind hier wichtig!

dZahl2 = fZahl1; // geht implizit

fZahl = (float)(iZahl1 + iZahl2); // expliziter Typecast-Operator

sZahl1 = String.valueOf(loZahl1 + (long) iZahl1);

fZahl1= 45.765f;iZahl1= (int) fZahl1; // erhält nur den ganzteiligen Anteil, also 45

Typecasting Beispiele 2

Runden einer float-Zahl

float fZahl1=45.49f;int iZahl1 = (int) (fZahl1+0.5f);

Runden auf 3 Kommastellen

float fZahl1=45.123456f;float fZahl3 = (int)(fZahl1*1000+0.5f)/1000f;

Zufallszahlen

Math.random() liefert eine double-Zahl zwischen 0 und 1.

Gesucht: Integer-Zufallszahl im Bereich 1…n

int n=10;int meineZufallszahl = (int) (n * Math.random())+1;

Arbeitsauftrag

Würfel-Simulation schreiben