[C/C++] Math. Funktion in C++ umsetzen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von size, 26. Juni 2011 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Juni 2011
    Math. Funktion in C++ umsetzen

    Hallo,

    wir haben zur Aufgabe eine Funktion, welche sich als Bild hinter dem Link verbirgt, in C++ umzusetzen.

    http://v70.img-up.net/asf5mdl.png

    Zuerst sahs einfach aus -> Programm fertiggeschrieben -> Doch dann hat uns unsere Professorin ein Ergebnis zu einer Funktion mit Parametern gegeben.

    Von f(3, 6) soll das Endergebnis 33 lauten, bei uns kommt 64 raus.

    Unser Programm gibt nun etwas anderes aus, aber wir finden den Fehler einfach nicht und hoffen nun durch eure Hilfe dem Rätsel auf die Spur zu kommen.

    PHP:
    include < iostream >
    #include <stdlib.h>

    using  namespace  std ;

    int f ( int x int y bool part )
    {
        static 
    int i  0 ;

        

        
    if(! part )
        {
            
    i ++;
            
    cout  <<  endl ;
        }

        

        
    for( int n  i * 2 0 n --)
            
    cout  <<  " " ;

        if(!
    part )
            
    cout  <<  "Schritt "  <<  <<  ": " ;

        

        
    if( part )
            for(
    int j  11 0 j --)
                
    cout  <<  " " ;
       
        

        
    if( 10 )
            
    cout  <<  " " ;

        
    cout  <<  "Aufruf von f("  <<  <<  ", "  <<  <<  ")" ;

        

        
    if( part )
            
    cout  <<  " zur Teilberechnung " ;
       
        
    cout  <<  endl ;
       
        




        
    if( ==  1 )
            return 
    2 ;
        else if(
    ==  &&  1 )
            return (
    2 );
        else if(
    &&  1 )
        {
            
    int yDec  1 ;
            
    int xDec  1 ;
            
    int fTmp  f ( x yDec true );
            
    cout  <<  "ftmp: "  <<  fTmp  <<  "\n" ;
            return 
    f ( xDec fTmp false );
        }
        else
        {
            
    cout  <<  endl  <<  "Fehler: Werte kleiner 1"  <<  endl ;
            return -
    1 ;
        }
    }

    int main ( int argc char  * argv [])
    {
        if(
    argc  3 )
        {
            
    cout  <<  "Zu wenig Argumente uebergeben"  <<  endl ;
            
    cout  <<  "Aufruf: "  <<  argv [ 0 ] <<  " x-Wert y-Wert"  <<  endl ;
            return 
    0 ;
        }
       
        
    int xArg  atoi ( argv [ 1 ]);
        
    int yArg  atoi ( argv [ 2 ]);
       
        
    int erg  f ( xArg yArg false );
       
        if(
    erg  0 )
            
    cout  <<  endl  <<  "Ergebnis: "  <<  erg  <<  endl ;
       
        return 
    0 ;
    }
    Ist nur nen Entwurf, keine Sorge wegen den Kommentaren etc.
     
  2. 26. Juni 2011
    AW: Math. Funktion in C++ umsetzen

    Hab die Aufgabenstellung so wie gelesen fix in Python runtergehackt, ohne Deine Lösung mir angeschaut zu haben. Damit können wird ausschliessen, dass ich durch ein Missverständnis von Dir beeinflusst worden bin
    Spoiler
    Code:
    def f(k,n):
     if n==1:
     return 2
     if k==1 and n>1:
     return n+2
     if k>1 and n>1:
     return f(k-1, f(k, n-1))
     raise Exception("negative parameters")
    
    print f(3,6)
    
    Bei f(3,6) komme ich aber auch auf 64!

    In der Aufgabenstellung fehlt eine Klammer, ich hab es als f(k-1, f(k, n-1)) interpretiert, Du wahrscheinlich auch. Keine Ahnung, wie es sonst gemeint sein könnte...
     
  3. 27. Juni 2011
    AW: Math. Funktion in C++ umsetzen

    So haben wir es auch interpretiert, richtig.

    Wir können uns auch leider beim besten Willen nicht vorstellen, dass das Programm mit den Werten ein falsches Ergebnis berechnet.

    Vielen Dank schonmal.
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.