![№38 Нешка Робева - легендарный тренер болгарской школы гимнастики [ENG SUBS]](https://i.ytimg.com/vi/31nzZq1kCgc/hqdefault.jpg)
Съдържание
- Стъпки
- Метод 1 от 2: Техника за цикъл
- Метод 2 от 2: Техниката "sleep ()"
- Примерен код
- Съвети
- Предупреждения
Искали ли сте някога да създадете програма на C, която да чака известно време? Можете да персонализирате начина, по който да дадете време за „прелитане“, например: когато показвате изскачаща страница (известие или подсказка) за играта. ... Добре, ето няколко начина за създаване на програма "стойте неподвижно", прочетете нататък ...
Стъпки
1 Оставете процесора си да работи известно време, без да причинявате наблюдавано събитие.
2 Не извършвайте никакви други операции по време на това забавяне, за да създадете просто времево забавяне.
Метод 1 от 2: Техника за цикъл
1 Използвайте типичен цикъл "за", последван от празен израз, за да приложите забавяне.
2 Напишете, както следва, например:
- за (i = 1; i100; i ++);
- Операторът след ";" принуждава компютъра да се върти 100 пъти без забележимо събитие. Това създава само забавяне във времето.
Метод 2 от 2: Техниката "sleep ()"
1 Използвайте sleep (). Функцията се нарича sleep (int ms), декларирана в TIME.H>, което кара програмата да чака определено време в милисекунди.
2 Включете следния ред във вашата програма преди int main ():
- #включете TIME.H>
3 Поставете, когато е необходимо, за да забавите програмата:
- сън (1000);
- Променете "1000" на броя милисекунди, които искате да изчакате (например, ако искате да направите 2 секундно забавяне, заменете го с "2000".
- Съвет: В някои системи стойността може да бъде посочена в секунди вместо в милисекунди. Следователно понякога 1000 не е 1 секунда, а всъщност 1000 секунди.
Примерен код
Програма, която изчаква определен брой секунди:
#include stdio.h> #include dos.h> int main () {int del; // Периодът на забавяне printf ("Въведете времето на забавяне (в секунди):"); scanf ("% i" ,? del); del * = 1000; // Умножете го по 1000, за да конвертирате в милисекунди Закъснение (del); // Забавяне. printf ("Готово."); връщане 0; }
Програма, която брои от 10 до 0:
#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Записване на текущото число за „обратно броене“ Забавяне (1000); // Изчакайте секунда} return 0; }
Съвети
- Милисекундата е 1/1000 от секундата.
- Горният алгоритъм може да бъде реализиран с помощта на всяка циклична структура, последвана от нулевия оператор - "; като използване while или do -while цикли.
Предупреждения
- Този метод обикновено е безполезен за нищо друго освен за тривиална програма. Като цяло използвайте таймери или подход, управляван от събития, за да постигнете това. В противен случай програмата ще спре да реагира по време на закъснението и това не винаги е добре. Също така, изборът на N в цикъл, ако зависи от изпълнението на команди, може да има неочаквани резултати. Очевидно оригиналният автор никога не е чувал за оптимизиращ компилатор ... той може да оптимизира цял цикъл, ако всъщност не прави нищо!
- Имайте предвид, че когато използвате метода "for-loop", може да отнеме много голям интервал за i, тъй като празният израз е много бърз. Такива големи числа може да не се поберат в цяло число.
- Ако използвате for-loop, компилаторът може да оптимизира кода и тъй като цикълът не прави нищо, го премахнете. Това не се случва при използване на Delay ().