Чӣ тавр таъхир кардани барнома дар C

Муаллиф: Joan Hall
Санаи Таъсис: 28 Феврал 2021
Навсозӣ: 1 Июл 2024
Anonim
БАРАН на ВЕРТЕЛЕ  ВКУСНОЕ МЯСО!! 18 КИЛОГРАММ за 5 ЧАСОВ. ФИЛЬМ
Видео: БАРАН на ВЕРТЕЛЕ ВКУСНОЕ МЯСО!! 18 КИЛОГРАММ за 5 ЧАСОВ. ФИЛЬМ

Мундариҷа

Оё шумо ягон бор мехостед барномаи C созед, ки муддати муайяне интизор шавад? Шумо метавонед тарзи додани вақтро "парвоз кунед" танзим кунед, масалан: ҳангоми нишон додани саҳифаи поп-ап (огоҳӣ ё ишора) барои бозӣ. ... Хуб, дар ин ҷо баъзе роҳҳои сохтани барномаи "истодан" ҳастанд, хонед ...

Қадамҳо

  1. 1 Бигзор протсессори шумо муддате бидуни рух додани ҳодисаи мушоҳидашаванда кор кунад.
  2. 2 Дар давоми ин таъхир ягон амали дигарро анҷом надиҳед, то таъхири оддии вақт эҷод карда шавад.

Усули 1 аз 2: Технологияи даврӣ

  1. 1 Барои амалӣ кардани таъхир як ҳалқаи маъмулии "барои" ва пас аз як изҳороти холиро истифода баред.
  2. 2 Ба таври зерин нависед, масалан:
    • барои (i = 1; i100; i ++);
    • Оператор пас аз ";" компютерро маҷбур мекунад, ки бе рӯйдоди намоён 100 маротиба давр занад. Он танҳо таъхири вақтро ба вуҷуд меорад.

Усули 2 аз 2: Техникаи "хоб ()"

  1. 1 Истифода хоб (). Функсия хоб номида мешавад (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 * = 1000; // Онро ба 1000 зарб кунед, то ба миллисекундҳо гузаред Delay (del); // Таъхир. printf ("Иҷро шуд"); бозгашт 0; }


Барномае, ки аз 10 то 0 ҳисоб карда мешавад:


#include STDIO.H> #include TIME.H> int main () {int i; барои (i = 10; i> = 0; i--) {printf ("% i n", i); // Рақами кунунии 'бозгашт' -ро таъхир кунед (1000); // Як сония интизор шавед} бозгаштан 0; }

Маслиҳатҳо

  • Милисекунд 1/1000 сония аст.
  • Алгоритми дар боло зикршударо метавон бо истифода аз ҳама гуна сохтори давр, ки пас аз он оператори нул - "; ҳамчун истифодаи ҳалқаҳои while ё do -while амалӣ кардан мумкин аст.

Огоҳӣ

  • Ин усул барои ҳама чизи ғайр аз як барномаи ночиз бефоида аст. Умуман, барои иҷрои ин кор таймерҳо ё равиши ба рӯйдодҳо асосёфтаро истифода баред. Дар акси ҳол, барнома дар вақти таъхир ҷавоб нахоҳад дод ва ин на ҳама вақт кори хуб аст. Инчунин, интихоби N дар як ҳалқа, агар он аз иҷрои фармонҳо вобаста бошад, метавонад натиҷаҳои ғайричашмдошт дошта бошад. Эҳтимол, муаллифи аслӣ ҳеҷ гоҳ дар бораи оптимизатсияи компилятор нашунидааст ... он метавонад тамоми давраро оптимизатсия кунад, агар он воқеан коре накунад!
  • Дар хотир доред, ки ҳангоми истифодаи усули "for-loop", он метавонад барои i фосилаи хеле калон гирад, зеро изҳороти холӣ хеле зуд аст. Чунин рақамҳои калон метавонанд ба як намуди бутун мувофиқат накунанд.
  • Агар шумо for-loop -ро истифода баред, компилятор метавонад кодро оптимизатсия кунад ва азбаски ҳалқа ҳеҷ кор намекунад, онро нест кунед. Ҳангоми истифодаи Delay () ин тавр намешавад.