30. November 200817 j 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!
30. November 200817 j 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.
30. November 200817 j :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.
30. November 200817 j 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.
30. November 200817 j 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.
30. November 200817 j 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.
30. November 200817 j 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.
30. November 200817 j 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
30. November 200817 j #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.
1. Dezember 200817 j 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!
1. Dezember 200817 j 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.
1. Dezember 200817 j 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
1. Dezember 200817 j 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
1. Dezember 200817 j 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.
1. Dezember 200817 j Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt. der Rest steht schon da.
1. Dezember 200817 j Die Zeit misst man indem man bei const int max die verschiedenen Werte eingibt. der Rest steht schon da.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.