C -də proqramın icrasını necə gecikdirmək olar

Müəllif: Joan Hall
Yaradılış Tarixi: 28 Fevral 2021
YeniləMə Tarixi: 1 İyul 2024
Anonim
C -də proqramın icrasını necə gecikdirmək olar - CəMiyyəT
C -də proqramın icrasını necə gecikdirmək olar - CəMiyyəT

MəZmun

Müəyyən bir müddət gözləyən bir C proqramı yaratmaq istəmisinizmi? Vaxtın "uçması" yolunu özəlləşdirə bilərsiniz, məsələn: oyun üçün bir açılan səhifə (bildiriş və ya işarə) göstərərkən. ... Tamam, burada "dayanma" proqramı yaratmağın bəzi yolları var, oxuyun ...

Addımlar

  1. 1 Gözlənilən bir hadisəyə səbəb olmadan prosessorunuzun bir müddət işləməsinə icazə verin.
  2. 2 Sadə bir gecikmə yaratmaq üçün bu gecikmə zamanı başqa əməliyyatlar etməyin.

Metod 1 /2: For-loop texnikası

  1. 1 Gecikməni həyata keçirmək üçün tipik "for" döngəsindən sonra boş bir ifadə istifadə edin.
  2. 2 Aşağıdakı kimi yazın, məsələn:
    • üçün (i = 1; i100; i ++);
    • Operator ";" işarəsini izləyir. nəzərə çarpan bir hadisə olmadan kompüteri 100 dəfə döndərməyə məcbur edir. Yalnız vaxt gecikməsinə səbəb olur.

Metod 2 /2: "yuxu ()" texnikası

  1. 1 Yuxudan istifadə edin (). Funksiya TIME.H> ilə elan edilən yuxu (int ms) adlanır və bu da proqramı millisekundlarla müəyyən bir müddət gözləməyə məcbur edir.
  2. 2 Int main () əvvəli proqramınıza aşağıdakı sətri daxil edin:
    • #TIME.H daxil et>
  3. 3 Proqramınızı gecikdirmək üçün lazım olan yerə yapışdırın:
    • yuxu (1000);
    • "1000" ini gözləmək istədiyiniz millisaniyə sayına dəyişin (məsələn, 2 saniyə gecikmək istəyirsinizsə, onu "2000" ilə əvəz edin.
    • İpucu: Bəzi sistemlərdə dəyər milisaniyələr əvəzinə saniyələrdə göstərilə bilər. Buna görə bəzən 1000 1 saniyə deyil, əslində 1000 saniyədir.

Nümunə kodu

Müəyyən bir saniyə gözləyən bir proqram:



#include stdio.h> #include dos.h> int main () {int del; // gecikmə dövrü printf ("Gecikmə vaxtını daxil edin (saniyələrlə):"); scanf ("% i" ,? del); del * = 1000; // Millisaniyəyə çevirmək üçün onu 1000 -ə vurun Gecikmə (del); // Gecikmə. printf ("Bitti."); qaytarma 0; }


10 -dan 0 -a qədər sayılan bir proqram:


#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Mövcud 'geri sayım' nömrəsini yazın Gecikmə (1000); // Bir saniyə gözləyin} 0 qaytar; }

İpuçları

  • Millisekund saniyənin 1/1000 -dir.
  • Yuxarıdakı alqoritm, null operatorunu izləyən hər hansı bir döngə quruluşu ilə həyata keçirilə bilər.

Xəbərdarlıqlar

  • Bu üsul, əhəmiyyətsiz bir proqramdan başqa bir şey üçün ümumiyyətlə faydasızdır. Ümumiyyətlə, bunun üçün taymerlərdən və ya hadisəyə əsaslanan yanaşmadan istifadə edin. Əks təqdirdə, gecikmə zamanı proqram cavab verməyəcək və bu həmişə yaxşı bir şey deyil. Ayrıca, bir döngədə N seçmək, əmrlərin yerinə yetirilməsindən asılıdırsa, gözlənilməz nəticələr verə bilər. Göründüyü kimi, orijinal müəllif heç vaxt optimallaşdıran bir tərtibçi eşitməmişdir ... əslində heç bir şey etmədiyi təqdirdə bütün döngəni optimallaşdıra bilər!
  • Qeyd edək ki, "for-loop" metodundan istifadə edərkən, boş bir ifadə çox sürətli olduğu üçün i üçün çox böyük bir aralıq tələb oluna bilər. Belə böyük ədədlər tam ədəd tipinə uyğun gəlməyə bilər.
  • For-loop istifadə edirsinizsə, tərtibçi kodu optimallaşdıra bilər və döngə heç bir şey etmədiyi üçün onu silin. Delay () istifadə edərkən bu baş vermir.