C / C++

Hi,

ich wollte mal wissen ob sich hier einer im Forum befindet, der Ahnung von C/C++ hat und mir weiter helfen kann. Und zwar hat schon einer mal ein Koordinatensystem in C/C++ geschrieben? Wo man vielleicht Nullstellen eingeben kann und der mir die dann im Koordiantensystem ausgibt? Also mir würde schon das Koordinatensystem reichen, wo man Werte eingeben kann.
Hat das schon einmal einer von euch gemacht und könnte es besorgen bzw. mir per Mail zuschicken?? Bräuchte echt Hilfe damit…

P.S.Falls einer von euch schon mal eine Nullstellenberechnung in C/C++ geschrieben hat, würde es mich sehr freuen, wenn er mir das geben könnte!!

Vielen Dank schon einmal im voraus

cYaaa cASh

Ich hab zwar Ahnung von C++. Ich weiß aber beim besten Willen nicht, was Du eigentlich genau willst …

Koordinatensystem ??? Meinst Du ein einen 2-Dimensionalen Vektorraum mit Koordinatentransformation ???
Visualisierung einer Funktion ???
Nullstellenberechnung einer Funktion ???
Umformung einer durch Nullstellen definierten Funktion ??

Clive

wende dich da an chrizel imo ist der da n pro! :wink:

Ich meine ein Koordinatensystem das mir, sagen wir zwei Werte ausgibt!
Also wenn du das schon einmal gemacht hast, dann wäre es cool wenn alles geht :wink:

Aber ansonsten ein einfaches Koordinatensystem!

Danke cASh

Du willst eine grafische Ausgabe bekommen? Das geht mit C oder C++ schonmal überhaupt nicht. Diese Sprachen haben im Standard keine Möglichkeiten definiert grafisch irgendwas auszugeben.

Dazu musst du schon die Möglichkeiten deines Betriebssystems nutzen. Im Fall von Windows zeichnest du dein Koordinatensystem also am besten in der Windows API mit GDI oder GDI+. Oder du nutzt DirectX. Oder du nutzt MFC. Oder du nutzt Qt oder irgendein anderes Toolkit.

Primär sollte man erst mal wissen welchen Compiler du überhaupt verwendest? In welchem System du entwickelst, und welche Library du verwendest. (MFC? WinAPI? …??)

Wenn es dir aber nicht um die grafische Ausgabe, sondern mehr um die Realisierung einer Funktion geht kann ich dir auch weiterhelfen. Aber dann musst du deine Frage schon konkretiesieren, denn keiner weiß was du unter Koordinaten-System verstehst. Meinst du sowas was man in der 5. Klasse mit Null-Punkt und X und Y-Achse lernt?

Wenn ja, was willst du wissen? Brauchst du ne Funktion die irgendwas machen soll? Mehr Infos bitte.

Nachtrag: So wie es sich anhört willst du ein ganzes Programm mit dem du Punkte in diesem Koordinatensystem setzen kannst, etc. Das ist weitauf aufwendiger und hängt wie gesagt von deiner verwendeten Library ab.

Ich glaube fast, er sucht einfach eine Funktion, die dann von einer im Code integrierten Funktiongleichung die Koordinaten ausgibt. Stimmt das oder nicht?
Btw, anfänger Kurs übungsaufgabe?

Ich habe die X-Y Werte und möchte „nur“ die in der Command Shell ausgegeben haben, in einem Koordinatensystem. Mit einem Punkt halt…
z.B. bei (1;1) ein x oder sowas. Das möchte ich haben!
Plz help!

cYaaa cASh

Na, Deine Ausgabe in C++:

#include <iostream>
using namespace std;

int main(int argc, char* argv)
{
int x=1; // X Wert
int y=1; // Y Wert

cout << „(“ << x << „;“ << y << „)“ << endl;

return 0;
}

babyfaceclives Antwort sollte programmiertechnisch richtig sein.

Aber ich denke cash46 hat das etwas anders gemeint.

Ich habe die X-Y Werte und möchte „nur“ die in der Command Shell ausgegeben haben, in einem Koordinatensystem. Mit einem Punkt halt…

Ich hab mal versucht das so umzusetzen wie ich denke.

Hier die Lösung in C++


#include <iostream>
using namespace std;

void printCoord(int xP, int yP)
{
    const int maxX = 78, maxY = 23;

    // Range checks
    if ((xP > maxX) || (xP < 1) || (yP > maxY) || (yP < 1))
        return;

    // loop
    for (int y = maxY; y > 0; y--) {
        if (((y % 5) == 0) || (y == 1))
            cout << "- ";
        else
            cout << "  ";

        for (int x = 1; x < maxX; x++) {
            if ((y == yP) && (x == xP))
                cout << "o";
            else if (((y % 5) == 0) && ((x % 5) == 0))
                cout << "+";
            else
                cout << " ";
        }

        cout << endl;
    }

    // print bottom ruler
    cout << "  ";
    for (int x = 0; x < maxX; x++) {
        if ((x % 5) == 0)
            cout << "|";
        else
            cout << " ";
    }
}

int main(int argc, char *argv[])
{
    printCoord(14, 19);
    
    return 0;
}

Wenn du eher der C-Fan bist (so wie ich) - hier die gleiche Lösung in C


#include <stdio.h>

#define MAXX 78
#define MAXY 23

void printCoord(int xP, int yP)
{
    int x, y;

    // Range checks
    if ((xP > MAXX) || (xP < 1) || (yP > MAXY) || (yP < 1))
        return;

    // loop
    for (y = MAXY; y > 0; y--) {
        if (((y % 5) == 0) || (y == 1))
            printf("- ");
        else
            printf("  ");

        for (x = 1; x < MAXX; x++) {
            if ((y == yP) && (x == xP))
                putchar('o');
            else if (((y % 5) == 0) && ((x % 5) == 0))
                putchar('+');
            else
                putchar(' ');
        }

        putchar('
');
    }

    // print bottom ruler
    putchar(' ');
    for (x = 0; x < MAXX; x++) {
        if ((x % 5) == 0)
            putchar('|');
        else
            putchar(' ');
    }
}

int main(int argc, char *argv[])
{
    printCoord(14, 19);
    
    return 0;
}

Beide Lösungen geben folgendes aus:


$ ./a.out 
                                                                               
                                                                               
                                                                               
-     +    +    +    +    +    +    +    +    +    +    +    +    +    +    +  
               o                                                               
                                                                               
                                                                               
                                                                               
-     +    +    +    +    +    +    +    +    +    +    +    +    +    +    +  
                                                                               
                                                                               
                                                                               
                                                                               
-     +    +    +    +    +    +    +    +    +    +    +    +    +    +    +  
                                                                               
                                                                               
                                                                               
                                                                               
-     +    +    +    +    +    +    +    +    +    +    +    +    +    +    +  
                                                                               
                                                                               
                                                                               
-                                                                              
 |    |    |    |    |    |    |    |    |    |    |    |    |    |    |    |  

Das „o“ repräsentiert den Punkt im Koordinatensystem. Zur Übersichtlichkeit werden in 5er Schritten „+“ angezeigt, und links und unten auch ein Ruler. Der Punkt (1;1) ist wie in der Mathematik üblich unten links.

Evtl. musst du MAXX und MAXY an deine Terminal Größe anpassen. Der Standard sollte aber bei den meisten passen.

Hi,

sorry das ich erst so spät antworte, aber vielen Dank für die Hilfe. Hat mir sehr weitergeholfen, DANKE DANKE DANKE !!! :smiley:

cYaaa cASh