c++ hilfe !!! :(



  • Nimm eine Schleife - for(i=x;i<=y;i+=delta) cout<<i<<" "<<folge(i).

    PS: Was soll diese "Folge" überhaupt darstellen?



  • danke Cstoll für die antwort ich guck gleich ob das fonktioniert,ich habe die folge als funktion deklariert damit ich die werte von zwei nacheinander ergebende werte zu subtrahieren z.B folg(2)-folge(1) damit beurteilt er laut dem schwellenwerrt "2" ob die oben gennante folge schnell oder langsam divagiert , trozdem verteht der compiler nicht,mit anrerem worten ergibt nicht die richtige antwort.du hast jetz bestimmt verstanden was ich da schaffen will 😃 hast du vieleicht eine bessereidde um die beiden werte von folge(2) und folge(1) zu subtrahieren?
    danke 🙂

    mfg
    Eisenheim



  • Cstoll ,wenn ich die schleife for(i=x;i<=y;i+=delta) cout<<i<<" "<<folge(i).
    bedeutet dass die werte der folge(X(n+1)=Xn²+a) von dem startwert x zu y berechnet werden.eigentlich bei meiner frage steht dass ich diese "a" untersuchen muss und zwar zwichen zwei werte "y" und "z" mit einer distenz von delta und zu jedem "a" wird die folge entweder schnell oder langsam diviagieren und nicht die werte der folge von y zu z mit einem abstand von delta berechne.

    ich hoffe es is jetzt klar genug,diese aufgabe macht mich almählich verückt :S

    mfg



  • Also nochmal langsam: Du hast eine Funktion "folge()" und willst diese mit den Werten 0 und 1 aufrufen. Welche Beziehung haben deine Werte "a", "delta", "y" und "z" zu dieser Funktion?

    PS: Übrigens wird ein C++ Programm sequentiell abgearbeitet - d.h. du solltest erst deine Randbedingungen eingeben und danach die Funktionswerte berechnen.



  • ich versuche es am einfachsten zu erklären

    bei der folge X(n+1)=Xn²+a werden die werte x(1),x(2)..etc divagieren,aber je nach "a" entweder schnel 0,4,5,6,8,9...etc oder langsam 0,0.3,0.5,..etc und um das zu beurteilen muss mann einen schwellenwert haben ,hier mal angenommen ist 2 .
    und die zahlen sind ja unendlich,das weiste schon,also um das zu vermeiden setzen wir zwei grenzen zu "a" und zwar "y" und "z" beispielweise y=-6 und z =8 ,und der abstand von a zu a ist delta das habe ich genug (3. antwort) erklärt .
    hier muss das program das ergebnis der subtraction von z.b folge(2)-folge(1) rechnen und das ergebnis beurteilen,wenn größer als 2 ist schnell divagent und umgekehrt
    guck dir mein source code an ,du wirst besser verstehen was ich zu tun versuche.

    mfg



  • Aus deinem Programmcode kann man gar nichts erkennen, sonst hätte ich ja nicht nachgefragt. Und deine letzte Beschreibung macht es nur minimal besser.

    OK, du hast eine Folge xn+1=xn2+a und willst für verschiedene Werte von a jeweils x0 und x1 berechnen und vergleichen - um damit irgendeine Eigenschaft feststellen. Was für einen Einfluß darauf haben y und z?

    ------------------------------------

    Technisch:

    1. die mathematischen Grundlagen deines Programms solltest du nochmal überdenken. Was willst du erreichen? Wie würdest du das auf dem Papier berechnen? ...?
    2. aus Programmsicht ist die Reihenfolge der Abarbeitung falsch - du berechnest erst die Werte x0 und x1 (mit den Initialwerten deiner Variablen) und fragst danach ab, für welche Werte die Funktion überhaupt berechnet werden sollen.


  • damit der compiler nicht für unendliche "a" die divagnez untersucht wir sezten zwei grenzen ein minimal "a" und ein maximal "a" und die sind y und z
    du hast jetzt bestimt alles verstanden.
    kannste mein source code corigieren ?haste eine idde wie das program aussieht?
    danke
    mfg



  • Dir ist klar, daß die Funktion nur einen Wert über return zurückgeben kann? Das heißt, wenn du alle Werte von a in deinem Bereich berechnen willst, benötigst du eine Schleife for(a=y;a<z;a+=delta) berechne .

    PS: Und da du immer noch nicht erklären konntest, was die Funktion folge() überhaupt zurückgeben soll, ist es schwierig, das zu korrigieren. Ich würde am ehesten auf sowas tippen:

    double folge(int n,double a)
    {
      double x = a;
      for(int i=0;i<n;++i)
        x=x*x+a;
      return x;
    }
    
    int main()
    {
      //Eingabe der Werte
    
      for(double a = y; a<z; ++a)
      {
        double f=folge(0,a),g=folge(1,a);
        cout<<"Die Folge divergiert für "<<a<<(g-f<2)?" langsam":" schnell"<<endl;
      }
    }
    


  • ich glaube wir sind aufm richtigen weg,beim kompalieren ist aber ein ungewönlichen error augetreten
    ( invalid operands of types `const char[9]' and `<unknown type>' to binary `operator<<' )

    #include<iostream>
    #include <stdlib.h>
    
    using namespace std;
    
    double folge(int n,double a)
    
    {
      double x = a;
      for(int i=0;i<n;++i)
        x=x*x+a;
      return x;
    }
    
    int main()
    {
      int y;
    int z;
    int delta ;
    int n;
     cout << "bitte delta-a eingeben " << endl;
    cin >> delta ;
    cout << "bitte y eingeben " << endl;
    cin >> y ;
    cout << "bitte z eingeben " << endl;
    cin >> z ; //Eingabe der Werte
    cout << "bitte n eingeben " << endl;
    cin >> n ; 
    
      for(double a = y; a<z; ++a)
      {
        double f=folge(0,a),g=folge(1,a);
    
        cout<<"Die Folge divergiert für "<<a<<(g-f<2)?" langsam":" schnell"<<endl;
      }
    }
    

    so hab ich den quelltext geschrieben
    haste eine ahnung was das überhaupt ist?



  • Hmm, könnte sein, daß du das ?: in Klammern setzen mußt, damit die Operator-Rangfolge berichtigt wird.

    PS:

    haste eine ahnung was das überhaupt ist?

    Nicht wirklich - aber ich versuche mir etwas aus deinen Erklärungen zusammenzureimen 😃



  • CStoll,ich habe das dieses mal so geschrieben

    cout<<"Die Folge divergiert für "<<a<<(g-f<2)(?" langsam":" schnell")<<endl;
    

    und so hab ich auch versucht

    cout<<"Die Folge divergiert für "<<a<<(g-f<2)?(" langsam":" schnell")<<endl;
    

    tretten zwei fehler auf 😞

    (expected primary-expression before '?' token )
    (`((g - f) < 2.0e+0)' cannot be used as a function )

    oder wie meinste mit in klamaren setzen ,kannste es als ausschnit von dem queltext schreiben 🙂
    danke
    mfg



  • Du mußt den kompletten Ausdruck in Klammern setzen - und dazu gehört auch die Bedingung:

    cout<<"Die Folge divergiert für "<<a<<((g-f<2)?" langsam":" schnell")<<endl;
    


  • eher so

    cout << "Die Folge divergiert für " << a << (g-f<2 ? " langsam":" schnell") << endl;
    

    [edit]Etwas zu spät. :xmas1: [edit]



  • CStoll ,alter du bist einfach klasse 😃 ,hat funktioniert
    Braunstein danke für deinen beitrag ,auch der letze von Cstoll hat funktioniert.
    das program musste ich eigetnlich mit einem "a" als komlexe zahl schreiben ,kein problem ich kenne mich damit aus 😃 ,am wictigsten war es den ablauf der program zu kriegen.
    bei weiteren fragen melde ich mich bei euch
    vielen dank
    mfg



  • Eisenheim1 schrieb:

    CStoll ,alter du bist einfach klasse 😃 ,hat funktioniert
    Braunstein danke für deinen beitrag ,auch der letze von Cstoll hat funktioniert.
    das program musste ich eigetnlich mit einem "a" als komlexe zahl schreiben ,kein problem ich kenne mich damit aus 😃 ,am wictigsten war es den ablauf der program zu kriegen.
    bei weiteren fragen melde ich mich bei euch
    vielen dank
    mfg

    HEY ALTA
    

    Muhaha! Ich wette der sitzt noch den ganzen Tag daheim und "kompamiliert" vor sich hin,während er sich über "komlexe" Zahlen den Kopf zerbricht *LOL* *MUHAHA*



  • Muhaha! Ich wette der sitzt noch den ganzen Tag daheim und "kompamiliert" vor sich hin,während er sich über "komlexe" Zahlen den Kopf zerbricht *LOL* *MUHAHA*

    *lol* sehr lustig 🙄



  • Eisenheim1 schrieb:

    Muhaha! Ich wette der sitzt noch den ganzen Tag daheim und "kompamiliert" vor sich hin,während er sich über "komlexe" Zahlen den Kopf zerbricht *LOL* *MUHAHA*

    *lol* sehr lustig 🙄

    Da schreib ja sogar "ICH" besser. *HAHA*
    Zurück zum Thema: www.groskleinschreiben.de
    Noch viel Spass beim *proggen*.


Anmelden zum Antworten