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

Ackermannfunktion

 

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.07.2013, 18:43     Titel:
  Antworten mit Zitat      
Hallo,

ich würde mich daran gewöhnen, dass Fachliteratur oftmals nur auf englisch verfügbar ist. Mit etwas Übung liest sich das auch nicht anders als deutsch.

Zitat:
Auch die Programmierung mit Rückgabewerden usw. verstehe ich eher weniger.

Das ist elementar, ich würde mich also darum bemühen.

Zitat:
es interessiert mich auch, aber nicht solche Sachen mit Rekursion und dergleichen.[...] Ebenfalls möchte ich noch eine Medianberechnung mit Teile und Herrsche machen

Dir ist schon klar, dass "Teile und Herrsche" auf rekursiven Funktionsaufrufen beruht?

Zitat:
bzw. ich gebe es lieber schon vorher auf, weil das wird nichts.

Schade, denn du hättest nur noch das, was ich dir in einer Zeile gezeigt habe, haargenau so auf zwei weitere Zeilen, die ich sogar entsprechend markiert habe, übertragen müssen.

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


Kroko123
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2013, 18:53     Titel:
  Antworten mit Zitat      
Den Code, den du auf der letzten Seite geschrieben hast, habe ich jetzt erst gelesen.

Aber weißt du was, er bringt mich auch nicht gerade weiter.

Code:
function Hauptprogramm

n=input('Bitte geben sie n ein: ');
m=input('Bitte geben sie m ein: ');

Ergebnis=a(n,m);

printf('Ergebnis ist: %d',Ergebnis);
     

    function Ergebnis=a(n,m)

    if n==0
    Ergebnis = m+1; % so gehts
    else
         if m==0
        Ergebnis=a(n-1,1); % hier musst du's genauso machen
         else
        Ergebnis=a(n-1,a(n,m-1)); % ... und da auch
         end

    end
 


Oder müssen dort andere Variablen (Rückgabewerte) rein? Wenn ich wenigstens einmal wissen würde, das dieses System macht, könnte ich eventuell mir einen Reim darauf bilden. Somit laufe ich völlig blind herum und weiß nicht, wo ich hin möchte.

Ich weiß auch nicht wie ich das "a(...)" Zeugs verstehen soll. Warum steht da eine Variable vor der Klammer?
Private Nachricht senden Benutzer-Profile anzeigen
 
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.07.2013, 18:56     Titel:
  Antworten mit Zitat      
Hallo,

a ist hier keine Variable, sondern eine Unterfunktion, die mit function deklariert wurde.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 10.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2013, 19:04     Titel:
  Antworten mit Zitat      
Juhuu, die Erkenntnis hatte mir bislang gefehlt Smile

Jetzt läuft es:

Code:
function Hauptprogramm
clear;clc;

n=input('Bitte geben sie n ein: ');
m=input('Bitte geben sie m ein: ');

Ergebnis=ackermann(n,m);

fprintf('Ergebnis ist: %d',Ergebnis);
     

    function Ergebnis=ackermann(n,m)

    if n==0
    Ergebnis = m+1;
    else
         if m==0
        Ergebnis=ackermann(n-1,1);
         else
        Ergebnis=ackermann(n-1,ackermann(n,m-1));
         end

    end


Vielen lieben Dank für eure Gedult.

Es gibt eben Leute, wie mich, die sich mit manchem nicht lange genug beschäftigen. Bei anderen Themengebieten interessiert mich eine Lösung wesentlich mehr. Deswegen bin ich auch in einigen Fahrzeug-Technik Foren, wo ich selbst anderen helfen kann. Von daher kenne ich eure Arbeit hier und die Motivation dahinter.

Grüße
Marcel

PS: Nachher wird es noch ein Thema zur Medianberechnung geben, was sehr umfangreich wird Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.