Einführung in die Informatik - Teil 6a -

Ähnliche Dokumente
Einführung in die Informatik - Teil 5 -

Einführung in die Informatik - Teil 4b - Zeichnen mit der Maus im JBuilder

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

8.6 Visualisierung der Sortieralgorithmen

Einführung in die Programmierung für NF MI. Übung 04

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Grundlagen der Objektorientierten Programmierung - Statische Arrays

Einführung in die Informatik - Teil 6b -

1 Klassen und Objekte

Repetitorium Informatik (Java)

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Probeklausur Informatik 2 Sommersemester 2013

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Java Einführung Klassendefinitionen

(C) Sortieren und Suchen mit Java.-AWT Seite 1

Felder. M. Jakob. 28. April Gymnasium Pegnitz

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

Tag 4 Repetitorium Informatik (Java)

7.5 Mit bunten Kreisen spielen

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Klausur Grundlagen der Programmierung

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Einführung in die Programmierung

allgemeine Übersicht / Struktur

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung

Probeklausur: Programmierung WS04/05

ALP II Dynamische Datenmengen Datenabstraktion

Objektorientierte Programmierung Studiengang Medieninformatik

Fragen zur OOP in Java

Liste Programmieren Java Überblick

Einführung in die Programmierung

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Tag 4 Repetitorium Informatik (Java)

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4.

Programmieren in Java -Eingangstest-

Java Beans. Übersicht, Eigenschaftstypen, Heutiger Stand.

Programmieren 2 Java Überblick

Arrays. Einleitung. Deklarieren einer Array Variablen

Virtuelle Lehrerweiterbildung Informatik in Niedersachsen. Eckart Modrow Zeichenketten S. 1. Zeichenketten

Große Übung Praktische Informatik 1

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Objektorientierte Programmierung Studiengang Medieninformatik

Einführung in Java, Teil 7

10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Einstieg in die Informatik mit Java

Info B VL 14: Java Collections/Reflections

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

C++ - Objektorientierte Programmierung Konstante und statische Elemente

1 Abstrakte Klassen, finale Klassen und Interfaces

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Einführung in die Java- Programmierung

Beispiel zum Schaltungsentwurf mithilfe endlicher Automaten Ein Zähler modulo 3 mit Reset

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

AuD-Tafelübung T-B5b

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Grundlagen der Programmierung

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

1 Abstrakte Datentypen

Dr. Monika Meiler. Inhalt

FHZ. Man unterscheidet ein- und mehrdimensionale Arrays. Bei einem mehrdimensionalen Array sind die Komponenten wiederum Arrays.

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Grundlagen der Programmierung

Javakurs für Anfänger

1 Erweiterung durch eigene Java-Klassen

Einstieg in die Informatik mit Java

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Swing :Komponenten I (Teil 2)

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Programmieren in Java

Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr

Zentralübung Grundlagen der Programmierung

Verkettete Datenstrukturen: Listen

Sommersemester Jewgeni Rose. Technische Universität Braunschweig

// Objekt-Methoden: public void insert(int x) { next = new List(x,next); } public void delete() { if (next!= null) next = next.next; } public String

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Programmieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik

pue13 January 28, 2017

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Javakurs für Anfänger

Java Beans. von Raoul Schneider

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Programmieren I. Kapitel 10. Spezielle Features

Handbuch für die Erweiterbarkeit

Transkript:

Eckart Modrow Felder mit dem JBuilder S. 1 Einführung in die Informatik - Teil 6a - Felder mit dem JBuilder Inhalt: 1. Bezug zum Unterricht: Anwendungen 2. Eine eigene Klasse Feldverwalter 3. Den Feldverwalter benutzen 4. Aufgaben: Literaturhinweise: Küchlin/Weber: Einführung in die Informatik, Objektorientiert mit Java, Springer 1998 Krüger, Guido: Handbuch der Java-Programmierung, http://www.javabuch.de oder Addison Wesley 2002

Eckart Modrow Felder mit dem JBuilder S. 2 1. Bezug zum Unterricht: Anwendungen Die im Unterricht benutzten Elemente einer Programmiersprache sollten sich nicht aus Vollständigkeits- oder anderen fachimmanenten Überlegungen ergeben, sondern möglichst aus einer Problemstellung abgeleitet werden, die Bezug zu den Möglichkeiten und Folgen der Anwendung von Informatiksystemen hat. Für Felder (Arrays) ergeben sich viele Anwendungsmöglichkeiten, da schon im Anfangsunterricht größere Datenmengen verarbeitet werden können, ohne eine echte Datei- oder Datenbankorganisation zu benötigen: Reine Datenverarbeitung (Daten verwalten, sortieren, in Daten suchen,...) Bildbearbeitung (Bilder erzeigen, verändern, konvertieren, darstellen,...) mit Zufallszahlen arbeiten (Bereiche festlegen, ordnen, Verteilung, doppelte Z.,...) Spiele (,...) in Koordinatensystemen arbeiten (zelluläre Automaten, Simulationen,...) Da die Daten oft mühsam eingegeben werden müssen, sollte eine Hilfsklasse bereitgestellt werden, mit deren Hilfe Felddaten gespeichert und wieder geladen werden können. 2. Eine eigene Klasse Feldverwalter Wir sollten die Verwaltung von Felddaten von der Benutzung trennen schon um der Übersichtlichkeit willen. Deshalb führen wir eine eigene Klasse Feldverwalter ein, deren Instanzen ein Feld verwalten und den Zugriff regeln. Ein Feldverwalter sieht dann so aus: Daten Konstruktor: Methoden: Feldverwalter(int) neuezahlen() String tostring() int groesste() sortiere() Felder in Java sind semidynamisch, d. h. sie können zur Laufzeit mit (fast) beliebiger Größe instanziiert werden, sind danach aber statisch. Felder ganzer Zahlen erhält man z. B. durch int daten[] = new int[6]; oder int daten[] = new int[i]; Hat ein Feld die Größe n, dann läuft sein Index von 0 bis (n-1). Die aktuelle Größe des Feldes erhält man über die Instanzvariable length (OHNE KLAMMERN!). Eigene Klassen benötigen einen Konstruktor zur Erzeugung von Klasseninstanzen, der so heißt wie die Klasse. In unserem Fall wollen wir dem Konstruktor die Größe des benötigten Feldes mit übergeben. Dieser legt das Feld dann an. Feldverwalter(int i)daten = new int[i];

Eckart Modrow Felder mit dem JBuilder S. 3 Um Lottozahlen zu erzeugen, können wir die mit Hilfe des Zufallsgenerators bestimmen und mit Hilfe des Math-Objekts in die gewünschte Form bringen. Dazu müssen wir noch ein Typecasting durchführen, da durch Rundungen Werte des Datentyps long entstehen, (int)math.round(math.random()*49+0.5); Das Feld daten wird dann innerhalb einer Schleife gefüllt, die die Feldgröße abfragt. public void neuezahlen() for(int i=0;i<daten.length;i++) daten[i] = (int)math.round(math.random()*49+0.5); Entsprechend kann die größte vorhandene Zahl abgefragt werden: public int groesste() int max=0; for (int i=0;i<daten.length;i++) if (daten[i]>max) max = daten[i]; return max; oder der Feldinhalt wird in einen String umgewandelt: public String tostring() String h="[ "; for(int i=0;i<daten.length-1;i++) h = h + daten[i]+", "; h = h+daten[daten.length-1]+" ]"; return h; Natürlich kann man die Felddaten auch sortieren: public void sortiere() int h; for(int i=0;i<daten.length-1;i++) for(int j=0;j<daten.length-i-1;j++) if(daten[j]>daten[j+1]) h = daten[j]; daten[j] = daten[j+1]; daten[j+1] = h; Insgesamt erhält man (die Klasse darf nicht als public deklariert werden!): class Feldverwalter int daten[]; Feldverwalter(int i)... public void neuezahlen()... public String tostring()... public int groesste() public void sortiere()

Eckart Modrow Felder mit dem JBuilder S. 4 3. Den Feldverwalter benutzen Wir wollen in einem Applet den Feldverwalter zur Ziehung von Lottozahlen einsetzen. Dazu erzeugen wir in der bekannten Art GUI- Komponenten und verknüpfen sie mit Hilfe eines Action-Listeners mit den Methoden des Feldverwalters. package felder; import java.awt.*; import java.awt.event.*; import java.applet.*; public class Applet1 extends Applet Button button1 = new Button(); Button button2 = new Button(); Button button3 = new Button(); Label lzahlen = new Label(); Label lgroesste = new Label(); Label lsortiert = new Label(); Feldverwalter lottozahlen = new Feldverwalter(6); public Applet1() / wie immer private void jbinit() throws Exception button1.setfont(new java.awt.font("dialog", 0, 20)); //.. usw void button1_actionperformed(actionevent e) lottozahlen.neuezahlen(); lzahlen.settext(lottozahlen.tostring()); void button2_actionperformed(actionevent e) lgroesste.settext(new Integer(lottozahlen.groesste()).toString()); void button3_actionperformed(actionevent e) lottozahlen.sortiere(); lsortiert.settext(lottozahlen.tostring());

4. Aufgaben Virtuelle Lehrerweiterbildung Informatik in Niedersachsen Eckart Modrow Felder mit dem JBuilder S. 5 1. a: Schreiben Sie eine Methode kleinstes() des Feldverwalters. b: Sorgen Sie dafür, dass keine doppelten Zahlen auftreten. c: Ändern Sie den Feldverwalter so, dass der Bereich, aus dem die Zufallszahlen stammen, mit dem Konstruktor festlegt werden können. d: Ermöglichen Sie es, die Zahlen absteigend zu sortieren. e: Implementieren Sie eine bessere Sortiermethode. f: Implementieren Sie eine Methode mittelwert() des Feldverwalters. 2. a: Informieren Sie sich im Netz über verschiedene Sortierverfahren. b: Schreiben Sie Applets, die die Arbeitsweise jeweils eines Verfahrens grafisch ansprechend darstellen. 3. a: Schreiben Sie ein Applet, mit dessen Hilfe sich die Felder eines 7x8-Arrays durch Anklicken schwarz bzw. weiß färben lassen. b: Versuchen Sie eine Methode zu schreiben, die ein Muster in diesem Array finden kann, z. B. ein Kreuz. c: Machen Sie sich Gedanken darüber, wie Mustererkennung z. B. mit Hilfe einer Quick- Cam im Unterricht eingesetzt werden kann. Leiten Sie unterschiedliche Aufgabenstellungen und deren Bezug zum Unterricht ab. 4. a: Gegeben seien zwei Felder mit Zufallszahlen. Diese sollen so aneinander gehängt werden, dass ein einziges Feld entsteht. b: Sortieren Sie das ganze Feld unter der Annahme, dass die beiden Felder schon sortiert waren. c: Sortieren Sie in das Feld einzelne weitere Zahlen ein. 5. a: Analysieren Sie das Spiel Schiffeversenken auf Möglichkeiten, es projektartig im Unterricht zu realisieren. b: Schreiben Sie Teile des Spiels als Applet.