Minimum, Maximum und Mittelwert aus ifstream
-
Hallo!
Ich habe folgendes Problem! Ich habe eine Textddatei mit 13 koordinaten eingelesen als ifstream mit folgender schleife://Einlesen und Prüfen der Anwesendheit von koordinaten.txt ifstream datei; //Deklaration von datei als ifstream datei.open("koordinaten.txt"); //Öffnen von koordinaten.txt if (datei.is_open() == 0) //IF-Schleife zur Überprüfung der Anwesenheit von koordinaten.txt { cout <<" Die Datei koordinaten.txt konnte nicht gefunden werden!" << endl; cout << endl; } //Speicherung der Anzahl der Koordinatentripel datei>>tripel; //Einlesen der Koordinaten mittels For-Schleife (zeilenweise) for (z=0;z<tripel;z++) //gibt an wie lange die Schleife läuft (von Null bis Anzahl der Koordinatentripel) { datei >> tabelle[z][0] >> zeichen >> tabelle[z][1] >> zeichen >> tabelle[z][2]; //2D Array, z steht für die zeilen und 0-2 für die Spalten }
Nun soll ich Mittelwert, Maximum und Minimum berechnen. Und noch den Flächeninhalt. Würde mich über jede Hilfe freuen, schonmal vielen Dank im vor raus.
-
hmm es geht also um flächen im 3-Dimensionalen-Raum
ich poste Dir hier mal ein Stück Code der aber nur für den 2D-Raum gilt
um beliebige Flächen zu berechnen.float getFlaeche(void) { fl = 0.0; n = PolyPoints.getObjectCount(); PolyPoints.goTop(); pArr = new Point * [n]; for(unsigned int i = 0; i<=n;i++) { pArr[i] = new Point; point = PolyPoints.getObject(); pArr[i]->x = point.x; pArr[i]->y = point.y; } for(unsigned int i = 0; i<n;i++) fl=fl+((pArr[i]->x*pArr[i+1]->y)-(pArr[i]->y*pArr[i+1]->x))/2.0; makeEmpty(); // gibt dden dynamischen Speicher frei // Es gibt keine negativen Flächen also passend machen if(fl<0) fl = fl *-1.0; return fl; }
Stammt aus einer Klasse die ich mal vor 2 Jahren für ein kleines Tool, mit Hilfe eines Buches über Lineare Algebra, zusammengezimmert habe!
Diverse spezielle Fehler habe ich nicht berücksichtigt. An den Beispielen in dem Buch hatte ich es aber dazumal getestet und es hat geklappt!
Hmm müsstest nur noch die 3. dimensiuon dazu frimmeln!Hmm was meinst Du mit Minimum und Maximum, Mittelwert?
Ich könnte mir jetzt nur drunter vorstellen das Du von mehreren
Flächen im 3D-Raum die Flächen berechnest. Ja dann würde ich diese
Flächenwärte in so einem Container der STL sammeln oder einfach in einem Array!Dann würde eine FOR-Schleife genügen um sofort MIN, MAX und den Mittelwert zu bestimmen.
mfg sclearscreen
-
es handelt sich einfach um ne liste mit 13 koordinaten paaren die in dem stream gespeichert sind.
Maximum= größter x Wert, y Wert z Wert
-
Für Dich ist nur Die 2. Schleife in derer obigen Methode von Interesse!!
Ich schreibs nochmal übersichtlicher:for(unsigned int i = 0; i<n;i++) fl=fl+((pArr[i]->x * pArr[i+1]->y)-(pArr[i]->y * pArr[i+1]->x))/2.0;
-
Hmm 3 Arrays wäre das beste
um die Werte dort einzulesen
float x[20], y[20], z[20]; // hier mit 20 Elementen wenn Du ungefähr weisst wieviel in der Datei stehen aber ich denke das ist nicht so oder
Oder?
-