Odpocitavac casu

Programovacie jazyky, rady, poradňa...
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Odpocitavac casu

Príspevok od používateľa reDo »

ako sa da sparvit aj konzolovi odpocitavac casu tak aby nezatazoval na miximum CPU?? pls poradte chcem to pochopit
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

co a v com to chces? :D
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

aha sry C++/C a odpocitavac ze zadas napr minuty kolko chces a potom sa nieco stane chapete ma ide tu o to ako to spartvit aby to nezatazovalo na maximum CPU
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Príspevok od používateľa c-ice »

predpokladam že SetTimer();// include windows.h
si uz skusal ( http://msdn.microsoft.com/en-us/library ... S.85).aspx )
inak nevidim dôvod že by to malo CPU zatažovat pokial si timer neskušal robit tak ako sme ho robili v assembleri na strednej že si si zistil kolko trvá jedna operácia a potom ju opakuješ :D tolko kolko potrebuješ delay...
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

ee neskusal ja som to myslel v C++/Clebo ked som robil casovac ja tak sa mi na miximum vyuzival CPU preto sa pytam a nejaky zdrojak nejakeho casovaca alebo hodin nenajde sa?? hladal som na nete ale nic som enansiel

//autoeditácia príspevku ( 11 Nov 2009, 11:13 )
pozrite toto je ten problem mam takyto kod a ked to caka do vyprsania tak mi CPU vyuziva na 100% a ja by som potreboval aby ho nevyuzival chapete?? tu je zdrojak

Kód: Vybrať všetko

#include <iostream>
#include <ctime> // popisuje funkci clock() a typ clock_t
int main()
{
	using namespace std;
	cout << "Zadejte zpozdeni v sekundach: ";
	float secs;
	cin >> secs;
	clock_t delay = secs * CLOCKS_PER_SEC; 	// převede na hodinové takty
	cout << "zacatek\a\n";
	clock_t start = clock();
	while (clock() - start < delay ) 				// čekání do vypršení času
	; 																	// všimněte si středníku
cout << "konec \a\n";
system("pause");
return 0;
}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

robiť to takýmto cyklom je šialenstvo, skús použiť Sleep() kde do zátvorky dáš ako parameter počet milisekúnd. Budeš si potrebovať includovať hlavičku windows.h. Ak to chceš multiplatformovo, tak na unixe je ekvivalentný príkaz usleep() a ten je v z unistd.h
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

skusil som ale to sleep nic nerobi a co to ma vlastne robit a to mam pouzit rovnako ak oto clock ibaze dam do cyklu to sleep? ale ako to mam prerobit?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    cout << " vypisem text a cakam 5 sekund " << endl;
    Sleep(5000);
    cout << " a pokracujem ... "  << endl;
    cin.get();
}
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

dikes a ma to aj nejake navratove hodnoty ked to chcem porovnat a pod.?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

stačí sa pozreť (kdekoľvek na googli) a zistíš že nemá. Aj logicky si si mohol domyslieť že nemá, akú návratovú hodnotu by si čakal od pozastavania programu? :roll:
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

nwm to bola len taka otazka

//autoeditácia príspevku ( 11 Nov 2009, 16:57 )
tak ako by som mohol sparvit ten casovac aby mi to nevytazovalo CPU a mohol by som to porovnat alebo nejako spravit aby sa mi po urcitom case vypol komp a pod. :roll:
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

audiotrack napísal:

Kód: Vybrať všetko

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    cout << " vypisem text a cakam 5 sekund " << endl;
    Sleep(5000);
    cout << " a pokracujem ... "  << endl;
    cin.get();
}
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

to napadlo aj mna ale nejake dalsie veci ako ze uzivatel by mohol zastavit odpocitavanie a pod. to sparvim ako?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

reDo napísal:aha sry C++/C a odpocitavac ze zadas napr minuty kolko chces a potom sa nieco stane chapete ma ide tu o to ako to spartvit aby to nezatazovalo na maximum CPU
kde si také čosi spomínal že do toho má môcť zasahovať užívateľ? Na dvestokrát modifikuješ požiadavky (napríklad aj v tej téme o bat) a potom to takto dopadá. Ak chceš aby do toho mohol užívateľ zasahovať, tak cyklom, ale nie tak ako si to spravil, ale bude tam for a v každom cykle nejaký sleep na istý čas. Nemôžeš ale čakať že takéto hlúposti nebudú veľmi zaťažovať CPU. Ak chceš niečo robiť optimálne, vyhni sa vo všeobecnosti timerom
reDo
Star
Star
Používateľov profilový obrázok
Príspevky: 661
Registrovaný: 26 apr 2009, 18:36
Bydlisko: 00100100
Kontaktovať používateľa:

Príspevok od používateľa reDo »

a ako su robene hodiny ?? dobre koncim stakymito hlupostami :roll:
Napísať odpoveď