1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Matlab Problem dringendst!!

    • Frage
  • soad
  • 22. November 2004 um 18:43
  • Unerledigt
  • soad
    7
    soad
    Mitglied
    Punkte
    520
    Beiträge
    88
    • 22. November 2004 um 18:43
    • #1

    Hi!
    Brauchen ganz dringend Hilfe, und zwar klassisches Bsp. Palindrom :face_with_rolling_eyes:.
    So das eigentliche Problem ist mir !! xxx !! gekennzeichnet, und zwar wird die Funktion Palindrom korrekt aufgerufen und richtig berechnet, ABER leider wird nicht der richtige Rückgabewert zurückgeliefert, i.e falls es ein Palindrom ist sollte erg = 1 sein, ist aber immer gleich 0 :(. Wieso ?!?

    Bitte um dringendste Hilfe, muß leider morgen schon abgegeben werden !!

    Main-Programm:

    Code
    disp('Geben Sie ein Wort ein:')
    W = input(' ','s');
    
    
    disp('Möchten Sie, dass auf Groß- und Kleinbuchstaben Rücksicht genommen wird (ja=1/nein=0)?');
    flag1 = input('');
    if (flag1 == 0);
    W = lower(W);
    end
    
    
    disp('Möchten Sie, dass auf Leerzeichen Rücksicht genommen wird (ja=1/nein=0)?');
    flag2 = input('');
    if (flag2 == 0);
    regexprep(W,' ','');
    end
    
    
    [B]!! erg = Palindrom(W) !![/B]
    
    
    if (erg == 1)
       disp('Palindrom');
    else
       disp('Kein Palindrom');
    end
    Alles anzeigen

    Funktion Palindrom:

    Code
    function f_out =  Palindrom(W);
    
    
    li = 1;
    re = length(W);
    f_out = 0;
    
    
    if (li>= re)
         f_out = 1
         return
    end
    
    
    if (W(li)~= W(re))
         f_out = 0
         return
    
    
    else
       W = W(2:length(W)-1) 
       Palindrom(W);
    end
    Alles anzeigen
  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 22. November 2004 um 18:58
    • #2

    Also zuerst: Ich hab noch nie was mit matlab gemacht und die syntax ist mir fremd. Mag also sein dass das jetzt blödsinn ist.

    Aber sollte der schluss nicht in etwa so aussehen:

    Code
    ...
    else
       W = W(2:length(W)-1) 
       [B]f_out[/B] = Palindrom(W);
    end
    ...

    denn sonst wird ja das ergebnis der rekursiven aufrufe verworfen...

    ?

    lg, Benjamin Ferrari, bookworm.at

  • Bug
    4
    Bug
    Mitglied
    Reaktionen
    1
    Punkte
    121
    Beiträge
    23
    • 22. November 2004 um 19:03
    • #3

    Versuch doch mal folgendes im else-Zweig der Palindrom-Funktion:

    f_out = Palindrom(W);


    Edit: Da war wohl einer schneller :coolsmile

    Viele Menschen sind zu gut erzogen, um mit vollem Mund zu sprechen,
    aber sie haben keine Scheu, es mit leerem Kopf zu tun.
    (Orson Welles)

  • soad
    7
    soad
    Mitglied
    Punkte
    520
    Beiträge
    88
    • 23. November 2004 um 03:23
    • #4

    autsch :shinner: !!
    Funktioniert jetzt natürlich (;)) einwandfrei, kann garnicht glauben, dass ich mich damit sicher 2h herumgeärgert habe :(.
    Danke jedenfalls euch beiden !!!

    autsch, autsch, autsch, :hewa::hewa::hewa:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung