![Point Sublime: Refused Blood Transfusion / Thief Has Change of Heart / New Year’s Eve Show](https://i.ytimg.com/vi/V_Rb3Cp9ubE/hqdefault.jpg)
Задаволены
- крокі
- Метад 1 з 2: Методыка цыклу "for-loop"
- Метад 2 з 2: Методыка "sleep ()"
- прыклад кода
- парады
- папярэджання
Вы калі-небудзь хацелі стварыць праграму на C, якая чакае пэўны час? Вы можаце наладзіць спосаб, каб даць часу «праляцець», напрыклад: пры паказе ўсплывальнай старонкі (апавяшчэнне або падказка) для гульні. . ОК, вось некалькі спосабаў стварэння праграмы выгляду "stand still" (стаяць на месцы), чытайце далей ...
крокі
1 Няхай ваш працэсар папрацуе на працягу некаторага часу, не выклікаючы прыкметнага падзеі.
2 Ня выконвайце іншыя аперацыі падчас гэтай затрымкі, каб стварыць простую часовую затрымку.
Метад 1 з 2: Методыка цыклу "for-loop"
1 Выкарыстоўвайце тыповы цыкл "for", за якім варта пусты аператар для рэалізацыі затрымкі.
2 Напішыце наступным чынам, для прыкладу:
- for (i = 1; i100; i ++);
- Аператар, які ідзе пасля ";" прымушае кампутар выканаць цыкл 100 разоў без прыкметнага падзеі. Ён толькі стварае часовую затрымку.
Метад 2 з 2: Методыка "sleep ()"
1 Выкарыстоўвайце sleep (). Функцыя называецца sleep (int ms), абвешчаная ў TIME.H>, якая прымушае праграму чакаць на працягу пазначанага часу ў мілісекундах.
2 Уключыце наступны радок у вашу праграму перад "int main ()":
- #include TIME.H>
3 Ўстаўце там, дзе гэта неабходна, каб ваша праграма зрабіла затрымку:
- sleep (1000);
- Зменіце "1000" на колькасць мілісекунд, якія вы хочаце чакаць (напрыклад, калі вы хочаце зрабіць 2-секундную затрымку, заменіце яго на "2000".
- Савет: У некаторых сістэмах значэнне можа паказвацца ў секундах замест мілісекунд. Таму, часам 1000 - не з'яўляецца 1 з, але, у рэчаіснасці, 1000 секунд.
прыклад кода
Праграма, якая чакае пэўную колькасць секунд:
#include stdio.h> #include dos.h> int main () {int del; // The delay period printf ( "Enter the delay time (in seconds):"); scanf ( "% i", & del); del * = 1000; // Multiply it by 1000 to convert to milliseconds Delay (del); // Delay. printf ( "Done."); return 0; }
Праграма, якая выконвае зваротны адлік ад 10 to 0:
#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ( "% i n", i); // Write the current 'countdown' number Delay (1000); // Wait a second} return 0; }
парады
- Мілісэкундах - гэта 1/1000 секунды.
- Алгарытм, паказаны вышэй, можа быць рэалізаваны з дапамогай любой цыклічнай структуры з наступным нулявым оператором- "; як выкарыстоўваючы цыклы while або do-while.
папярэджання
- Гэты метад, як правіла, бескарысны ў чым-небудзь, акрамя трывіяльнай праграмы. Увогуле, выкарыстоўвайце таймеры або падзейна-арыентаваны падыход, каб гэта ажыццявіць. У адваротным выпадку, праграма стане не адказваць на працягу часу затрымкі і гэта не заўсёды добра. Акрамя таго, выбар N ў цыкле, калі гэта залежыць ад выканання каманд, можа мець нечаканыя вынікі. Па-відаць, зыходны аўтар ніколі не чуў пра аптымізуе кампілятар ... ён можа аптымізаваць ўвесь цыкл, калі ён на самай справе нічога не робіць!
- Звярніце ўвагу, што пры выкарыстанні метаду «for-loop» (цыклу «for»), магчыма, спатрэбіцца вельмі вялікі інтэрвал для i, так як пусты аператар выконваецца вельмі хутка. Такія вялікія лічбы могуць не змясціцца ў тып integer.
- Калі вы выкарыстоўваеце «for-loop», кампілятар можа аптымізаваць код, і, паколькі цыкл не робіць нічога, выдаліце яго. Гэтага не адбываецца пры выкарыстанні Delay ().