tutorials.de Buch-Aktion 02/2012
Like Tree1Danke
  • 1 Beitrag von Carron
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
775
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bam bam ist offline Grünschnabel
    Registriert seit
    Jun 2010
    Beiträge
    1
    hallo liebe pro coder,

    habe diese aufgabenstellung bekommen und da ich absoluter anfänger bin
    weiß ich gar nicht so genau wo ich da anfangen soll und wie ich das alles implementieren kann.

    kann mir da einer weiterhelfen?

    hier die aufgabenstellung:

    Aufgabe 1. Wir realisieren in diesem Übungsblatt die Intervalle aus Hinweis 1. Implementieren Sie dazu die Schnittstelle Interval mit einer Implementierung der Klasse LinkedInterval.
    Verwenden Sie als interne Datenstruktur eine verkettete Liste, in der jedes Listenelement ein einfaches Intervall repräsentiert. Stellen Sie sicher, dass jedes Intervall eine eineindeutige Darstel- lung hat. Die Klasse LinkedInterval ist eine Werteklasse, also unveränderbar. Realisieren Sie die angegebenen Methoden union für ∪, intersect für ∩ und contains für ∈. Ignorieren Sie zu- nächst difference; Sie können die Ausnahme UnsupportedOperationException werfen. Reali- sieren Sie die angegebenen Methoden so effizient wie möglich. Verwenden Sie für die Realisierung keine vorgefertigten Klassen (also insbesondere nichts aus java.util.*), sondern realisieren Sie die Knotenelemente selbst. Es muss einen parameterlosen Konstruktor geben, der ein leeres In- terval erzeugt. Realisieren Sie alle relevanten Methoden. Vergessen Sie nicht eine aussagekräftige toString-Methode, die ein Interval schön darstellt.
    Testen Sie Ihre Implementierung ausgiebig. Versuchen Sie alle möglichen Kombinationen von Fällen, die durch Ihre Realisierung abgedeckt werden soll auch zu testen. Ihre Tests sind Teil der Abgabe. Dieser Teil der Aufgabenstellung wird wegen der Wichtigkeit wiederholt. Ihre Tests sind Teil der Abgabe.
    Machen Sie sich die verschiedenen Fälle, die auftreten können klar, indem Sie sich Intervalle auf Zahlengeraden visualisieren. Erläutern Sie zumindest eine der beiden Implementierungen der Methoden union oder intersect anhand einer ca. zweiseitigen separaten Dokumentation, also zusätzlich zum aussagekräftig dokumentierten Quellcode.

    Aufgabe 2. Realisieren Sie zusätzlich die difference Methode für /. Beachten Sie, dass I/I′ leider nicht immer ein Intervall ist. Betrachten wir zum Beispiel I0..2/I1..1, dann gibt es keine Ober-/Untergrenzen a,b, so dass nur die Zahl 1 fehlen kann1.
    Wir behelfen uns damit difference so zu realisieren, dass Intervalle, die sich nur um eine Zahl unterscheiden aber mehr als eine Zahl beinhalten als gleich angesehen werden und wir jeweils das Interval verwenden, das wir darstellen können. Im obigen Beispiel wäre also I0..2/I1..1 = I0..2 aber I1..1/I1..1 = ∅. Im allgemeinen verlangen wir zusätzlich, dass Ia..b/Ix..x = Ia..b für a < b und a ≤ x ≤ b gilt.
    Wie in der letzten Aufgabe gehören die Tests als integraler Bestandteil zu Ihrer Abgabe.

    Hinweis 1. Sie realisieren und nutzen in diesem Übungsblatt Operationen auf Mengen von Inter- vallen. Ein einfaches Intervall Ia..b ist eine Menge von rationalen Zahlen, die sowohl größer oder gleich einer Untergrenze a als auch kleiner oder gleich einer Obergrenze b sind. Die Untergrenze muss immer kleiner gleich der Obergrenze sein.
    Ia..b ={x∈Q | a≤x≤b∧a,b∈Q∧a≤b} Ein Intervall I ist eine Menge von einfachen Intervallen. Eine eindeutige Darstellung erhalten wir
    wenn wir verlangen, dass die einfachen Intervalle überlappungsfrei sind.
    ��n i=1
    :Iai..bi mit∀1≤i<n:bi <ai+1 Ein Wert x ist in einem Intervall, wenn er in einem einfachen Intervall des Intervalls ist.
    ��n i=1
    I=
    :Iai..bi)gdw∃1≤i≤n:ai ≤x≤bi Auf Intervallen kann man einige Operationen definieren, wie Vereinigung, Schnitt und Differenz.
    Seien I und I′ Intervalle, dann definieren wir wie folgt:
    I∪I′ = {x|x∈I∨x∈I′} I∩I′ = {x|x∈I∧x∈I′} I/I′ = {x|x∈I∧x∈/I′}
    Beachten Sie, dass I ∪ I′ und I ∩ I′ wieder Intervalle sind.

    Hinweis 2. Verwenden Sie für Ihre Tests eine Methode
    void assertEquals(Interval expected, Interval actual) ,
    die eine Ausnahme wirft, wenn ein Fehler auftritt (also die beiden Intervalle ungleich sind) und nichts passiert, wenn alles passt (also die Intervalle gleich, nicht unbedingt identisch, sind). Das Intervall expected können Sie sich mit sicher funktionierenden, einfachen Methoden erzeu- gen und entspricht dem erwartetem Ergebnis. Alternativ können Sie auch Listen oder Mengen (aus java.util) von einfachen Intervallen zum Überprüfen als expected verwenden. Der Wert actual entsteht durch Anwendung einer der zu testenden Operationen und repräsentiert das aktuelle Ergebnis.
    bin euch sehr dankbar, wenn ihr mir da weiterhelfen könnte

    gruß
    Geändert von bam (17.06.10 um 10:56 Uhr)
     

  2. #2
    Avatar von Carron
    Carron Carron ist offline Mitglied Silber
    Registriert seit
    May 2010
    Ort
    Berlin
    Beiträge
    61
    hi bam,

    ohne einen augenscheinlichen eigenen Lösungsversuch, wirst du wohl nicht so schnell Antworten darauf bekommen.

    Ich möchte dich dahingehend auf http://www.tutorials.de/forum/java/2...ngszettel.html verweisen.


    Viele Grüße
    Carron
    zerix bedankt sich. 

Ähnliche Themen

  1. Intervalle automatisch mit ihren Objekten löschen
    Von Tobias Menzel im Forum Flash FAQ
    Antworten: 2
    Letzter Beitrag: 24.08.07, 11:54