unklare frage, evtl was mit arrays (war: Hilfe)
-
ich bräucht mal einen rat!!!!ich hab ein programm erstellt um die kürzeste strecke von 3 punkten zu berechnen-funktioniert auch schon mal ganz gut!jez hab ich aber eine tabelle im editor abgespeichert mit 5 verschiedenen punkten und jez will ich in der eingabeaufforderung auf die tabelle zugreifen,das hab ich auch schon geschafft-jez aber meine frage----wie kann ich auf drei ganz bestimmte punkte aus der tabelle zugreifen zum beispiel auf punkt 1,3,4?weiß das jemand wie ich das dem computer sagen kann? bitte helft mir-ich weiß nimmer weiter,weil der computer immer automatisch die ersten drei punkte aus der tabelle berechnet und nich die drei die ich brauch! mfg
-
Martina84 schrieb:
jez hab ich aber eine tabelle im editor abgespeichert
Wie muss man sich diese "tabelle im editor" denn vorstellen? Sprich, wie hast du die Werte letztendlich abgespeichert? Und nach welchen Kriterien bestimmst du die Punkte, die für die Berechnung herangezogen werden sollen?
btw:
In Zukunft bitte aussagekräftige Titel verwenden. Und dass deine Ausrufezeichentaste klemmt hilft da auch nicht weiter.
-
meine tabelle im editor sieht wie folgt aus:
8012002 3512352.99 5328150.45 Hochheim TP
8011199 3514587.54 5328225.91 Tiefheim TP
8012010 3512674.77 5328450.41 Oberdorf AP
8013088 3513773.23 5328550.86 Unterdorf AP
8014111 3512987.38 5328725.03 Bahnhof PPjez möchte ich aber nur die strecke von punkt 1 ,3 und 4 berechnen,wenn ich aber in der eingabeaufforderung die tabelle einles,wird nurd nur die strecke von punkt 1,2,3 berechnet!wie sag ich das denn jez dass ich punkte 1,3,4 haben will??? vlg
-
meine tabelle war übrigens vorgegeben,also nich von mir erstellt!meine aufgabe war dann aus der tabelle über mein programm die punkte 1,3,4 zu vergleichen und die kürzeste strecke zu ermitteln
-
Wenn du jetzt noch erklärst was die einzelnen Felder der Tabelle bedeuten und wie mann daraus eine Entfernung berechnet kommen wir der Lösung schon näher.
Kurt
-
also nochmal die ganze tabelle:
Punkt-nr. y x Punktlage Vermarkung
8012002 3512352.99 5328150.45 Hochheim TP
8011199 3514587.54 5328225.91 Tiefheim TP
8012010 3512674.77 5328450.41 Oberdorf AP
8013088 3513773.23 5328550.86 Unterdorf AP
8014111 3512987.38 5328725.03 Bahnhof PPalso berechenen kann ich ja die strecken über den pythagoras und dazu will ich die verschiedenen Punkte aus der tabelle benutzen und nochmal mein problem dazu:ich weiß einfach nich wie ich dem pc sag dass ich zum beispiel die punktnumern 8012002 ;8013088 und 8014111 berechnen will! das muss doch irgendwie möglich sein bestimmte elemente der tabelle zu benutzen
-
Weiss nicht wie ich das erklären soll.
Vielleicht hilft dir etwas code weiter.#include <iostream> #include <fstream> #include <string> #include <vector> #include <sstream> #include <cmath> using namespace std; struct record { int id; double x; double y; string Vermarkung; string show() { return Vermarkung; } }; class table { public: table( const char * fname ) { read_table( fname ); } bool find_rec( int id, record & rec ); protected: void read_table( const char * fname); vector<record> records; }; void table::read_table( const char * fname ) { string line; ifstream in( fname ); if ( ! in.good() ) { cout << "tabelle " << fname << " nicht gefunden."; return; } while ( getline( in, line ) ) { // cout << line << endl; record rec; stringstream str(line); str >> rec.id >> rec.x >> rec.y ; size_t p = str.tellg(); if ( p != string::npos ) { while ( p < line.length() && line[p] == ' ' ) p++; rec.Vermarkung = line.substr( p ); } records.push_back( rec ); } } bool table::find_rec( int id, record & rec ) { // cout << "looking up record " << id << endl; for( vector<record>::const_iterator i = records.begin(); i != records.end(); ++i ) { if ( (*i).id == id ) { rec = *i; return true; } } cout << "record with id " << id << " not found." << endl; return false; } void usage( const char * progname ) { cout << "usage:" << endl; cout << " " << progname << " tabelle id1 id2" << endl; } int str_to_id( const char * s ) { int ret; stringstream str(s); str >> ret; return ret; } int main( int argc, char ** argv ) { if ( argc < 4 ) { usage( argv[0] ); return 1; } table tabelle( argv[1] ); record r1; record r2; if ( tabelle.find_rec( str_to_id(argv[2]), r1 ) && tabelle.find_rec( str_to_id(argv[3]), r2 ) ) { double dx = r1.x - r2.x; double dy = r1.y - r2.y; cout << "distance between '" << r1.show() << "' and '" << r2.show() << "' is " << sqrt(dx*dx + dy*dy ) << " km" << endl; } return 0; }
-
ok,vielen dank für die mühe-ich werds mal so probieren