tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
443
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    hi leute ich hab hier ne aufgabe die ich nicht wirklich lösen kann:

    Für 0 gilt: länge(0) = 1189 mm
    breite(0) = 841 mm

    für alle n > 0 gilt: länge(n) = breite(n-1)
    breite(n)= ½ * länge(n-1)

    Schreiben Sie eine rekursive Methode, für die Länge eines beliebigen
    Formates.
    Hinweis:
    Es gilt: länge(n) = breite(n-1) = ½ * länge(n-2).

    da ich ja nur die länge berücksichtigen muss hab ich auch die breite in meiner methode gar nicht berücksichtigt. hier mal mein ergebnis:

    public double flaenge(double n)
    {
    double res = 0;
    if(n==0)
    {
    res = 12;

    } else {

    res = 1/2*flaenge(n-2);
    }
    return res;
    }

    bekomme aber immer ne exception. kann mir jemand helfen****?
     

  2. #2
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    Welche Fehlermeldung bekommst du denn?
     

  3. #3
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    ich bekomme immer nen stack overflow
     

  4. #4
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Das Problem wird wohl das -2 sein. Sobald du eine ungerade Zahl einsetzt, erzeugst du eine Endlosrekursion, da deine Bedingung nur überprüft ob n = 0 ist, versuch es mal mit n <= 0.
     
    Bei Problemen mit Codes, postet bitte den entsprechenden Codeausschnitt und setzt den in entsprechende Tags.
    ( [cpp] [/cpp] [css] [/css] [html] [/html] [java] [/java] [javascript] [/javascript] [php] [/php] [sql] [/sql] )
    "Funktioniert nicht" ist keine Fehlermeldung. Bitte eine genaue Fehlerbeschreibung und, wenn vorhanden, Fehlermeldungen posten.
    RegEx Tutorial
    PHP Funktionsreferenz

  5. #5
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    ja das hab ich auch schonmal versucht , bekomme dann aber nur 0 raus.
     

  6. #6
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Also wenn ich die Aufgabenstellung einfach naiv runter tippe, sieht das so aus:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    public double laenge(int n) {
        if(n < 0)
            throw new IllegalArgumentException();
     
        if(n == 0)
            return 1189d;
        else
            return breite(n - 1);
    }
     
    public double breite(int n) {
        if(n < 0)
            throw new IllegalArgumentException();
     
        if(n == 0)
            return 841d;
        else
            return 0.5d * laenge(n - 1);
    }

    Du hast unter anderem den Fehler gemacht, eine Fließkommazahl mit "==" zu vergleichen. Das haut aber selten hin, weil die Zahlen nicht exakt dargestellt werden könnten (siehe http://de.wikipedia.org/wiki/IEEE_754).

    Aber das brauchst du gar nicht, weil der Parameter ja eine Ganzzahl sein soll.
     

  7. #7
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    Ich wusste mich stört was bei der Aufgabe

    In der Aufgabe wird das Seitenverhältnis von Papier der A Reihe Beschrieben wobei die Seiten Verhältnisse sich so ändern das die 1/2 Länge die Breite der nächst kleineren Papier Größe ist.

    Daher denke ich das dein Ansatz mit du brauchst die breite nicht nochmal überdacht werden sollte

    wie CPoly es vormacht
    Geändert von wakoz (29.01.11 um 14:33 Uhr) Grund: lösung von CPoly gepostet
     

Ähnliche Themen

  1. Frage zu einer Funktion
    Von dnevi im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 09.04.10, 20:07
  2. MS SQL Server - Definition einer rekursiven Beziehung (m:n)
    Von Tarik_BS im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.12.07, 14:10
  3. Antworten: 19
    Letzter Beitrag: 05.08.07, 17:35
  4. Frage zu Return Werten einer Funktion
    Von SantaCruze im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.03.07, 16:21
  5. FRAGE: wegen einer zensur funktion.
    Von Jimbo2001 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 10.12.02, 20:32