Zum Inhalt springen

Statuszeile (Prozentzeile) anzeigen.


Empfohlene Beiträge

Geschrieben

Hallo ...

ich wollte heute meinem Programm eine Prozentleiste hinzufügen nun habe ich aber das problem das ich vorher berechnen muß wie lange er für diesen Vorgang (Zahlen Sortieren) braucht . Bei kleineren Zahlen z.B. 10000 ist das kein Problem denn wenn ich erst 10000 Zahlen generiern lasse und anschließend sortiere braucht er 1,983 Sekunden und bei 20000 das 4 fache also 7,9sek .. jedoch stimmt das Quadrieren bei der Zahl 100000 nichtmehr .. denn er braucht 365 sekunden und nicht die berechneten 190 Sekunden .. !! Kann mir da vielleicht jemand nen Tip geben wie die CPU Rechenkurve aussieht ?? Danke schonmal iom voraus .. !

Mfg

Cyberfauli

Geschrieben

Hi also das Problem ist .. ich will ja so einen Balckebn haben der von 0 - 100 % geht das problem ist das ich ja vorher berechnen muß wie lange er braucht .

bei 10000 funktinirt das noch denn da braucht er 1,9sekunden ,

bei 20000 braucht er 7,8 sekunden ...

das sieht erstmal nach einer Quadratischen sacvhe aus doppelter wert 4fache zeit.

Aber wenn ich das jetzt weiter mache zum Beispiel mit 100000 braucht er 295sekunden und dann stimmt die rechnung mit n² nichtmehr .. !! Verstehst du mein Problem ??

P.S.: ICQ 130277048 im Moment Online

Geschrieben

Jetzt verstehe ich garnichts mehr .. !!!

ich weiß das es mit der normalen Quadratrechnung nicht geht das der CPU irgendwie mit logarythmus arbeitet oder so ...

hier mal die adresse des Programms vielleicht kannst du ja mal reinschauen vielleicht siehste ja was ..

aber das mit INT und DOUBLE ist mir jetzt zu hoch ..

ich hatte eine Variable Deklariert welche "vorraus" hieß diese habe ich wie folgt berechnet

ich habe mir den grundstein für die Zahl 10000 Ausgerechnet diese war 1,9 Sekunden

vorraus=n/10000;

vorraus=vorraus*vorraus; //oder auch vorraus=pow(vorraus,2);

cout<< " Vorraussichtliche Rechen Zeit"<< vorraus ;

so wie schon gesagt mit dieser rechnung stimmte es wenn die zahlen klein blieben .. aber nach oben hin z.B. 100000 verändert sich das Quadrat (²) zu hoch 2,7... !!!

Oder sehe ich das falsch .. das hat doch nix mit dem Integer zu tun denn VORRAUS ist (war)deklariert als FLOAT wert !!!

Geschrieben

Es gibt da ein viel generelleres Problem:

Du kannst vorher nicht wissen, wie lange Du brauchst, um Deine Zahlen zu sortieren. Das hat einen ganz einfachen Grund. Heutige Betriebssysteme sind Multitasking-Betriebssysteme. Das bedeutet, daß immer mehrere Prozesse/Threads laufen. Je nach dem, wie die CPU ausgelastet ist, wird Dein Programm schneller oder langsamer sein. Und: Was machst Du, wenn das Programm auf einem langsameren Rechner läuft?

Das sind alles Probleme, die dagegen sprechen, es über die Zeit zu lösen. Man könnte sich vielleicht überlegen, ob man entscheiden kann ob, eine Zahl schon am richtigen Platz ist oder nicht und dann kann man einfach sagen: Zahlen, die am richtigen Platz sind geteilt durch Zahlen insgesamt.

HTH

Jan

Geschrieben

@Orffi

Ja das ist schon klar ,... es ist jha auch nur ein Programm um C++ kennen zulernen ... !! Aus spielerein lernt man .. und die Anzeige muß ja auch nicht vollkommen genau sein es reicht ja ungefähr ... wenn er plötzlich von 98% auf 100% springt ist das nicht willt ! Das machen schließlich viel installationsprogramm, aber es wäre nett wenn es irgendwie lösbar währe .. !!

Geschrieben
Originally posted by Cyberfauliii

so wie schon gesagt mit dieser rechnung stimmte es wenn die zahlen klein blieben .. aber nach oben hin z.B. 100000 verändert sich das Quadrat (²) zu hoch 2,7... !!!

Die Rechnung ist o.k, die Formel nicht. 1,9 mal (n/10000) zum Quadrat ist einfach keine gute Abschätzung für Deinen Algorithmus. Aus den drei Werten, die Du genannt hast, könnte man folgendes machen:

*Lina rauskram*

float x = n / 10000.0;

float sekunden = 4.3 * x * x - 7 * x + 4.7;

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...