JAVA und OOP - PowerPoint PPT Presentation

1 / 70
About This Presentation
Title:

JAVA und OOP

Description:

JAVA und OOP Teil 2: Objektorientierung – PowerPoint PPT presentation

Number of Views:181
Avg rating:3.0/5.0
Slides: 71
Provided by: munz
Category:
Tags: java | oop | encapsulation | java | und

less

Transcript and Presenter's Notes

Title: JAVA und OOP


1
JAVA und OOP
  • Teil 2 Objektorientierung

2
Objektorientierung
  • Daten und Methoden bilden eine Einheit
  • Daten können nur mit festgelegten Methoden
    geändert werden
  • Methoden können nicht auf fremde Daten angewandt
    werden.

3
Ziele der Objektorientierung
  • Höhere Datensicherheit (durch Kapselung)
  • Erleichterte Pflege des Quellcodes (durch
    Kapselung)
  • Höhere Produktivität (durch Vererbung)
  • Verbesserte Zugangskontrolle im Quellcode (durch
    Getter- und Setter Methoden)

4
Klassen
  • Eine Klasse stellt den Bauplan für verschiedene
    aber gleichartige Dinge (Objekte) dar.
  • In der Klasse werden die möglichen Eigenschaften
    der Objekte und ihre Verhaltensweisen in Form von
    Methoden festgelegt.

5
Objekte
  • Ein Objekt gehört grundsätzlich zu einer Klasse
  • Es gibt jedoch auch sogenannte abstrakte Klassen
    (abstract classes), die über keinerlei Objekte
    verfügen.

6
Instanzen
  • Konkretisierung eines Objekts
  • Instanzen benötigen
  • realen Speicherplatz mit
  • realen Werten.

7
Das Programm fahrkarte
  • Das Programm fahrkarte simuliert eine Fahrkarte
    für den öffentlichen Nahverkehr.

8
Eigenschaften einer Fahrkarte
  • Anzahl der Tarifzonen
  • Datum
  • Reduzierter Preis?
  • Fahrpreis

9
Vorgänge im Fahrkartenautomaten (Methoden)
  • Karte drucken
  • Fahrpreis berechnen (von der Fahrstrecke
    abhängen )
  • Karten zu ermäßigtem Preis?
  • Vierfachnetzkarte
  • Zählwerk

10
Kapselung (encapsulation)Prinzip
  • Möglichst alle Variablen sind intern vereinbart
    (private).
  • Zugang nur über Getter- und Setter-Methoden

11
Kapselung (encapsulation)Vorteile
  • Sicherheit gegen Änderungen von außen
  • Sicherheit bei Veränderungen im Innern
  • Vereinfachte Nutzung
  • Verringerte Dokumentationslast
  • Zugangsberechtigungen

12
Klassenkonstanten (class constants)
  • Die Konstante dPreisProZone wird der Klasse
    fahrkarte selbst zugeordnet, es handelt sich
    somit um eine Klassenkonstante.

13
Attribute von dPreisProZone
  • final Inhalt kann nicht geändert werden
  • static Klassenkonstante
  • double Inhaltstyp (Kommazahl).

final static double dPreisProZone1.3 final
static double dPreisProZoneReduziert0.6
14
Klassenvariable (class fields)
  • Beispiel Die Gesamtzahl aller in unserem
    Automaten erstellten Fahrkarten.
  • Inhalt kann nicht in einer Konstanten gespeichert
    werden, da sich der Wert laufend ändert.
  • Es macht wenig Sinn, diese Information einer
    einzelnen Fahrkarte zuzuordnen.
  • Folgerung Klassenvariable

static int iVerkaufteKarten0
15
Kontrollfragen
  • Unterscheiden Sie Klasse und Instanz auf der
    Grundlage der Programmiersprache JAVA
  • Welche Eigenschaften (properties) einer Fahrkarte
    sollten Ihrer Meinung nach als Klassenkonstanten
    , Instanzvariablen oder als Klassenvariablen
    deklariert werden? Begründen Sie Ihre Antwort! 
  • Beschreiben Sie das Konzept der Kapselung.
  • Nennen Sie Vorteile der Kapselung 

16
Vererbung
  • Neue Definition Klasse dauerkarte als
    Erweiterung von fahrkarte
  • Methoden und Eigenschaften, die dauerkarte von
    fahrkarte übernimmt, nennt man vererbte Methoden
    (inherited).
  • fahrkarte ist Superklasse (superclass) zu
    dauerkarte.
  • dauerkarte ist von fahrkarte abgeleitet.
  • Jeder Dauerkarte besitzt alle Eigenschaften und
    Methoden einer normalen Fahrkarte !
  • package eins.munz.fahrkarte
  • public class dauerkarte extends fahrkarte

17
Erweiterungen zu Fahrkarten
  1. Erweitern Sie die Ausgabemethode für die
    Dauerkarten so, dass die Inhabernamen mit
    ausgedruckt werden.
  2. Ändern Sie das Konzept Kartenzahl so ab, dass
    nach Erreichen eines Schwellenwertes beim
    Ausdrucken einer Fahrkarte ein entsprechender
    Hinweis erscheint.

18
Verwandte Aufgaben
  • Realisieren Sie die folgenden Ideen in Ihrem
    Programm.
  • Wenn man gleichzeitig Hin- und Rückfahrt bucht,
    reduziert sich der Gesamtpreis.
  • Wie wärs mit einer Rabattstaffel für Großkunden?
  • Wer ein Fahrrad oder einen Hund im Bus befördern
    möchte, braucht eine besondere Fahrkarte.
  • Sonntags fahren alle (auch Hunde) zum reduzierten
    Preis!

19
Weitere Klassendefinitionen
  • Formulieren Sie schriftlich in Umgangssprache
    (also ohne JAVA) eine mögliche Klassendefinition
    (mit Eigenschaften und Methoden) für folgende
    Alltagsgegenstände
  • Getränkedosen
  • Autos
  • Computermaus
  • Bücher in einem Ausleihesystem
  • Abiturnoten eines Schülers bzw. einer Schülerin

20
Standardkreis
  • Eigenschaften
  • Mittelpunktskoordinaten
  • Radius
  • Methoden
  • Flächeninhalt berechnen
  • Umfang berechnen
  • feststellen, ob er sich mit einem anderen Kreis
    schneidet.

21
kreis2.java
  • public class kreis2
  • public int iMitteX,iMitteY, iRadius
  • public double dUmfang, dInhalt
  • public static double PI()
  • return Math.atan(1)4
  • public void dRechneUmfang()
  • dUmfang2PI()iRadius
  • public void dRechneInhalt()
  • dInhaltPI()iRadiusiRadius
  • public int iAnzahlSchnittpunkte(kreis2 k)

22
Konstruktor zu kreis2.java
  • / Creates new kreis2 constructor/
  • public kreis2(int iMitteX,int iMitteY, int
    iRadius)
  • this.iMitteXiMitteX
  • this.iMitteYiMitteY
  • this.iRadiusiRadius
  • dRechneUmfang()
  • dRechneInhalt()

23
kreis3.java
  • public class kreis3
  • private int iMitteX,iMitteY, iRadius
  • private double dUmfang, dInhalt
  • private void dRechneUmfang()
  • dUmfang2Math.PIiRadius
  • private void dRechneInhalt()
  • InhaltMath.PIiRadius
    iRadius

24
Setter
  • public void setRadius(int iRadius)
  • this.iRadiusiRadius
  • dRechneUmfang()
  • dRechneInhalt()

25
Ausgabe
  • public void ausgabe()
  • System.out.println("Radius "iRadius)
  • System.out.println("Umfang "dUmfang)
  • System.out.println("Flächeninhalt
    "dInhalt)

26
Objekte vergleichen
  • public boolean equals(kreis3 k2)
  • return (this.iRadiusk2.iRadius)
  • (this.iMitteXk2.iMitteX)
  • (this.iMitteYk2.iMitteY)

27
Schule
Schule NameSchulklassen ..........................
. Versetzung durchführen neue Schulklasse erzeugen
28
Schulklasse
Schulklasse NameSchüler Gewichtung
schriftlich-mündlich Klassenlehrer Schnitt aller
Gesamtnoten ......................................
...... Schnitt berechnen neuen Schüler erzeugen
29
Schüler
SchülerName Durchschnittsnote schriftliche
Note mündliche Note bestanden ....................
................. Noten eingeben Notenschnitt
berechnen feststellen, ob bestanden
30
Attribute
  • public
  • Die Variable oder Methode ist in der Klasse
    selbst, in an-geleiteten Klassen und in
    übergeordneten Klassen, die unsere Klasse
    aufrufen, sichtbar (liberale Variante).
  • private
  • Die Variable oder Methode ist nur in der Klasse
    sichtbar. in der sie vereinbart wurde (sichere
    Variante). Untergeordnete (abgeleitete) oder
    übergeordnete (aufrufende) Klassen sehen diese
    Variable nicht.
  • protected
  • Variablen mit diesem Attribut sind in der eigenen
    Klasse und in abgeleiteten Klassen sichtbar.
    Aufrufer sehen diese Variablen nur, wenn sie im
    gleichen Paket aufrufen.

31
Überladung
  • Zwei Prozeduren mit gleichem Namen, die sich
    aufgrund der Anzahl bzw. Typen der Parameter
    unterscheiden.

32
Überladung (Beispiel)
public schulemain(String name)
this.sNamename System.out.println(sName)

schulemain gymLoerrach new
schulemain("Gymnasium Loerrach")
--------------------------------------------------
---------------------
//zweiter Konstruktor / überladen public
schulemain() this.sName"Die arme Schule hat
keinen Namen." System.out.println(sName)
schulemain gymLoerrach new schulemain()
33
Die Klasse schulklasse
  • public class schulklasse
  • public String sName
  • private String sLehrer
  • private double dGewichtung
  • / Creates new schulklasse /
  • public schulklasse(String name, String lName,
    double gewichtung)
  • this.sNamename
  • this.sLehrerlName
  • this.dGewichtunggewichtung
  • System.out.println
  • (this.sName" "this.sLehrer" "
    this.dGewichtung)

34
Aufrufe von schulklasse
  • schulklasse klasse1new schulklasse("11a",
    Munz",1.5)
  • schulklasse klasse2new schulklasse("12a",
    "Henne",2)

35
Die Klasse schueler
  • public class schueler
  • public String sName
  • private double dDurchschnitt
  • protected boolean bHatBestanden
  • private int iMuendlich
  • private int iSchriftlich
  • public void ausgabe(String Klassenname)
  • System.out.print(Klassenname" ")
  • System.out.print(this.sName" ")
  • System.out.print(this.dDurchschnitt" ")
  • System.out.println(this.bHatBestanden)

36
Setter und Konstruktor
  • public void SetSchuelerdaten(String name, double
    schnitt,boolean hatBestanden, int muendlich, int
    schriftlich)
  • this.sNamename
  • this.dDurchschnittschnitt
  • this.bHatBestandenhatBestanden
  • / Creates new schueler /
  • public schueler(String name)
  • SetSchuelerdaten(name,0,false,0,0)
  • ausgabe("test")

37
Testmethoden
Methode Eingabe(n) Setter Methode AusgabeGetter Meth. Ergeb-nis Da-tum Tes-ter
Konstruktor SCHULE-MAIN "Gymnasium Loerrach" "Gymnasium Loerrach" ok 29.12.01 Pl
Konstruktor SCHUL-KLASSE ("11a",Munz",1)("7b","Henne",3)("8a","Lost",1.5) ("11a",Munz",1)("7b","Henne",3)("8a","Lost",1.5) ok 29.12.01 He
setNoten 0,01,123,3213,1212,13 0,01,123,3213,1212,13 ok neg Ein-gab. feh-len 30.12.01 Pl
38
Weiterführende Testaufgaben
  • 1) Testen sie Ihr Programm gemäß den oben
    beschriebenen Methoden.
  • 2) Entwerfen Sie weitere Testfälle.
  • 3) Lösen Sie die im Text erwähnten Probleme.
  • 4) Definieren Sie vier verschiedene
    Standardschüler(innen) bzw. Standardklassen, die
    möglichst viele Testfälle abdecken.
  • 5) Konzipieren Sie weitere Methoden zur
    Oberstufenverwaltung.
  • 6) Informieren Sie sich bei Ihrer Schulleitung
    über die tat-sächlich für die Oberstufenverwaltung
    eingesetzte Software. Welche Methoden der
    kommerziellen Software könnten Sie ebenfalls
    erstellen?

39
Container
  • Definition
  • WINDOWS Fenster der obersten hierarchischen Stufe
    (das allumfassende Fenster, in dem das gesamte
    Programm abläuft).
  •  Name
  • contentPane, zusammen gesetzt aus content
    Inhalt und Pane (Fenster-) Scheibe.

40
Layout
Grid
Flow
Border
41
Beispiel Euro
  • Erstellen Sie ein JAVA Programm, das einen
    Eurobetrag in eine andere Währung (z.B. US
    Dollar) umrechnet. Verwenden Sie eine GUI -
    Oberfläche für das Programm.
  • Passen Sie die Umrechnung dem aktuellen
    Dollarkurs an.
  • Erweitern Sie das Programm so, dass auch
    Schweizer Franken umgerechnet werden können.

42
Temperaturumrechnung
  • Nach Eingabe einer Temperatur in Grad Celsius ist
    die Angabe in Grad Réaumur und Grad Fahrenheit
    umzurechnen. Dabei gelten folgende Umrechnungen
    0C 0R 32F und 100C80R212F.
  • Ändern Sie Teil 1) wie folgt ab Nach Eingabe
    einer Temperatur in Grad Celsius in Grad Réaumur
    oder in Fahrenheit sind die jeweils anderen
    Temperaturen zu berechnen.
  • Fügen Sie eine Kelvin-Skala ein.

43
  • Auerbacher TelekomIhre Rechnung
  • Rechnungsdatum 27.1.02
  • Rechnungsmonat Januar 2002
  • Kundennummer 1234567890
  • Munz Udo
  • Blauenstr. 47
  • 79589 Binzen
  •  
  • Artikel oder Leistung Menge Nettobetrag
    Nettogesamtbetrag Ust in
  •  
  • T- DSL Telefonanschluss 1 28,55 28,55 16
  • 83 City-Verbindungen 106 0,0264 2,80 16
  • 29 Deutschlandverbindungen 250 0,0396 9,90 16
  •  
  • T-DSL Flat 21,55 16
  •  
  • ZWISCHENSUMME xxx
  • Umsatzsteuer 16 auf xxx yyy

44
Telefon-rechnung
  • Erstellen Sie ein JAVA - Programm, das aus der
    Anzahl der genutzten Telefoneinheiten den
    Gesamtpreis inkl. Grundgebühr berechnet. Die
    Preise entnehme man der oben abgebildeten
    Telefonrechnung. Der Grundpreis und die Gebühr
    einer einzelnen Telefoneinheit sollen als lokale
    Konstante (final) realisiert werden.

45
Aufgaben 1-3
  1. Erweitern Sie das Programm Telefon so, dass der
    Grundpreis und der Preis für eine einzelne
    Gebühreneinheit auf der Oberfläche sichtbar sind.
  2. Erstellen Sie ein entsprechendes Programm für
    Handy- Gebühren. Es genügt, die Gebühren zur
    Standardnutzerzeit (höchste Gebührenklasse) zu
    errechnen. Eingegeben wird nun nicht mehr die
    Anzahl der Gebühreneinheiten, sondern die
    Gesamtzeit der Verbindungen.
  3. Schreiben Sie ein JAVA - Programm, das nach
    Eingabe der Anzahl den Kaufpreis für Disketten
    (bzw. CD-Rohlinge) inklusive 16 Mehrwertsteuer
    bestimmt.

46
Aufgaben 4-6
  1. Erweitern Sie das Programm so, dass mehrere
    Produkte (z.B. CD-Rohlinge und Disketten und
    Tintenpatronen und...) geordert werden können.
    Das Programm soll alles fein säuberlich auf der
    Oberfläche auflisten und den Gesamtpreis
    berechnen.
  2. Erstellen Sie ein Programm, das Antwort auf die
    Frage gibt Wie lange kann ich mit einem
    vorgegebenen Betrag telefonieren? Man
    differenziere nach Entfernungszonen.
  3. Rechnen Sie einen in Sekunden vorgegebenen Wert
    um in eine Zeitangabe von Tagen, Stunden, Minuten
    und Sekunden.

47
Aufgaben 7-8
  1. Rechnen Sie einen in Tagen, Stunden, Minuten und
    Sekunden vorgegebenen Wert in eine Zeitangabe von
    Sekunden um.
  2. Berechnen Sie aus zwei Zeitangaben eines Tages
    die Dauer der Zeitspanne dazwischen in Sekunde

48
Münzen zählen
  • Erstellen Sie ein einfaches Zählprogramm, das
    Euromünzen durch Mausklick aufsummieren soll.
    Die Benutzeroberfläche soll verschiedene Buttons
    für verschiedene Münzen enthalten und das
    Ergebnis (Summe) anzeigen.

49
Komponenten
  • Notwendige Komponenten
  • Mindestens sieben verschiedene Buttons zur
    Eingabe
  • Anzeige für das Endergebnis
  • Überschrift
  • Hilfreiche Komponente Fehlerkorrektur
  • Letzte Eingabe (Mausklick) rückgängig machen.

50
Banknotenaufgaben
  • Erweitern Sie das Programm so, dass auch die
    Beträge von Euroscheinen abgearbeitet werden
    können.
  • Ordnen Sie die Buttons in einer Form an, die
    ergonomisch sinnvoll ist. Dabei müssen nicht
    alle Buttons gleich groß bleiben. Erläutern Sie
    Ihren Ansatz.
  • Wie kann man mehrere Eingaben rückgängig machen?
  • Ist es sinnvoll, jede Eingabe auch in der Ausgabe
    anzuzeigen?

51
Elementarer Kreis
  • Der Radius r bleibt konstant, der Winkel w gegen
    die Horizontale ändert sich zwischen Null und 2
    (Bogenmaß!).

52
Polarkoordinaten
  • Radius und Winkel legen den Punkt fest

53
Kreis und Spirale

54
Kreisaufgaben 1-3
  1. Wie ändert sich das Ergebnis, wenn man die
    Schleife bis 4Pi laufen läßt?
  2. Ändern Sie die Schleife so, dass der Anfangswert
    Null benutzt werden kann.
  3. Überlegen Sie, ob man das Problem auch mit einer
    for-Schleife lösen könnte. Begründen Sie Ihr
    Ergebnis.

55
Kreisaufgaben 4-6
  1. Erstellen Sie ein Konzept für eine Kreisprogramm
    ohne Polarkoordinaten.
  2. Erzeugen Sie aus dem Kreisprogramm die
    Graphikdarstellung einer Spirale. Welche
    Änderungen sind nötig?
  3. Was berechnet folgende Anweisung dPi
    Math.atan(1)4.0 ?

56
Array
  • Mehrere Variablen des gleichen Grundtyps
    (primitive type, z.B. int oder double), die den
    gleichen Variablennamen tragen und durch einen
    ganzzahligen Index unterschieden werden können.
  • Der Index beginnt stets bei Null und endet dort,
    wo der maximale Index erreicht ist. Dieser
    maximale Index wird bei der Deklaration
    festgelegt. Eine Vereinbarung der Form feld
    int20 reserviert den Speicherplatz für 21 (!)
    Integervariablen.

57
ArrayLists
  • Ähnelt in Funktion dem Array, kann jedoch
    dynamisch, also zur Run-Time (Laufzeit),
    erweitert werden!

58
Variable vom Typ ArrayList
  • protected static ArrayList
  • alFeldnew ArrayList()
  • Static
  • alFeld.add(BigInteger.valueOf(1))
  • alFeld.add(BigInteger.valueOf(1))

59
Fibonacci Folge
  • 1,1,
  • 1,1,2,
  • 1,1,2,3,
  • 1,1,2,3,5,
  • 1,1,2,3,5,8
  • 1,1,2,3,5,8,13,...

an1anan-1 für n N, ngt1 und a11
a21
60
Fibo rechnet neues Folgeglied
  • public static BigInteger fibo(int i)
  • for (int iLaengealFeld.size()iLaengeltiiLaenge
    )
  • BigInteger letzteFibo
  • (BigInteger) alFeld.get(iLaenge-1)
  • BigInteger vorletzteFibo
  • (BigInteger) alFeld.get(iLaenge-2)
  • BigInteger naechsteFibo
    letzteFibo.add(vorletzteFibo)
  • alFeld.add(naechsteFibo)
  • return (BigInteger) alFeld.get(i-1)

61
Fibo Hauptprogramm
  • public static void main(String args)
  • for (int iLauf111 iLauflt141 iLauf)
  • System.out.println(fibo(iLauf))
  • System.out.println(fibo(115))
  • System.out.println(fibo(140))
  • System.out.println(fibo(141))

62
Fibonacci Ausgabe
  • 4517090495650391871408712937
  • 7308805952221443105020355490
  • 11825896447871834976429068427
  • 19134702400093278081449423917
  • 30960598847965113057878492344
  • 50095301248058391139327916261
  • 81055900096023504197206408605
  • ...............
  • 781774079430987230203437
  • 1264937032042997393488322
  • 2046711111473984623691759
  • 3311648143516982017180081
  • 5358359254990966640871840
  • 8670007398507948658051921
  • 14028366653498915298923761
  • 22698374052006863956975682
  • 36726740705505779255899443
  • 59425114757512643212875125
  • 96151855463018422468774568
  • 155576970220531065681649693
  • 251728825683549488150424261
  • 407305795904080553832073954
  • 659034621587630041982498215
  • 1066340417491710595814572169
  • 1725375039079340637797070384
  • 2791715456571051233611642553

63
Arrays sortieren über Minimum
  • arraySort sucht man in einem bestehenden Feld
    zuerst das kleinste Feldelement (Minimum),
    sichert es in einer Hilfsvariablen, verschiebt
    alle darunter liegenden Feldelemente um eine
    Position nach oben und heftet das zuvor gerettete
    Minimum ans Ende des Feldes. Damit haben wir das
    Minimum sicher im letzten Feldelement unter
    gebracht.
  • Im nächsten Durchgang sucht man nur noch bis zum
    vorletzten Element nach einem Minimum und
    verfährt erneut wie oben. Mit jedem Durchgang
    sitzt ein weiteres Element an der richtigen
    Stelle.

64
Sortierfortschritt
9216 7489 4291 8611 1430 8334 4020 9400 899 2787
9216 7489 4291 8611 1430 8334 4020 9400 2787 899
9216 7489 4291 8611 8334 4020 9400 2787 1430 899
9216 7489 4291 8611 8334 4020 9400 2787 1430 899
9216 7489 4291 8611 8334 9400 4020 2787 1430 899
9216 7489 8611 8334 9400 4291 4020 2787 1430 899
9216 8611 8334 9400 7489 4291 4020 2787 1430 899
9216 8611 9400 8334 7489 4291 4020 2787 1430 899
9216 9400 8611 8334 7489 4291 4020 2787 1430 899
65
Sortieraufgaben 1-3
  1. Erweitern Sie das oben beschriebene Verfahren so,
    dass eine wirklich große Anzahl Integerzahlen
    sortiert werden kann.
  2. Verändern Sie das obige Programm so, dass nach
    Bestimmung des Minimums nur ein einziger Tausch
    erfolgt (aktuelles Minimum an den Schluss,
    dortige Zahl an bisherige Position des Minimums).
  3. Führen Sie den oben beschriebenen
    Sortieralgorithmus mit einer ArrayList statt
    einem Array durch. Welche Probleme tauchen auf?

66
Sortieraufgaben 4-5
  1. Sortieren Sie ein Integerfeld bei der Entstehung.
    Sobald ein neuer (Zufalls-)Wert berechnet wurde,
    sucht man seine adäquate Position im Feld,
    schafft Platz durch Verschieben (Nach oben oder
    nach unten? Nach oben und unten?) und fügt
    anschließend ein .
  2. Sortieren Sie ein Integerfeld bei der Entstehung,
    in dem Sie eine Vorsortierung einsetzen. Diese
    funktioniert so, dass man bei jeder neuen Zahl
    entscheidet, ob sie zur ersten oder zweiten
    Hälfte des Felde gehört. Danach muss mit einem
    anderen Verfahren genauer sortiert werden.

67
Sortieraufgaben 6-8
  1. Sortieren Sie ein Integerfeld über die Bestimmung
    des Maximums mit anschließendem Verschieben
    innerhalb des Feldes.
  2. Ändern Sie Ihr Sortierprogramm so ab, dass ein
    String-Array String20 sortiert werden kann.
    Benutzen Sie die Standardmethode compareTo.
    (Siehe stringSort)
  3. Bewerten Sie die verschiedenen Verfahren.
    Welches Verfahren eignet sich für vorsortierte
    Zahlen?

68
Trigonometrische Tabelle
69
Tabellenaufgaben 1-3
  1. Begründen Sie, warum im Beispiel Zufall1.java
    nicht direkt nach den Strings sortiert wird,
    sondern diese erst in Integer konvertiert werden.
  2. Informieren Sie sich bei www.java.sun.com über
    die Funktion Random(). Welche Wirkung hat ein
    Parameter?
  3. Erweitern Sie unsere trigonometrische Tabelle auf
    die Tangensfunktion. Beachten Sie eventuelle
    Definitionslücken.

70
Tabellenaufgaben 4-7
  1. Erstellen Sie eine Tabelle zur Umrechnung von
    Bogen- in Gradmaß
  2. Tabellieren Sie die Temperaturskalen Celsius,
    Réaumur, Kelvin und Fahrenheit.
  3. Bauen Sie das BubbleSort-Verfahren so um, dass
    man wahlweise nach oben oder nach unten sortieren
    kann.
  4. Erweitern Sie das BubbleSort- Verfahren so, dass
    ein einzelner Durchgang der inneren Schleife pro
    Knopfdruck durchgeführt wird. So erkennt man,
    wie die Tabelle immer weiter sortiert wird.
Write a Comment
User Comments (0)
About PowerShow.com