• Keine Ergebnisse gefunden

Einführung in die Programmierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Einführung in die Programmierung"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Einführung in die Programmierung

by André Karge

Übung - Static & Arrays

(2)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

letzte Woche

Klassen & Objekte

Konstruktor

Instanziierung von Objekten

Methodenaufrufe mit Objekten

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 2/19

(3)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

diese Woche

Besprechung Übungsblatt 3

Floating Point Checks

statische Methoden & Attribute

Arrays

Besprechung Übungsblatt 4

(4)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Übungsblatt 3

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 4/19

(5)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Übungsblatt 3

Aufgabe 1 Code Beispiel

Aufgabe 2

Code Beispiel

Aufgabe 3

Code Beispiel

(6)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Übungsblatt 3

Aufgabe 1 Code Beispiel

Aufgabe 2 Code Beispiel

Aufgabe 3 Code Beispiel

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 5/19

(7)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Übungsblatt 3

Aufgabe 1 Code Beispiel

Aufgabe 2

Code Beispiel

Aufgabe 3

Code Beispiel

(8)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Floating Point Checks

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 6/19

(9)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Floating Point Checks

float a = 1.0f/3.0f;

float b = 0.33;

// a == b?

Wie vergleicht man zwei Floating Point Nummern?

(10)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Floating Point Check

Lösung

wir können float Werte nicht direkt vergleichen

dazu brauchen wir ein kleinen Floatwert epsilon ϵ

zum Vergleich berechnen wir die Differenz und vergleichen mit epsilon

zum Beispiel: ϵ = 10 14 = 10 1

14

Übungsaufgabe

1. Schreiben sie eine Methode, die zwei float-werte übergeben bekommt und true oder false zurück gibt, jenachdem, ob die Zahlen gleich oder ungleich sind.

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 8/19

(11)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Floating Point Check

Lösung

wir können float Werte nicht direkt vergleichen

dazu brauchen wir ein kleinen Floatwert epsilon ϵ

zum Vergleich berechnen wir die Differenz und vergleichen mit epsilon

zum Beispiel: ϵ = 10 14 = 10 1

14

Übungsaufgabe

1. Schreiben sie eine Methode, die zwei float-werte übergeben bekommt und true oder false

zurück gibt, jenachdem, ob die Zahlen gleich oder ungleich sind.

(12)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Floating Point Check

Lösung

public class Test {

private static final float epsilon = 10e-14;

public static void main(String[] args) { float a = 1.0f/3.0f;

float b = 0.33;

boolean result = floatEqual(a, b);

}

public boolean floatEqual(float a, float b) { float differenz = Math.abs(a - b);

if(differenz < Test.epsilon) {

System.out.println("Werte sind gleich");

return true;

} else {

System.out.println("Werte sind nicht gleich");

return false;

} } }

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 9/19

(13)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Static Methoden & Attribute

(14)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Static Methoden & Attribute - Insel 5.3

statische Methoden und Attribute vereinbaren, dass sie den Zustand von Objekten nicht ändern

Schlüsselwort static

Kapselt feste Klassenzugehörige Eigenschaften und Funktionen innerhalb der Klasse

Alle Instanzen haben somit Zugriff auf die selbe Version der Methode / Attributes

Beispielsweise letztes Übungsblatt:

class Complex { // ...

// Es wird kein Zustand von vorhandenen Objekten geändert - static public static final Complex add(Complex z1, Complex z2) {

return new Complex(z1.real + z2.real, z1.imag + z2.imag); }

// ändert den Zustand des Objektes, auf dem .add(...) aufgerufen wird - nicht static public void add(Complex z2) {

this.real += z2.real; this.imag += z2.imag; }

}

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 11/19

(15)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Static Methoden & Attribute - Insel 5.3

statische Methoden und Attribute vereinbaren, dass sie den Zustand von Objekten nicht ändern

Schlüsselwort static

Kapselt feste Klassenzugehörige Eigenschaften und Funktionen innerhalb der Klasse

Alle Instanzen haben somit Zugriff auf die selbe Version der Methode / Attributes

Beispielsweise letztes Übungsblatt:

class Complex { // ...

// Es wird kein Zustand von vorhandenen Objekten geändert - static public static final Complex add(Complex z1, Complex z2) {

return new Complex(z1.real + z2.real, z1.imag + z2.imag);

}

(16)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Static Methoden & Attribute - Insel 5.3

statische Attribute

haben wir schon auf der vorletzten Folie gesehen:

public class Test {

private static final float epsilon = 10e-14;

...

}

der Wert soll für alle Ausprägungen (Instanzen) der Klasse gelten

wird zusätzlich das Schlüsselwort final verwendet, dann darf der Wert nicht geändert werden

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 12/19

(17)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Static Methoden & Attribute - Insel 5.3

Übungsaufgabe

1. Erweitern Sie die gegebene Klasse Triangle (Webseite Intelligente Softwaresysteme).

Verwenden Sie dabei static wo notwendig

2. Jedes Dreieck soll wissen, wieviele Dreiecke generiert worden sind. Erstellen Sie zusätzlich eine Methode um diese Zahl auszulesen.

3. Erstellen Sie eine eigene Klasse (Testklasse mit Main-Methode) um Ihre Implementierung

zu testen.

(18)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Arrays

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 14/19

(19)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Arrays - Insel 3.7

Array ist ein spezieller Datentyp

auch Feld oder Reihung genannt

fasst mehrere Werte in einer Einheit zusammen

deklariert mit: Typ[] bezeichner = element1, element2, ...

Index = Addresse von Werten im Array

Index = Ganzzahl vom Typ integer und startet in Java bei 0

Beispiel:

int[] meinArray = {15,12,13,1,14};

// indexing: 0 1 2 3 4

(20)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Arrays - Insel 3.7

Mehrdimensionale Arrays

// mit konkreten Werten:

int[][] = {{1, 2}, {3, 4}, {5, 6}};

// leeres Array mit definierter Größe:

int[][] = new int[4][8]; // 4 zeilen und 8 Spalten

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 16/19

(21)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Arrays - Insel 3.7

Übungsaufgabe

1. Schreiben Sie eine Methode, die ein festes Float Array der Größe 42 erstellt

2. Iterieren Sie mit einer for-Schleife über dieses Array und schreiben an jede Stelle die aktuelle Schleifenvariable geteilt durch 7

3. geben Sie die Quersumme der Zahlen im Array auf der Konsole aus

(22)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Übungsblatt 4

14. November 2018 Einführung in die Programmierung | WS18/19 | André Karge 18/19

(23)

Einführung in die Programmierung: by André Karge,Übung - Static & Arrays Bauhaus-Universität Weimar

Fragen?

Referenzen

ÄHNLICHE DOKUMENTE

The HRTEM micrograph was recorded close to Scherzer focus, thus, the twinning is evident by the systematic arrangement of the dark spots (see marks) correlating with the Sr atoms.

Lesen einer Gleitpunktzahl von der Tastatur Lesen einer Gleitpunktzahl von der Tastatur Eingegeben wird die Zahl 2998 ·. Eingegeben wird die Zahl 2998 ·10 -1 (Lichtge- schwindigkeit

[r]

Capsules are used to capture major architectural components of real-time systems.. For instance, a capsule may be used to capture an entire subsystem, or even a

By additionally combining multiple rendering passes into a single pass and with an compact data represen- tation, we reach an interactive frame rate of up to 3.2 frames per

Da Möbiustransformationen Kreise entweder auf Kreise oder auf Geraden abbilden und ∞ auf jeder Geraden und auf keinem Kreis liegt, müssen T (∂G 1 ) und T (∂G 2 ) Geraden sein..

Das ergibt einen Kreissektor (mit welchem Winkel?), auf dem die Geod¨ate ein Geradenst¨uck sein muss, da in der Ebene die Geod¨aten Geraden sind. Da der Schlitz die Geod¨ate auf

(c) Ab dem Zeitpunkt, zu dem der Massenpunkt die Kugel verl¨asst, bewegt sich der Massenpunkt frei. Deshalb wirkt auf den Massenpunkt keine