keller64283 Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 Hallo an alle ich brauche dringend Hilfe: Ich habe folgenden Code, und weiß nicht weiter: #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int n=0 ; int A[255]; do { // Einlesen der Daten for ( int i=0; i < n; i++) A = rand(); if (rand != 0) n++; // Anzahl der Elemente } while (rand() && n<max); time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00 // Sortieren for (int i=1; i < n; i++) // Durchläufe for (int j=n-1; j>=i; j--) {// ein Durchlauf if (A[j-1] > A[j]) { // vertauschen int tmp = A[j-1]; A[j-1] = A[j]; A[j] = tmp; } } for (int i= 0; i<n ; i++) // Ausgeben cout << A << " "; time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00 // Ausgeben cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << endl; cout << "Fortschritt " << int(i*100.0/n) << " % \r"; } Bubble-Sort-Verfahren zum Sortieren ganzer Zahlen, indem Sie Zeitmessungen mit unterschiedlich vielen Werten (1.000, 10.000, 100.000 und 200.000) vornehmen! Was ist da falsch? Ich sitze schon Stunden daran und bekomme nur Fehlermeldungen. Bitte helft mir. Danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
carstenj Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 Hi, 1. Codetags benutzen 2. Fehlermeldungen posten Geht nicht reicht leider nicht, und Fehlermeldungen sind nicht nur dazu da, um zu zeigen DASS etwas falsch ist, sondern auch WAS. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 30. November 2008 Autor Teilen Geschrieben 30. November 2008 :confused: Hallo, es sind folgende Fehlermeldungen: 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(12) : error C2563: Listen der formalen Parameter stimmen nicht überein 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(12) : error C2568: '<': Auflösung der Funktionsüberladung nicht möglich Ich bin dankbar über jede hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 Was soll max sein? Deklariert hast du diese Variable jedenfalls nicht. Es ergibt auch keinen Sinn, wie du rand benutzt. rand ohne runde Klammern liefert dir den Funktionszeiger. Der wird immer ungleich Null sein. Und rand() in der while-Bedingung ist auch Unsinn. Ist dir klar, dass dieser zweite Aufruf mit hoher Wahrscheinlichkeit nicht denselben Wert liefert wie den, den du in A gespeichert hast? Weiter unten greifst du dann auf i zu, obwohl die Gültigkeit dieser Variablen auf den for-Block begrenzt ist. Außerdem solltest du deinen Code mal ordentlich einrücken. Dann sieht man auch gleich, dass du weniger schließende als öffnende geschweifte Klammern hast. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 30. November 2008 Autor Teilen Geschrieben 30. November 2008 Habe noch an dem Code verändert ohne Erfolg, anscheinend habe ich nicht genug Kenntnisse zur zeit. #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int n=0 ; int A[255]; for ( int i=0; i < n; i++) A = rand(); } if ((rand()( != 0); n++; );// Anzahl der Elemente for (rand() && n<max){ time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00 // Sortieren for (int i=1; i < n; i++) // Durchläufe for (int j=n-1; j>=i; j--) {// ein Durchlauf if (A[j-1] > A[j]) { // vertauschen int tmp = A[j-1]; A[j-1] = A[j]; A[j] = tmp; } } for (int i= 0; i<n ; i++) // Ausgeben time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00 // Ausgeben cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << endl; } Bitte helft mir. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 Bitte helft mir.Lies dir bitte carstenjs Beitrag noch mal genau durch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 30. November 2008 Autor Teilen Geschrieben 30. November 2008 OK, die Fehlermeldungem sind: 1>------ Erstellen gestartet: Projekt: Bubble_Sort, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Time.cpp 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9) : error C2143: Syntaxfehler: Es fehlt ',' vor '<' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9) : error C2086: 'int i': Neudefinition 1> c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(9): Siehe Deklaration von 'i' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(10) : error C2143: Syntaxfehler: Es fehlt ';' vor '{' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2059: Syntaxfehler: 'if' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ')' vor ';' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ')' vor ';' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2143: Syntaxfehler: Es fehlt ';' vor '++' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(14) : error C2059: Syntaxfehler: ')' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(15) : error C2059: Syntaxfehler: 'for' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(16) : error C2143: Syntaxfehler: Es fehlt ';' vor '{' 1>c:\users\uta\documents\visual studio 2008\projects\bubble_sort\bubble_sort\time.cpp(16) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil? 1>Das Buildprotokoll wurde unter "file://c:\Users\Uta\Documents\Visual Studio 2008\Projects\Bubble_Sort\Bubble_Sort\Debug\BuildLog.htm" gespeichert. 1>Bubble_Sort - 12 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Ich scheine heute für ide Fehler blind zu sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 Du sollst die CODE-Tags benutzen! Sonst liest sich keiner den Quellcode durch. Das ist Knopf mit dem Raute-Zeichen in dem Beitragseditor. Zwischen die beiden CODE-Tags packst du dann deinen Quellcode. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 30. November 2008 Autor Teilen Geschrieben 30. November 2008 Hallo, danke für den Tip, hier der Code:#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int n=0 ; int A[255]; for ( int i=0, i < n, i++) { A[i] = rand(); } } if ((rand()( != 0); n++; )// Anzahl der Elemente for (rand() && n<i) { time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00 // Sortieren for (int i=1; i < n; i++) // Durchläufe for (int j=n-1; j>=i; j--) {// ein Durchlauf if (A[j-1] > A[j]) { // vertauschen int tmp = A[j-1]; A[j-1] = A[j]; A[j] = tmp; } } for (int i= 0; i<n ; i++) // Ausgeben time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00 // Ausgeben cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << endl; } danke.:upps Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. November 2008 Teilen Geschrieben 30. November 2008 #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int n=0 ; int A[255]; for ( int i=0, i < n, i++) { A[i] = rand(); } }[/code]Die einzelnen Teile einer For-Anweisung trennt man mit Semikolon, nicht mit Komma. Die Fehlermeldung gibt hier einen ziemlich deutlichen Hinweis. Und hier ist deine Main-Funktion übrigens auch zu Ende. Bitte mach dir doch mal die Mühe, die Blöcke und die Einrückung deines Programms in Ordnung zu bringen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 1. Dezember 2008 Autor Teilen Geschrieben 1. Dezember 2008 Hallo, habe nun alles neu geordnet, hilft aber auch nichts, bin sehr ratlos:#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { unsigned int i(); unsigned int n=0 ; int A[255]; for ( i = 0, i < n, i++) { A[i] = rand(); } if ((rand()( != 0); n++; )// Anzahl der Elemente for (rand() && n<i) { time_t vorher=time(NULL); // Anz. Sekunden seit 1.1.1970 0:00 // Sortieren for ( i=1, i < n, i++) // Durchläufe for (int j=n-1, j>=i, j--) {// ein Durchlauf if (A[j-1] > A[j]) { // vertauschen int tmp = A[j-1]; A[j-1] = A[j]; A[j] = tmp; } } for (int i= 0, i<n , i++) // Ausgeben time_t nachher=time(NULL); //Anz. Sekunden seit 1.1.1970 0:00 // Ausgeben cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << endl; } } Bitte seht doch mal genauer hin. ich soll damit Zeitmessungen mit unterschiedlich vielen Werten (1.000, 10.000, 100.000 und 200.000) vornehmen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Dezember 2008 Teilen Geschrieben 1. Dezember 2008 Hallo, habe nun alles neu geordnet Mir scheint, du hast den Code wild durch die Gegend geschoben, die Einrückung ist immer noch furchtbar. hilft aber auch nichts, bin sehr ratlosDu hast es jetzt dreimal in Folge geschafft, eine absolut nutzlose Fehlerbeschreibung abzuliefern. Langsam habe ich keine Lust mehr. Das hier: unsigned int i();Ist eine Funktionsdeklaration, mach die Klammern da weg. Zur for-Anweisung habe ich dir schon etwas gesagt. Du hast es leider nicht umgesetzt, sondern statt dessen den Fehler auf alle anderen for-Anweisungen übertragen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xk4fu Geschrieben 1. Dezember 2008 Teilen Geschrieben 1. Dezember 2008 keller, du solltest den code nochmal komplett neuschreiben; ich hab den eindruck, dass du den nur irgendwie zusammenkopiert hast; da stimmt ja quasi nix OT: Klotzkopp, dein altes user pic war seriöser Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
h-da** Geschrieben 1. Dezember 2008 Teilen Geschrieben 1. Dezember 2008 bei mir geht's so #include <ctime> #include <cstdlib> #include <iostream> using namespace std; int main() { const int max=20; unsigned int n=0; int x=1,Zahl; int A[max]={0}; while (rand()&&(n<max)){ for (unsigned int i=0; i < n; i++) A = rand(); n++;} time_t vorher=time(NULL); for (unsigned int i=0 ; i<=n; i++) for (unsigned int j=n-1 ; j>i; j--){ if (A[j-1]>A[j]){ int tmp=A[j-1]; A[j-1]=A[j]; A[j]=tmp; } } for (unsigned int i=0 ; i<n; i++) cout<< A<< " "; cout << endl; time_t nachher=time(NULL); for (unsigned int i=0 ; i<n; i++) { cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << "Fortschritt " << int(i*100.0/n) << " % \r"; } } aber wie man zeit messen kann weisse ich nicht genau Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 1. Dezember 2008 Autor Teilen Geschrieben 1. Dezember 2008 Vielen Dank an alle es ist erledigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
h-da** Geschrieben 1. Dezember 2008 Teilen Geschrieben 1. Dezember 2008 weisste wie man die verschiedene zeit messt und wie damit einen graf macht ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 1. Dezember 2008 Autor Teilen Geschrieben 1. Dezember 2008 Hier der fertige Code und in Excell muss man die Werte eintragen und die grafik erstellen.#include <ctime> #include <cstdlib> #include <iostream> using namespace std; int main() { const long int max=253000; unsigned long int n=0; long int x=1; long int A[max]={0}; time_t vorher=time(NULL); while (rand()&&(n<max)){ for (unsigned long int i=0; i < n; i++) A[i] = rand(); n++;} for (unsigned long int i=0 ; i<=n; i++) for (unsigned int j=n-1 ; j>i; j--){ if (A[j-1]>A[j]){ long int tmp=A[j-1]; A[j-1]=A[j]; A[j]=tmp; } } for (unsigned long int i=0 ; i<n; i++) cout<< A[i]<< " "; cout << endl; for (unsigned long int i=0 ; i<n; i++) { time_t nachher=time(NULL); cout << "Dauer: " << nachher-vorher << "sec" << endl; cout << "Fortschritt " << long int(i*100.0/n) << " % \r"; } } eine andere frage, hast du vielleicht den Code von der Wurzelberechnung, da hänge ich noch dran. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 1. Dezember 2008 Autor Teilen Geschrieben 1. Dezember 2008 Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt. der Rest steht schon da. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
keller64283 Geschrieben 1. Dezember 2008 Autor Teilen Geschrieben 1. Dezember 2008 Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt. der Rest steht schon da. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.