1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Matlab Problem dringendst!!

    • Frage
  • soad
  • 22. November 2004 um 18:43
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • soad
    Punkte
    520
    Beiträge
    88
    • 22. November 2004 um 18:43
    • #1

    Hi!
    Brauchen ganz dringend Hilfe, und zwar klassisches Bsp. Palindrom :rolleyes:.
    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
    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...

    ?

  • Bug
    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

  • soad
    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.

  1. Datenschutzerklärung
  2. Impressum