Negativer Bereich?



  • Moin!

    Ich als Anfänger musste ein kleines Programm schreiben, um mir ein Raster ausgeben zu lassen. Sagt bitte nichts über die Optik, es funktioniert... 😉
    Ich hab nur ein kleines Problem: Ich will den Wertebereich über den Ursprung legen mit "rechtswert1 = rechtswert/2 - rechtswert" und das gleiche mit dem hochwert. Das machte er aber nicht, besser gesagt, er macht nichts. Ist wahrscheinlich nur eine Banalität, aber ich verzweifle... Helft mir bitte...

    Christian

    #include <iostream>
    #include <fstream>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
    
    using namespace std;
    
    int main()
    {
    
            double rechtswert =0;
            double hochwert =0;
            double rechtswert1 =0;
            double hochwert1 =0;
            double R = 0;
            double H = 0;
    
            double Counter1 = 0;
            double Counter2 = 0;
            char x[20];
    
    // Eingabe der Rastergröße
    
            cout << "Welche Ausdehnung soll das Raster haben?\n";
            cout << "\n\n";
                    cout << "Geben sie einen Rechtswert an: R =\n";
                    cin >> rechtswert;
            cout << "\n";
                    cout << "Geben sie einen Hochwert an: H =\n";
                    cin >> hochwert;
                    cout << "\n";        
    
                    rechtswert1 = rechtswert/2 - rechtswert;
                    hochwert1 = hochwert/2 - hochwert;
    
    //Ausgabe der Daten in einer Datei
    
            cout << "Benennen Sie bitte die Datei!! (Dateiformat mit angeben z.B.: .dat)\t";
            cin >> x;
    
            ofstream Datei(x);
    
                    for (Counter1=0 ; Counter1<=rechtswert1; Counter1++)
    
                    {
                            for (Counter2=0; Counter2<=hochwert1; Counter2++)
                            {
    
                                    cout << "R:" << Counter1 <<"\t" "H:" << Counter2 <<"\t" "Z:";
                                    cout << (0.00001*(((Counter1*Counter1*Counter1)-(Counter2*Counter2*Counter2))-((Counter2*Counter2*Counter2)+(Counter1*Counter1*Counter1)))) << endl;
                                    Datei << Counter1 << "\t" << Counter2 << "\t" << (0.00001*(((Counter1*Counter1*Counter1)-(Counter2*Counter2*Counter2))-((Counter2*Counter2*Counter2)+(Counter1*Counter1*Counter1)))) << endl;
                            }
                    }
    
                    Datei.close();
    
    return 0;
    }
    


  • Kurze Überlegung:

    Ich gebe für rechtswert 12 ein
    dann berechnet er rechtswert1 = rechtswert/2 - rechtswert = -6.0

    dann gehst du in eine forschleife die bei 0 anfängt und solange läuft wie sie kleiner oder gleich rechtswert1 ist

    denk da noch mal drüber nach



  • Danke für die schnelle Antwort. Ich habs vorhin auch bemerkt. Naja, manchmal sieht man vor lauter Bäumen den Wald nicht mehr...

    Christian


Anmelden zum Antworten