C da dasturni bajarilishini qanday kechiktirish mumkin

Muallif: Joan Hall
Yaratilish Sanasi: 28 Fevral 2021
Yangilanish Sanasi: 1 Iyul 2024
Anonim
Основные ошибки при возведении перегородок из газобетона #5
Video: Основные ошибки при возведении перегородок из газобетона #5

Tarkib

Siz hech qachon ma'lum vaqt kutadigan C dasturini yaratishni xohlaganmisiz? Vaqtni "uchib ketish" usulini sozlashingiz mumkin, masalan: o'yin uchun qalqib chiquvchi sahifani ko'rsatganda (bildirishnoma yoki maslahat). ... OK, bu erda "to'xtab turish" dasturini yaratishning ba'zi usullari, o'qing ...

Qadamlar

  1. 1 Protsessorni kutilmagan hodisaga olib kelmasdan bir muddat ishlashiga ruxsat bering.
  2. 2 Oddiy vaqtni kechiktirish uchun bu kechikish paytida boshqa operatsiyalarni bajarmang.

2-usul 1: For-loop texnikasi

  1. 1 Kechiktirishni amalga oshirish uchun odatiy "for" tsiklidan keyin bo'sh so'zni ishlating.
  2. 2 Quyidagi kabi yozing, masalan:
    • uchun (i = 1; i100; i ++);
    • Operator ";" belgisiga amal qiladi. sezilarli hodisasiz kompyuterni 100 marta aylanishga majbur qiladi. Bu faqat vaqtni kechiktirishga olib keladi.

2 -usul 2: "uyqu ()" texnikasi

  1. 1 Uyqu () dan foydalaning. Vazifa TIME.H> da e'lon qilingan uyqu (int ms) deb nomlanadi, bu esa dasturni millisekundlarda belgilangan vaqtni kutishiga olib keladi.
  2. 2 Int main () dan oldin dasturingizga quyidagi qatorni kiriting:
    • #TIME.H> ni qo'shing
  3. 3 Dasturni kechiktirish uchun kerakli joyga qo'ying:
    • uxlash (1000);
    • "1000" ni kutmoqchi bo'lgan millisekundlar soniga o'zgartiring (masalan, agar siz 2 soniya kechiktirmoqchi bo'lsangiz, uni "2000" bilan almashtiring.
    • Maslahat: Ba'zi tizimlarda qiymat millisekundlar o'rniga soniyalarda ko'rsatilishi mumkin. Shuning uchun, ba'zida 1000 1 soniya emas, balki aslida 1000 soniya.

Namuna kodi

Bir necha soniya kutadigan dastur:



#include stdio.h> #include dos.h> int main () {int del; // kechikish davri printf ("Kechiktirish vaqtini kiriting (soniyalarda):"); scanf ("% i" ,? del); del * = 1000; // Millisekundlarga aylantirish uchun uni 1000 ga ko'paytiring Kechiktirish (del); // Kechikish. printf ("Bajarildi"); qaytarish 0; }


10 dan 0 gacha hisoblanadigan dastur:


#include STDIO.H> #include TIME.H> int main () {int i; uchun (i = 10; i> = 0; i--) {printf ("% i n", i); // Joriy "orqaga hisoblash" raqamini yozing Kechiktirish (1000); // Bir soniya kuting} 0 qaytaring; }

Maslahatlar

  • Millisekund - 1/1000 soniya.
  • Yuqoridagi algoritm null operatori - ";

Ogohlantirishlar

  • Bu usul umuman ahamiyatsiz dasturdan boshqa hech narsaga yaramaydi. Umuman olganda, buning uchun taymerlar yoki hodisalarga asoslangan yondashuvdan foydalaning. Aks holda, dastur kechikish vaqtida javob bermaydi va bu har doim ham yaxshi emas. Bundan tashqari, loopda N ni tanlash, agar u buyruqlar bajarilishiga bog'liq bo'lsa, kutilmagan natijalarga olib kelishi mumkin. Ko'rinib turibdiki, asl muallif hech qachon optimallashtiruvchi kompilyator haqida eshitmagan ... agar u hech narsa qilmasa, butun tsiklni optimallashtirishi mumkin!
  • E'tibor bering, "for-loop" usulini ishlatganda, i uchun juda katta interval bo'lishi mumkin, chunki bo'sh ibora juda tez. Bunday katta sonlar butun son turiga mos kelmasligi mumkin.
  • Agar siz for-loopdan foydalansangiz, kompilyator kodni optimallashtirishi mumkin va pastadir hech narsa qilmagani uchun uni olib tashlang. Delay () dan foydalanganda bunday bo'lmaydi.