WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bedeutung von return in dieser rekursiven Matlap-Funktion

 

Ricki

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2015, 11:21     Titel: Bedeutung von return in dieser rekursiven Matlap-Funktion
  Antworten mit Zitat      
Hallo zusammen,
im Studium verwenden wir Matlap, ich bin Anfänger und habe Schwierigkeiten diese Funktion aus unserem Skript nachzuvollziehen
Code:
%das ist mein Code
funktion prog1(n)
if n>5
fprintf('Abbruchbedingung erfüllt in (%g)\n',n)
return;
end
disp(n);
prog(n+1)
fprintf('Ende prog1(%n)',n)

 

Die Frage lautete was ausgegeben wird wenn man prog1(4) aufruft.
Als Lösung stand da
4
5
Abbruchbedingung erfüllt in (6)
Ende prog1(5)
Ende prog1(4)

Ich verstehe nicht, warum nach Abbruchbedingung erfüllt in 6, Ende... ausgegeben wird.
Vielleicht kann mir jemand helfen Smile Danke Smile


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2015, 11:50     Titel:
  Antworten mit Zitat      
Hallo,

return springt in den übergeordneten Funktionsaufruf zurück.
Da aus der Funktionsauswertung für n=5 heraus die Funktionsauswertung für n=6 aufgerufen wurde, wird dann in die Funktionsauswertung für n=5 zurückgesprungen und die verbleibende Anweisung ausgeführt usw.
Du kannst dir den Programmablauf auch schön mit dem Debugger ansehen.

Grüße,
Harald

P.S. Die Software heißt MATLAB
Private Nachricht senden Benutzer-Profile anzeigen
 
Ricki

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2015, 14:58     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort, Harald Smile
Ich habe MATLAB leider nicht selber auf dem Rechner. Wink

Ich dachte, im letzten Aufruf ist n=6 und habe mich gefragt. Wieso kann sich das Programm ,,erninnern" dass n mal 5 und mal 4 waren?
Viele Grüße, Ricki
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2015, 15:12     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich habe MATLAB leider nicht selber auf dem Rechner.

Wenn du mit MATLAB arbeiten möchtest, wäre das sehr hilfreich. Entweder über die Uni oder auch über eine Studentenlizenz sollte das ja möglich sein.

Das Programm 'erinnert' sich lediglich daran, von wo es aufgerufen wurde, und dort wird dann die Code-Ausführung fortgeführt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Ricki

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.09.2015, 12:17     Titel:
  Antworten mit Zitat      
Ich habe die Klausur übrigens mit 2 bestanden, also danke nochmal Very Happy
Mal sehen ob ich mir im Laufe des Studiums Matlab runterlade. Viele Grüße und danke, dass man hier als Gast schreiben kann
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.