Hintergrund Autoren von der PH Bern:

Slides:



Advertisements
Ähnliche Präsentationen
Rekursive Grafiken Reklursive Grafiken.
Advertisements

Einführung in die Programmierung Zusammenfassung
Imperative Programmierung -Entwicklungswerkzeuge
IF-ELSE-IF-Ketten Weiter mit PP..
Konstruktoren.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Programmieren mit JAVA
DVG Einführung in Java1 Einführung in JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Eigene Metoden (Turtle-Paket (C) Taulien 2003)
Schleifen mit der Turtle
Bestimmung des ggT zweier Zahlen
Verzweigung.
Informatik Grundkurse mit Java
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Unterprogramme in JAVA
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Schleifen mit der Turtle
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Java Programme nur ein bisschen objektorientiert.
1 freedroidz – spielend Programmieren lernen. 2 Was ist freedroidz?
Objektorientiertes Modellieren und Programmieren mit Java
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Hello World! Javakurs 2013 Arne Kappen
JAVA lernen: Methoden.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Einführung in die Programmierung mit Java
Algorithmen.
Ein schematischer Kirschbaum in Java
Java & Greenfoot Grundlagen.
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Die Struktur einer Java-Klasse
Grundkurs Informatik 11-13
Mit der Turtle Java Programmieren
Syntax: while ( BEDINGUNG ) { // Anweisungen die so lange immer wieder ausgeführt // werden, wie die Bedingung zutrifft } for (INITIALISIERUNG; BEDINGUNG;
6. Wiederholungen und Zählschleifen
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Schleifen mit der Turtle
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Schleifen mit der Turtle
Mit Java die Turtle steuern
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Informatik Kurse
2. Vererbung und Kapselung
«Delegierter» Methoden Schablone Funktionszeiger
Reklursive Grafiken Teil I
1. Die rekursive Datenstruktur Liste 1
Implementieren von Klassen
Statische und Nichtstatische Methoden Properties / Eigenschaften
Juli 19 Informatik Kurse
 Präsentation transkript:

JAVA lernen mit www.java-online.ch

Hintergrund Autoren von der PH Bern: Jarka Arnold, Dozentin für Informatik, Prof. Dr. Aegidius Plüss (www.aplu.ch) 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

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!

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

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); }

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); } }

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“

Quelle: http://openbook. galileocomputing

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

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:

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

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“);

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

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); ...

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 ...

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

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. /* ....... */

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(); }

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

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

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(); }

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

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);

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(); }

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. ??

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(); }

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(); }

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(); }

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!

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()*20 - 10; joe.forward(delta); joe.right(90);joe.forward(2);joe.left(90); n++; } } public static void main(String[] args) { new Zins3(); }

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);

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

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

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); }

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(); }