CuP - Java
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums PowerPoint PPT Presentation


  • 48 Views
  • Uploaded on
  • Presentation posted in: General

CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums. Montag, 4. November 2002. Zweidimensionale Felder. Beispiele: Schachbrett, Fahrplan, Matrix 0 1 2 3 4 5

Download Presentation

CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cup java neunte vorlesung entspricht kapitel 4 2 und 5 des skriptums

CuP - JavaNeunte VorlesungEntspricht Kapitel 4.2 und 5 des Skriptums

Montag, 4. November 2002


Zweidimensionale felder

Zweidimensionale Felder

Beispiele: Schachbrett, Fahrplan, Matrix

0 1 2 3 4 5

0 3 15 6 0 1 4

1 2 1 4 1 3 0

2 0 0 2 0 5 2

3 Autohäuser, verkaufte Autos pro Werktag

CuP WS 2002/2003


Zweidimensionale felder deklaration

Zweidimensionale Felder - Deklaration

int[ ][ ] verkäufe = new int [3][6];

double[ ][ ] temperaturen = new double[10][7];

String texte[ ][ ] = new String[5][8];

oder:

int[ ][ ] verkäufe;

verkäufe = new int [3][6];

CuP WS 2002/2003


Zweidimensionale felder wertezuweisung

Zweidimensionale Felder - Wertezuweisung

verkäufe[0][5] = 4;

Die Deklaration und Initialisierung ist auch so möglich:

int[ ][ ] verkäufe = {

{3, 15, 6, 0, 1, 4},

{2, 1, 4, 1, 3, 0},

{0, 0, 2, 0, 5, 2},

};

CuP WS 2002/2003


Zweidimensionale felder length

Zweidimensionale Felder - „length“

public class FeldTest{

public static void main(String args[ ]){

int[ ][ ] verkäufe = {

{3, 15, 6, 0, 1, 4},

{2, 1, 4, 1, 3, 0},

{0, 0, 2, 0, 5, 2},

};

System.out.println("verkaeufe.length = " +

verkäufe.length);

System.out.println("verkaeufe[0].length = " +

verkäufe[0].length);

}

}

CuP WS 2002/2003


Zweidimensionale felder length ausgabe

Zweidimensionale Felder - „length“Ausgabe

CuP WS 2002/2003


Deutung

Deutung

Das Feld

int[ ][ ] verkäufe =

{ {3,15,6,0,1,4}, {2,1,4,1,3,0}, {0,0,2,0,5,2}, };

ist eigentlich eine Feld der Länge drei, bestehend aus drei Feldern der Länge sechs! Diese Felder sind

verkäufe[0], verkäufe[1], und verkäufe[2].

Das Feld verkäufe[0] etwa besteht aus:

verkäufe[0][0], verkäufe[0][1], verkäufe[0][2],

verkäufe[0][3], verkäufe[0][4], verkäufe[0][5],

CuP WS 2002/2003


Summenbildung zeilen

Summenbildung - Zeilen

Wir gehen wieder von dem Feld verkäufe aus:

int[ ][ ] verkäufe =

{ {3,15,6,0,1,4}, {2,1,4,1,3,0}, {0,0,2,0,5,2}, };

Die Summe der Verkäufe des zweiten Autohauses wird berechnet durch:

int sum = 0;

for ( int j = 0; j < verkäufe[1].length; j++ ) {

sum = sum + verkäufe[1] [ j ] ;

}

Nach Ausführung dieser Anweisungen hat sum

den Wert 11.

CuP WS 2002/2003


Summenbildung spalten

Summenbildung - Spalten

Die Summe der Verkäufe am dritten Tag ist:

int s = 0;

for ( int i = 0; i < verkäufe.length; i++ ) {

s = s + verkäufe[ i ] [ 2 ] ;

}

Nach Ausführung dieser Anweisungen hat sum

den Wert 12.

Wodurch bekommt man die Summe für den fünften Tag?

CuP WS 2002/2003


Gesamtsumme

Gesamtsumme

int s = 0;

for ( int i = 0; i < verkäufe.length; i++){

for( int j = 0; j < verkäufe[0].length; j++ ){

s = s + verkäufe[ i ] [ j ];

}

}

CuP WS 2002/2003


Beispiel system zweier linearer gleichungen

Beispiel: System zweier linearer Gleichungen

Gegeben sei das System

a[0][0]*x + a[0][1]*y = a[0][2]

a[1][0]*x + a[1][1]*y = a[1][2]

Die Determinante des Systems ist

det = a[0][0] * a[1][1] - a[0][1] * a[1][0]

Die Lösungen berechnen sich wie folgt:

x = (a[0][2] * a[1][1] - a[0][1] * a[1][2]) / det

y = (a[0][0] * a[1][2] - a[0][2] * a[1][0]) / det

CuP WS 2002/2003


Die methode loese

Die Methode loese()

public class LinSystem{

static double x,y;

public static boolean loese(double[][] a){

double eps = 1.0E-6; //eps = 0.000 001

double det = a[0][0] * a[1][1] - a[0][1] * a[1][0];

if (Math.abs(det) > eps) {

x = (a[0][2] * a[1][1] - a[0][1] * a[1][2]) / det;

y = (a[0][0] * a[1][2] - a[0][2] * a[1][0]) / det;

return true;

} else

return false;

} }

CuP WS 2002/2003


Treiber liest daten aus einer datei und l st das system 1 3

„Treiber“: Liest Daten aus einer Datei und löst das System (1/3):

class Treiber {

public static void main(String [] args) {

String[] a = new String[6];

double[][] dArr = new double[2][3];

boolean ok = false;

FileLesen.lies(a, "werte.txt");

if((null != a[0]) && (null != a[1]) && (null != a[2]) && (null != a[3]) && (null != a[4]) && (null != a[5])) {

CuP WS 2002/2003


Treiber liest daten aus einer datei und l st das system 2 3

„Treiber“: Liest Daten aus einer Datei und löst das System (2/3):

  • dArr[0][0] = Double.parseDouble(a[0]);

  • dArr[0][1] = Double.parseDouble(a[1]);

  • dArr[0][2] = Double.parseDouble(a[2]);

  • dArr[1][0] = Double.parseDouble(a[3]);

  • dArr[1][1] = Double.parseDouble(a[4]);

  • dArr[1][2] = Double.parseDouble(a[5]);

CuP WS 2002/2003


Treiber liest daten aus einer datei und l st das system 3 3

„Treiber“: Liest Daten aus einer Datei und löst das System (3/3):

  • ok = LinSystem.loese(dArr);

  • if(ok){

  • System.out.println("x = " + LinSystem.x + ".");

  • System.out.println("y = " + LinSystem.y + ".");

  • }

  • else {

  • System.out.println("System schlecht konditioniert oder singulaer.");

  • }

  • } } }

CuP WS 2002/2003


Erweiterungen von klassen die klasse tier

Erweiterungen von KlassenDie Klasse Tier

  • /* Beispiel einer Klasse mit einer Methode und einem Attribut*/

  • public class Tier{

  • int beineanzahl = 4;

  • public void gibLaut(){

  • System.out.println("Keine Antwort!");

  • }

  • }

CuP WS 2002/2003


Test der klasse tier

Test der Klasse Tier

  • public class TesteTier{

  • public static void main(String args[]){

  • Tier liebesTier = new Tier();

  • liebesTier.gibLaut();

  • System.out.println("Dieses Tier hat " +

  • liebesTier.beineanzahl + " Beine.");

  • }

  • }

  • Ausgabe?

CuP WS 2002/2003


Wie ist das mit hunden

Wie ist das mit Hunden?

  • public class Hund extends Tier{

  • public void gibLaut(){

  • System.out.println ("Wau wau!");

  • }

  • }

CuP WS 2002/2003


Test der klasse hund

Test der Klasse Hund

  • public class TesteHund{

  • public static void main(String args[]){

  • Hund waldi = new Hund();

  • waldi.gibLaut();

  • System.out.println("Dieses Tier hat " +

  • waldi.beineanzahl + " Beine.");

  • }

  • }

  • Ausgabe? Hat „waldi“ überhaupt eine „beineanzahl“?

CuP WS 2002/2003


Schlussfolgerung

Schlussfolgerung

  • Die Klasse Hund erbt ihre Beineanzahl von der Klasse

  • Tier. Die Methode gibLaut() wird auch geerbt, aber wir haben

  • sie durch eine neue Version überschrieben.

  • Wir definieren noch eine Klasse Katze und eine Klasse Kraehe:

  • public class Katze extends Tier{

  • public void gibLaut(){

  • System.out.println("Miau!");

  • }

  • }

CuP WS 2002/2003


Die klasse kraehe

Die Klasse Kraehe

  • /* Bei dieser Klasse setzen wir die Zahl der Beine neu! Sie wird einfach überschrieben, wie man sagt. Außerdem führen wir eine Flügelanzahl ein. (Wir „erweitern“ die Klasse Tier!)

  • */

  • public class Kraehe extends Tier{

  • int beineanzahl = 2;

  • int fluegelanzahl = 2;

  • public void gibLaut(){

  • System.out.println("Kra kra!");

  • }

  • }

CuP WS 2002/2003


Cup java neunte vorlesung entspricht kapitel 4 2 und 5 des skriptums

  • public class TesteTiere {

  • public static void main(String args[ ]){

  • Tier untier = new Tier();

  • Hund hasso = new Hund();

  • Katze kleopatra = new Katze();

  • Kraehe rabenvieh = new Kraehe();

  • untier.gibLaut();

  • hasso.gibLaut();

  • kleopatra.gibLaut();

  • System.out.println("Kleopatra hat " +

  • kleopatra.beineanzahl + " Beine.");

  • rabenvieh.gibLaut();

  • System.out.println("Die Kraehe hat " + rabenvieh.beineanzahl + " Beine und " + rabenvieh.fluegelanzahl + " Fluegel. ");

  • } }

CuP WS 2002/2003


Diese klasse hat folgende ausgabe

Diese Klasse hat folgende Ausgabe:

  • Keine Antwort!

  • Wau wau!

  • Miau!

  • Kleopatra hat 4 Beine.

  • Kra kra!

  • Die Kraehe hat 2 Beine und 2 Fluegel.

CuP WS 2002/2003


Welche beziehungen gibt es zwischen folgenden dateien

Welche Beziehungen gibt es zwischen folgenden Dateien?

  • Tier.javaKraehe.java

  • Tier.classKrahe.class

  • TesteTier.java TesteTiere.java

  • TesteTier.classTesteTiere.class

  • Hund.java

  • Hund.class

  • Katze.class

  • TesteHund.java

  • TesteHund.class

CuP WS 2002/2003


  • Login