Arrays Fortgeschrittene Verwendung



Ähnliche Dokumente
Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

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

Arrays von Objekten. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

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

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übung Programmierung WS 2007/08 - Blatt 5

Kapitel 14. Systemarchitektur

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

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

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Programmierkurs Java

Objektorientierte Programmierung

5 Projekt Bankverwaltung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 9. Arrays. Arrays 1

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

BEISPIELKLAUSUR Softwareentwicklung:

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verbuchung von Zahlungseingängen über das PayPal-Konto

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

Übungen zu Computeranwendung und Programmierung WS 13/14

Objektorientierte Programmierung

5.4 Klassen und Objekte

Programmieren Tutorium

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Kapitel 6. Vererbung

Einführung in die Programmierung

Einführung in die Java- Programmierung

Studentische Lösung zum Übungsblatt Nr. 7

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

2. Programmierung in C

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Kapitel 15. Systemarchitektur

Modellierung und Programmierung 1

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

5. Tutorium zu Programmieren

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

1 Vom Problem zum Programm

Einführung in die Java- Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Java Einführung Collections

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

SEP 114. Design by Contract

Einführung in die Programmierung (EPR)

Software WISO Hausverwalter 2014 Datenübernahme aus WISO Mein Geld Version / Datum V 1.0 /

Wenn Sie das T-Online WebBanking das erste Mal nutzen, müssen Sie sich zunächst für den Dienst Mobiles Banking frei schalten lassen.

Propädeutikum zur Programmierung

Anleitung: Passwort-Self-Service-Portal

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Java: Vererbung. Teil 3: super()

Einführung in die Programmierung für Wirtschaftsinformatik

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Objektorientierte Programmierung. Kapitel 12: Interfaces

Fusion 2015 Änderungen Ihres Zahlungverkehrsprogrammes VR-Networld

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

WICHTIG. StarMoney-Software Kontoumstellung mittels VR-NetKey (PIN/TAN) Ab dem 21. September Nur für Kunden der bisherigen GERAER BANK eg!

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf an.

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Javakurs zu Informatik I. Henning Heitkötter

Computeranwendung und Programmierung (CuP)

Delegatesund Ereignisse

Grundlagen Programmierung

Anleitung Kontoeinrichtung mit apokennung in StarMoney

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

Danach kann die ProfiCash-Software wie gewohnt genutzt werden. Dieser Leitfaden unterstützt Sie bei der Umstellung auf die neue Bankverbindung.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Profi cash. Kontoumstellung mittels VR-NetKey (PIN/TAN) Ab dem 12. Oktober Nur für Kunden der ehemaligen VR Bank Saarpfalz eg

1 Konto mit HBCI-PIN/TAN einrichten

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Übungen Programmieren 1 Felix Rohrer. Übungen

Prüfung Computation, Programming

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

> HBCI PIN/TAN und T-Online Banking 6.0

Inhaltsverzeichnis. 4. Umsatz-Daten exportieren 5. Konten der Raiffeisenbank Eberhardzell-Ummendorf eg und der Raiffeisenbank Oberessendorf löschen

WICHTIG. ProfiCash Software. Kontoumstellung mittels VR-NetKey (PIN/TAN)

Bevor Sie mit den Umstellungsarbeiten beginnen, führen Sie bitte eine Datensicherung aus.

1. Anmeldung von Konten für das elektronische Postfach

Anleitung für IQES-Verantwortliche Persönliche Konten verwalten

Graphic Coding. Klausur. 9. Februar Kurs A

Java Einführung Operatoren Kapitel 2 und 3

Transkript:

Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12

Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen Typs array = [w 1,w 2,w 3,,w n ] Reihenfolge relevant: [w 1,w 2 ]!=[w 2,w 1 ] Zugriff auf ein bestimmtes Element möglich z.b. a[0] = w 1 Achtung! Array: [ w 1, w 2, w 3,,w n ] Position: 0 1 2 n-1 Elemente müssen den gleichen Typ haben Grunddatentyp z.b. [1,2,3,4], aber nicht [1,1.0,2] Klassentyp z.b. [Konto1,Konto2], aber nicht [Konto1,Fahrzeug1] Arraytyp z.b. [ [1,2],[3,4] ], aber nicht [ [1,2],[1.0,2.0] ] 2

Arrays von Objekten: Beispiel Einführung in die Informatik Sie eröffnen eine Bank mit einem fantasiereichen Namen. Um Ihr Risiko überschaubar zu halten, beschließen Sie nur eine begrenzte Anzahl von Bankkonten in Ihrer Bank zu verwalten. Anzahl aller schon eröffneter Konten Array kann nur eine begrenzte Anzahl an Bankkonten speichern (Achtung: geeignete Initialisierung) 3

Arrays von Objekten: Partielle Arrays Einführung in die Informatik Das Array konten vom Typ BankKonto[] speichert alle aktuell eröffneten Bankkonten bis zu einer Maximalanzahl n, d.h. das Array muss so initialisiert werden, dass nur maximal n Bankkonten gespeichert werden können. die Bank muss sich merken, wie viele Bankkonten schon eröffnet wurden. // Konstruktor public Bank(String name, int maxanzahlkonten) { this.name = name; this.konten = new BankKonto[maxAnzahlKonten]; this.anzahleroeffneterkonten = 0; 4

Arrays von Objekten: Partielle Arrays Einführung in die Informatik Das Array konten vom Typ BankKonto[] speichert alle aktuell eröffneten Bankkonten bis zu einer Maximalanzahl n, d.h. das Array muss so initialisiert werden, dass nur maximal n Bankkonten gespeichert werden können. die Bank muss sich merken, wie viele Bankkonten schon eröffnet wurden. public void kontoeroeffnen(int kontonummer, double anfangsbetrag) { if (this.anzahleroeffneterkonten < this.konten.length) { this.konten[this.anzahleroeffneterkonten] = new BankKonto(kontoNummer,anfangsBetrag); this.anzahleroeffneterkonten++; 5

Arrays von Objekten: Bank-GUI Einführung in die Informatik 6

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 5 Zeilen und 1 Spalte 7

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 5 Zeilen und 1 Spalte 8

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 5 Zeilen und 1 Spalte Gruppe mit 1 Zeile und 2 Spalten 9

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 1 Zeile und 2 Spalten 10

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 1 Zeile und 2 Spalten 2 Zeilen und 1 Spalte 11

Arrays von Objekten: Bank-GUI Einführung in die Informatik Gruppe mit 5 Zeilen und 1 Spalte Gruppe mit 1 Zeile und 2 Spalten 2 Zeilen und 1 Spalte 12

Arrays von Objekten: Button Bank eröffnen (I) Erzeugung (Konstruktor von BankFrame): this.bankeroeffnenbutton = new JButton("Bank eröffnen"); Platzierung (Konstruktor von BankFrame): siehe Gruppierungen ActionListener registrieren (Konstruktor von BankFrame): this.bankeroeffnenbutton.addactionlistener(this); Ereignisbehandlung public void actionperformed(actionevent e) { if (e.getsource() == this.bankeroeffnenbutton) { this.bankeroeffnen(); 13

Arrays von Objekten: Button Bank eröffnen (II) Die Funktionalität des Buttons wird in der Methode bankeroeffnen der Klasse BankFrame umgesetzt private void bankeroeffnen() {... // Fehlerbehandlung, falls Bank schon eröffnet String name = JOptionPane.showInputDialog("Name"); String einlesenmax = JOptionPane.showInputDialog("Max-Anzahl"); int max = Integer.parseInt(einlesenMaxKonten); this.bank = new Bank(name, max); this.ausgabebereich.settext("bank eröffnet"); 14

Arrays von Objekten: Button Konto eröffnen (I) Erzeugen, Platzieren, ActionListener, Ereignisbehandlung analog Die Funktionalität des Buttons wird in der Methode kontoeroeffnen der Klasse BankFrame umgesetzt private void kontoeroeffnen () {... // Fehlerbehandlung, falls keine Bank eröffnet int kontonr = Integer.parseInt( JOptionPane.showInputDialog("Kontonummer")); double anfangsbetrag = Double.parseDouble( JOptionPane.showInputDialog("Anfangsbetrag")); boolean eroeffnet = this.bank.kontoeroeffnen(kontonr,anfangsbetrag); if(eroeffnet) this.ausgabebereich.settext("eröffnet"); 15

Arrays von Objekten: Button Konto eröffnen (II) Konto in der Bank eröffnen d.h. Methode kontoeroeffnen in der Klasse Bank public boolean kontoeroeffnen(int kontonummer, if (this.anzahleroeffneterkonten < double anfangsbetrag){ this.konten.length) { this.konten[this.anzahleroeffneterkonten] = new BankKonto(kontoNummer, anfangsbetrag); this.anzahleroeffneterkonten++; return true; return false; Partielles Array! 16

Arrays von Objekten: Button Einzahlen (I) Erzeugen, Platzieren, ActionListener, Ereignisbehandlung analog Die Funktionalität des Buttons wird in der Methode einzahlen der Klasse BankFrame umgesetzt private void einzahlen() {... // Fehlerbehandlung, falls keine Bank eröffnet int kontonr = Integer.parseInt( JOptionPane.showInputDialog("Kontonummer")); double betrag = Double.parseDouble( JOptionPane.showInputDialog("Betrag")); boolean eingezahlt = this.bank.einzahlen(kontonr,betrag); if(eingezahlt) this.ausgabebereich.settext("eingez."); 17

Arrays von Objekten: Button Einzahlen (II) Einzahlen auf bestimmtes Konto d.h. Methode einzahlen in der Klasse Bank public boolean einzahlen(int kontonr, double betrag){ BankKonto konto = this.suchebankkonto(kontonr); if (konto!= null) { konto.einzahlen(betrag); return true; return false; 18

Arrays von Objekten: Button Einzahlen (III) Suche eines bestimmten Kontos d.h. Methode suchebankkonto in der Klasse Bank public BankKonto suchebankkonto(int kontonr){ for (int i = 0; i < this.anzahleroeffneterkonten; i++) { BankKonto konto = this.konten[i]; if (konto.getkontonummer() = kontonr) { return konto; return null; 19

Arrays von Objekten: Button Abheben & Kontostand Analog zum Button Einzahlen 20

Arrays von Objekten: Button Gesamtsaldo (I) Erzeugen, Platzieren, ActionListener, Ereignisbehandlung analog Die Funktionalität des Buttons wird in der Methode gesamtsaldoberechnen der Klasse BankFrame umgesetzt private void gesamtsaldoberechnen() {... // Fehlerbehandlung, falls keine Bank eröffnet double gesamtsaldo = this.bank.gesamtsaldo(); this.ausgabebereich.settext( "Der Gesamtsaldo ist " + gesamtsaldo); 21

Arrays von Objekten: Button Gesamtsaldo (II) Gesamtsaldo über alle Konten in der Bank berechnen d.h. Methode gesamtsaldo in der Klasse Bank public double gesamtsaldo(){ double gesamtsaldo = 0.0; for (int i = 0; i < this.anzahleroeffneterkonten; i++) { BankKonto aktuelleskonto = this.konten[i]; gesamtsaldo = gesamtsaldo + aktuelleskonto.getkontostand(); return gesamtsaldo; 22