![]() |
in turbo pascal
Liste der Anhänge anzeigen (Anzahl: 1)
hi,
habe in turbo pascal eine übung gemacht, mit gettime und settime. klappt von der theorie auch gibt nur das problem das beim ausführen der *.exe die cpu an die decke geht... hier glaub ich ist das Problem? Zitat:
wenn es hilft kann ich den source hier hinterlegen. |
Zitat:
|
stimmt da hast du recht.
Zitat:
nur warum geht die cpu hoch bis an die 100% ? was könnte ich den falsch gemacht haben? |
klarer Fall für Endlosschleife. Und die CPU ist dann damit beschäftigt in die Unendlichkeit zu segeln.
|
ist es die stelle?
kannst du mir kurz sagen was/wo sch.... ist? bzw. warum. Zitat:
|
ohhh, random (30) heißt, der Maximalwert ist 30 und plus 10 dann sinds 40. Danach passiert doch nichts mehr. Dann ist die Zeit längst rum. Ja und dann versucht die CPU die unendlichkeit zu berechnen.
|
Hallo,
die CPU geht deshalb auf 100% weil Du sie voll damit auslastest, so schnell wie sie kann immer wieder die Zeit abzufragen. Unter DOS (Turbo Pascal) war das auch OK, was soll die CPU da auch anderes machen. Gruss Wolfgang |
Hallo,
ich denke es liegt am folgenden: was passiert wenn beispielsweise s1=49 sekunden und warte=12 ist? Dann wäre s1+warte > 60s und somit eine Endlosschleife! Da s2 nie > 60 sein kann! Das müsste klappen:
Code:
:spin:
s3:=s1+warte;
if s3>59 then dec(s3,60); repeat gettime(h,m,s2,hun2); until s3=s2; |
Hallo,
du mußt hier zwei Dinge auseinanderhalten, nämlich die Gefahr einer Endlosschleife, und die CPU-Auslastung während die Schleife läuft, also hier folgendes: Um die Endlosschleife zu vermeiden, mußt Du auf jeden Fall (in deinem ersten Posting, ) (s1+warte)=s2 ersetzen durch (s1+warte) >= s2 Während die Schleife läuft wird die CPU aber immer auf volle Auslastung gehen,woher soll die Anwendung denn wissen, daß sie diese Schleife nicht so schnell wie möglich durchlaufen soll. Bei einer echten Turbo Pascal (DOS) Anwendung ist das auch in Ordnung. Bei einer Windowsanwendung würde man das Problem anders lösen. Gruss Wolfgang |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz