C тілінде бағдарламаның орындалуын қалай кешіктіруге болады

Автор: Joan Hall
Жасалған Күн: 28 Ақпан 2021
Жаңарту Күні: 1 Шілде 2024
Anonim
Ата-ана жиналысы (6-сынып)
Вызшақ: Ата-ана жиналысы (6-сынып)

Мазмұны

Сіз белгілі бір уақытты күтетін С бағдарламасын жасағыңыз келді ме? Сіз уақытты «ұшу» әдісімен реттей аласыз, мысалы: ойынға қалқымалы бетті көрсеткенде (хабарландыру немесе кеңес). ... Жарайды, мұнда «тоқтап қалу» бағдарламасын құрудың бірнеше жолдары берілген, оқыңыз ...

Қадамдар

  1. 1 Процессорды байқалатын оқиға тудырмай біраз уақыт жұмыс істеуге рұқсат етіңіз.
  2. 2 Қарапайым уақыт кідірісін жасау үшін осы кідіріс кезінде басқа әрекеттерді жасамаңыз.

2-ші әдіс 1: For-loop техникасы

  1. 1 Кешіктіруді жүзеге асыру үшін әдеттегі «for» циклін, содан кейін бос мәлімдемені қолданыңыз.
  2. 2 Мынадай жазыңыз, мысалы:
    • үшін (i = 1; i100; i ++);
    • Оператор «;» белгісін орындайды. компьютерді елеулі оқиғасыз 100 рет айналдыруға мәжбүр етеді. Ол тек уақытты кешіктіреді.

2 -ші әдіс 2: «ұйқы ()» техникасы

  1. 1 Ұйқыны пайдаланыңыз (). Бұл функция TIME.H> деп жарияланған ұйқы (int ms) деп аталады, бұл бағдарламаны миллисекундтарда көрсетілген уақытты күтуге мәжбүр етеді.
  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); // Бір секунд күтіңіз} қайтару 0; }

Кеңестер

  • Милисекунд - 1/1000 секунд.
  • Жоғарыда көрсетілген алгоритм кез келген цикл құрылымын, содан кейін нөлдік операторды қолдана отырып орындалуы мүмкін - while немесе do -while ілмектерін қолдану арқылы.

Ескертулер

  • Бұл әдіс қарапайым бағдарламадан басқа ештеңеге жарамайды. Жалпы, бұл үшін таймерлерді немесе оқиғаға негізделген әдісті қолданыңыз. Әйтпесе, кешігу кезінде бағдарлама жауап бермейді және бұл әрқашан жақсы емес. Сонымен қатар, циклде N таңдау, егер ол командалардың орындалуына байланысты болса, күтпеген нәтижеге әкелуі мүмкін. Шамасы, түпнұсқалық автор оңтайландырушы компилятор туралы ешқашан естімеген ... егер ол ештеңе жасамаса, ол бүкіл циклді оңтайландыра алады!
  • Назар аударыңыз, «for-loop» әдісін қолданғанда, i үшін өте үлкен интервал қажет болуы мүмкін, себебі бос мәлімдеме өте жылдам. Мұндай үлкен сандар бүтін санға сәйкес келмеуі мүмкін.
  • Егер сіз циклды қолдансаңыз, компилятор кодты оңтайландыра алады және цикл ештеңе жасамайтындықтан, оны алып тастаңыз. Бұл Delay () функциясын қолданғанда болмайды.