Как да забавите изпълнението на програмата в C

Автор: Joan Hall
Дата На Създаване: 28 Февруари 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
№38 Нешка Робева - легендарный тренер болгарской школы гимнастики [ENG SUBS]
Видео: №38 Нешка Робева - легендарный тренер болгарской школы гимнастики [ENG SUBS]

Съдържание

Искали ли сте някога да създадете програма на C, която да чака известно време? Можете да персонализирате начина, по който да дадете време за „прелитане“, например: когато показвате изскачаща страница (известие или подсказка) за играта. ... Добре, ето няколко начина за създаване на програма "стойте неподвижно", прочетете нататък ...

Стъпки

  1. 1 Оставете процесора си да работи известно време, без да причинявате наблюдавано събитие.
  2. 2 Не извършвайте никакви други операции по време на това забавяне, за да създадете просто времево забавяне.

Метод 1 от 2: Техника за цикъл

  1. 1 Използвайте типичен цикъл "за", последван от празен израз, за ​​да приложите забавяне.
  2. 2 Напишете, както следва, например:
    • за (i = 1; i100; i ++);
    • Операторът след ";" принуждава компютъра да се върти 100 пъти без забележимо събитие. Това създава само забавяне във времето.

Метод 2 от 2: Техниката "sleep ()"

  1. 1 Използвайте sleep (). Функцията се нарича sleep (int ms), декларирана в TIME.H>, което кара програмата да чака определено време в милисекунди.
  2. 2 Включете следния ред във вашата програма преди int main ():
    • #включете TIME.H>
  3. 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 ().