auswahl treffen?



  • Hallo.
    Ich hab gestern ein Programm geschrieben in dem eine mathematische Funktion integriert wird.
    In diesem Programm gibt es ne extra Funtion in dem die mathematische Funktion steht. Nun möchte ich gerne mehrere funktionen integrieren. Gibt es ne Möglichkeit eine Auswahl im cmd fentser zu treffen, bei der man eine Funktion aus mehreren vorgegebenen auswählt?

    mfg nash



  • jo ... gib halt mit std::cout die einzellnen möglichkeiten aus (mit nummer vor) und lass den user dann die numma eingeben(std::cin) und guck welche funktion er haben will. Fertig.



  • wenn man jedoch eine beliebige funktion parsen will... uuuoh, das ist ziemlich nervtötend! 😃



  • danke . kenne mich noch nicht so gut in c++ aus und wusste den befehl noch nicht (std::cin)
    hatte jetzt vorgehabt die mathematische funktionen in arrays zu speichern und dann je nach auswahlzahl die bestimmte funktion im array aufrufen...weiss jemand ob man funktione in arrays speichern kann? nja ich versuchs einfach mal. danke nochmal 😉



  • jo, das geht mit funktionszeigern.
    ähm, ich versuchs zusammenzubasteln, nicht haun wenn etwas nicht stimmt 😉

    //typ: zeiger auf eine "double f(double)" function
    typedef double (*functionPointer) (double);
    
    //funktionen definieren
    double f1(double a){ return a*2.0;}
    double f2(double a){ return a*a;}
    double f3(double a){ return pow(a, 2.0) );}
    
    //zeiger in array speichern
    functionPointer functionArray[3]={ &f1, &f2 , &f3 };
    
    //aufrufen:
    double result=functionArray[2](1234.5678);
    


  • Hi,

    Zeiger auf Funktionen in ein Array zu packen ist ja ne nette Spielerei. Sobald du es aber mit Funktionen zu tun bekommst, die sich von der Anzahl der Parameter oder vom Datentypen her unterscheiden, wird es extrem unangenehm.
    Da würd ich lieber jeder Funktion eine Nummer zuweisen und vom Benutzer eingeben lassen.
    Also im Prinzip so, wie von (C + 1) Evil vorgeschlagen.

    Gruuuhuußßß
    p.



  • Sobald du es aber mit Funktionen zu tun bekommst, die sich von der Anzahl der Parameter oder vom Datentypen her unterscheiden...

    Naja, wenn er nur mit gewöhnlichen funktionen die zahlen aus R->R abbilden, arbeitet, wird er wohl nicht allzuviele zeigertypen brauchen 😉



  • also danke erstmal für die vielen antworten...aber zeiger übersteigern mein
    momentanes wissen 😃

    ..machs jetzt mit einfachen if schleifen



  • nicht von unbekannten wörtchen abschrecken lassen! kompliziert ist das alles nicht, ist halt eine etwas komische schreibweise... bei funktionen sind es nicht mal solche zeiger, bei den man irgendetwas großartig falsch machen kann... wenns nicht funzt, gibts sofort fehlermeldungen, versteckte fehler drohen nicht wirklich. Und if verzeweigungen sind... naja... wenn schon, dann bitte switch-case-break...


Anmelden zum Antworten