Array-Werte ändern sich wie von Geisterhand :confused: gelöst



  • Hallo zusammen. Bin neu hier im Forum und habe direkt ein Problem an dem ich grad verzweifle.
    Ich schreibe grad spaßeshalber ein Programm dass eine Kurvendiskussion ganzrationaler Funktionen n-ten grades erstellen soll. Wäre auch kein Problem
    wenn der Compiler das machen würde was ich ihm sage 😃

    In folgendem Code liegt das Problem:

    // fkt 2ten grades wird durch horner schema berechnet
    void schnittp::horner()
    { // ... alles wird richtig berechnet....//
    
    		for(int i=0; i<f-1; i++)
    	{
    
    		a1[i] = xh[i];
    		cout << endl << a1[i];  //Ausgabe zum überprüfen der werte 
    	}
    	f--;
    
    // pq-formel
    void schnittp::pq()
    {
    	if (f == 2)
    	{
    		for(int i=0; i<=f; i++)
    	{
    
    		c[i] = a1[i];
    		cout << endl << a1[i]; //hier sind die werte plötzlich anders
    	}
    // pq formel wird mit c[] berechnet....
    
    void schnittp::nst()
    {
                    schnittp::newton();
    		schnittp::horner();
    		schnittp::pq();
    

    das Array a1[] hat eine ausreichende größe und wird sonst nirgendwo angetastet.
    als Ausgabebeispiel die fkt f(x)= x³+2x²-x-2 : durch newton Verfahren wird die Nullstelle x=1 gefunden und nach horner bekommt a1 die werte 1,3,2.
    bei ausführung von pq() hat a1 allerdings die werte 3,2,0.
    Ich versteh nicht was das soll. Hat jemand ne Idee wie ich dem entgegenwirken kann?



  • Schaue dir noch einmal an, wie viele Werte du füllst und wie viele du abfragst .



  • ich hab aber doch bei horner() eine Ausgabe eingefügt die mir zeigt dass ich 3 Werte einfüge und bei pq werden auch 3 werte ausgegeben. allerdings werden die werte von a1[1] aufwärts angezeigt anstatt von a1[0] so wie es eigentlich sein sollte und so wie es da auch steht.

    edit: hat sich erledigt. der erste wert der ausgabe kam von ner andern ausgabe die sich noch im code versteckt hatte 😃 😃



  • Ja, war mein Fehler, ich hatte das f-- übersehen. 😃



  • ...



  • Gegen x, y, z, w, i und allen mathematischen Variablen ist nichts einzuwenden, finde ich.
    Und bei Schleifenvariablen ist das auch in Ordnung.



  • ich find es einfacher mit buchstaben statt mit namen zu arbeiten. ich mus sonst immer wieder in die class.h schauen wie ich jetzt was genannt hab. dann lieber sowas wie double c[50]; //zwischenwert für blabla...
    is aber wohl geschmackssache


Anmelden zum Antworten