Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Hintergrund Autoren von der PH Bern:

Ähnliche Präsentationen


Präsentation zum Thema: "Hintergrund Autoren von der PH Bern:"—  Präsentation transkript:

1 JAVA lernen mit www.java-online.ch

2 Hintergrund Autoren von der PH Bern:
Jarka Arnold, Dozentin für Informatik, Prof. Dr. Aegidius Plüss ( Keine lokale Installation notwendig Online-Editor und Online-Compiler Leichter Zugang zu JAVA Didaktische Klassenbibliotheken wie Turtle … „Lernprogramm“ mit „Aufgaben“ Schrittweise und ausführliche Hinführung

3 Buch-Empfehlung Autor: Prof. Dr. Aegidius Plüss
Titel: Java – exemplarisch Learning by doing Verlag: Oldenbourg (39,8 €) Grundthesen: Unterrichte moderne, weitverbreitete Sprache! Kleine Lernschritte – und Mut zur Lücke! Alles mit Programmbeispielen einführen! Verwende didaktische Klassenbibliotheken! OOP von Anfang an!

4 Grundlegender Programmierablauf
Algorithmus: Eingabe – Verarbeitungsvorschrift – Ausgabe Zuerst logisch und umgangssprachlich entwickeln Implementation: Algorithmus wird in Programmiersprache formuliert Kompilieren: Umwandeln in „Maschinensprache“ Ausführen: Programm läuft z. B. in der JVM: E → V → A

5 Grundlegende Programm-Strukturen
Sequenz Befehle werden nacheinander abgearbeitet joe.forward(100);joe.right(90);joe.forward(100);joe.right(90); Verzweigung (Selektion) Abhängig von Bedingungen verschiedene Befehle if (a > 0.5) joe.right(90); else joe.left(90); Schleife (Iteration) Wiederholung gewisser Programmblöcke for (int i = 0; i < 4; i++) {joe.forward(100); joe.right(90); }

6 Unterprogramme Methoden Funktionen Haben Argumente (Parameter)
Haben Rückgabe-Wert Prozeduren Haben Argumente Ohne Rückgabe-Wert („void“ (nichts)) void quadrat(Color c) { joe.setPenColor(c); for (int i=0; i<4; i++){joe.forward(100); joe.right(90); } }

7 Klassen und Objekte Objekte: Klasse: „Auto“
reale Welt wird modelliert Vereinfachung: Was ist für Problem wichtig? Beispiel: „Mein Auto“ Eigenschaften (Attribute): Höchstgeschw.: 178 km/h Verbrauch: 4 l / 100 km ... Verhalten (Methoden): Kann fahren Kann tanken … Klasse: „Auto“ „Mein Auto“ ist Instanz der Klasse „Auto“

8 Quelle: http://openbook. galileocomputing

9 Erste Programme mit Java-Online
Lernprogramm „erstes Programm“ „einfaches Zeichnen“ Aufgaben „Serie 1“

10 Probleme mit dem Online-Editor?
JRE muss installiert sein: Turtle-Grafik → Online-Editor → Installation JRE Im Browser muss Java erlaubt sein: Turtle-Grafik → Online-Editor → Browser-Einstellung Im Browser müssen Pop-Ups erlaubt sein:

11 Schrittfolge im Online-Editor
Java-Online → Turtle-Grafik → Online-Editor starten Klassen-Namen … Vorlage „Turtle“ Programm schreiben „Compilieren“ Evtl. Fehler beseitigen Programm ausführen

12 Klassenbibliothek importieren
import ch.aplu.turtle.*; Befehl „import“ Pakete von Klassen / Methoden werden für das aktuelle Programm nutzbar Klassenbibliothek „ch.aplu.turtle.*“ Mehrere Turtle-Klassen Ziel: Einfaches Zeichnen import ch.aplu.util.* Ausgaben in Fenster möglich Console.print(„Hallo Welt … in einem Fenster“);

13 Klassen und Objekte in Java
class Tu1 { Turtle joe = new Turtle(); Tu1() {joe.forward(100); … } public static void main(String[] args) { new Tu1(); } } Klasse Tu1 (Programm selbst ist eine Klasse) Klasse Turtle Neues Objekt: Turtle joe „Konstruktor“ der Klasse Tu1 (das gehört zur Klasse …) Hauptprogramm main Neues Objekt der Klasse Tu1

14 Klasse Turtle Eigenschaft Methode
Hat Farbe Color Hat Stiftfarbe PenColor Hat Position Pos Methode Kann sich bewegen forward(100); Kann sich drehen left(90); Kann Farbe ändern setColor(Color.blue); Kann Stiftfarbe ändern setPenColor(Color.red); Kann Position ändern setPos(-50,50); Neues Objekt Turtle joe= new Turtle() joe.forward(100);joe.left(90);joe.setPos(10,-10); ...

15 Erläuterung zum Hauptprogramm „main“
public static void main(String[] args) { } public static void main (String[] args) { … } OS darf zugreifen: öffentlich darf nur einmal vorkommen Kein Rückgabewert Ausgeführt beim Programmstart Beim Programmstart können Kommandozeilen-Parameter übergeben werden Inhalte von main ...

16 Sequenz mit Turtle Tu1() { joe.forward(100); joe.right(90); }

17 Tipps zur Syntax Gross-/kleinschreibung beachten!
System < > system ... Klassennamen: Groß → Tu1 … Namen von Variablen und Methoden: klein → joe Strichpunkt: so endet jede Anweisung: left(90); Geschweifte Klammern: paarweise {...} Übersicht wahren: Einrückungen – stets zwei Leerschläge geschweiften Klammern in neue Zeile Kommentare: //Kommentar bzw. /* */

18 Lösung zu Serie 1 (2) import ch.aplu.turtle.*; class Serie0102 {
Turtle joe = new Turtle(); Serie0102() joe.forward(100); joe.right(60); } public static void main(String[] args) { new Serie0102(); }

19 Nächste Aufgabe: Iterationen
Lernprogramm „while-Schleife““ „for-Schleife“ Aufgaben „Serie 2“ „Serie 3“

20 Iterationen mit Turtle: while-Schleife
{ int i = 0; //Startwert while (i < 4) //Bedingung joe.forward(100); //Anweisungen joe.right(90); i++; //Wertänderung }

21 Lösung zu Serie 2 (3) import ch.aplu.turtle.*; class Serie0203 {
Turtle joe = new Turtle(); Serie0203() int i = 0; while(i<360) joe.forward(1);joe.right(1); i++; } public static void main(String[] args) { new Serie0203(); }

22 Iterationen mit Turtle: for-Schleife
{ for (int i = 0; i < 4; i++) //Schleifenzähler: Anfangswert, // Bedingung, Wertänderung joe.forward(100); joe.right(90); }

23 Iterationen mit Turtle: Verschachtelte for-Schleife
{ for (int k = 0; k < 10; k++) { //äußere Schleife: 36°-Drehungen for (int i = 0; i < 4; i++) { //innere Schleife: Quadrat joe.forward(100); joe.right(90); } joe.left(36);

24 Lösung zu Serie 3 (1) import ch.aplu.turtle.*; class Serie0301 {
Turtle joe = new Turtle(); Serie0301() for (int k = 0; k < 24; k++) { //äußere Schleife: 15°-Drehungen for (int i = 0; i < 6; i++) { //innere Schleife: Sechseck joe.forward(100); joe.right(60); } joe.left(15); public static void main(String[] args) { new Serie0301(); }

25 Extra-Aufgabe 1 Gib mithilfe eines Java-Programms die Entwicklung eines Kapitals von 2000 € an, dass 20 Jahre lang mit einem jährlichen Zinssatz von 5% verzinst wird – inkl. Zinseszins. Tipp 1: Klasse importieren import ch.aplu.util.* Tipp 2: Ausgabe: Console c = Console.init() c.println(“ “); Tipp 3: Variablen double kapital = 2000; int n = 0; Der Nutzer soll das Anfangskapital und den Zinssatz eingeben können. Tipp 4: Eingabe c.readDouble(); Die Kapitalentwicklung soll grafisch ausgegeben werden. ??

26 Lösung 1a import ch.aplu.util.*; // Zins.java class Zins { Zins()
{ Console c = Console.init(); double kapital = 2000; double zinssatz = 0.05; int n = 0; c.println("Startkapital: " +kapital +" Euro"); while (n < 20) { kapital = kapital * (1 + zinssatz); c.println("Nach "+ n + " Jahren: " + kapital +" Euro"); n++; } } public static void main(String[] args) { new Zins(); }

27 Lösung 1b import ch.aplu.util.*; // Zins.java class Zins { Zins() {
Console c = Console.init(); c.println("Startkapital?"); double kapital = c.readDouble(); c.println("Zinssatz in Prozent?"); double zinssatz = c.readDouble(); int n = 0; while (n < 20) { kapital = kapital * (1 + zinssatz / 100); c.println("Nach "+ n + " Jahren: " + kapital +" Euro"); n++; } } public static void main(String[] args) { new Zins(); }

28 Lösung 1c import ch.aplu.turtle.*; // Zins3.java class Zins3 { Zins3()
{ Turtle joe = new Turtle(); double kapital = 70; double zinssatz = 10; double zins = 0; int n = 0; joe.setPos(-200,200);joe.forward(kapital); joe.right(90);joe.forward(20);joe.left(90); while (n < 20) { zins = kapital * zinssatz / 100; kapital = kapital + zins; joe.forward(zins); joe.right(90);joe.forward(20);joe.left(90); n++; } } public static void main(String[] args) { new Zins3(); }

29 Extra-Aufgabe 2 Zeige die Entwicklung einer Aktie an, die jetzt 100 € kostet und jeden Tag zwischen 10 € sinkt und 10 € steigt. Tipp: Zufall double b = Math.random(); erzeugt Zufallszahl zwischen 0 und 1 Ändere die Wertebereich und Veränderungen auch ab!

30 Lösung 2 import ch.aplu.turtle.*; // Aktie.java class Aktie { Aktie()
{ Turtle joe = new Turtle(); double wert = 100; double delta = 0; int n = 0; joe.setPos(-200,-200);joe.forward(wert);joe.right(90);joe.forward(2);joe.left(90); while (n < 200) { delta = Math.random()* ; joe.forward(delta); joe.right(90);joe.forward(2);joe.left(90); n++; } } public static void main(String[] args) { new Zins3(); }

31 Farben import java.awt.Color ; Klasse für Farben
joe.setColor (Color.red) ; Turtle selber wird rot joe. setPenColor (Color.red) ; Turtle zeichnet rot joe. setFillColor (Color.red) ; Füllfarbe wird auf rot gesetzt joe. fill ( - 60 , 60 ) ; Fläche wird ausgefüllt Standardfarben: Color.blue, Color.pink, … joe.setColor(Color.magenta); Beliebiger RGB-Farbton: Color c = new Color(0, 255, 80); joe.setColor(c);

32 Nächste Aufgabe: Verzweigung
Lernprogramm „if - else“ „switch“ Aufgaben „Serie 6“

33 Verzweigung mit Turtle: if - else
{ for (int i = 0; i < 50; i++) double a = Math.random(); //Zufallszahl if (a > 0.5) joe.right(90); else joe.left(90); joe.forward(20); }

34 Verzweigung mit Turtle: Verschachtelte Verzweigungen
for (int i = 0; i < 180; i++) { if (i < 50) joe.forward(2); else if (i < 100) {joe.right(3.6); joe.forward(2);} if (i < 150) { joe.hideTurtle(); joe.left(3.6); joe.forward(2); } joe.forward(20); }

35 Lösung zu Serie 6 (3) import ch.aplu.turtle.*;import java.awt.Color;
class Serie0603 { Turtle joe = new Turtle(); Serie0603() { for (int k = 0; k < 100; k++) { double a = Math.random() * 40; if (a<20) joe.setPenColor(Color.red) ; else joe.setPenColor(Color.blue); joe.forward(a); double b = Math.random(); if (b<0.5) joe.left(90) ; else joe.right(90); } public static void main(String[] args) { new Serie0603(); }


Herunterladen ppt "Hintergrund Autoren von der PH Bern:"

Ähnliche Präsentationen


Google-Anzeigen