Paano maantala ang pagpapatupad ng programa sa C

May -Akda: Joan Hall
Petsa Ng Paglikha: 28 Pebrero 2021
I -Update Ang Petsa: 1 Hulyo 2024
Anonim
greedy (C)
Video.: greedy (C)

Nilalaman

Nais mo na bang lumikha ng isang C program na naghihintay para sa isang tiyak na tagal ng oras? Maaari mong ipasadya ang paraan upang bigyan ang oras na "lumipad sa pamamagitan ng", halimbawa: kapag nagpapakita ng isang pop-up na pahina (abiso o pahiwatig) para sa laro. ... OK, narito ang ilang mga paraan upang lumikha ng isang "tumahimik" na programa, basahin sa ...

Mga hakbang

  1. 1 Hayaan ang iyong processor na tumakbo nang ilang sandali nang hindi nagiging sanhi ng isang napapansin na kaganapan.
  2. 2 Huwag magsagawa ng anumang iba pang mga operasyon sa pagkaantala na ito upang lumikha ng isang simpleng pagkaantala ng oras.

Paraan 1 ng 2: Para-loop na pamamaraan

  1. 1 Gumamit ng isang tipikal na "para sa" loop na sinusundan ng isang walang laman na pahayag upang magpatupad ng isang pagkaantala.
  2. 2 Sumulat ng mga sumusunod, halimbawa:
    • para sa (i = 1; i100; i ++);
    • Ang operator na sumusunod sa ";" pinipilit ang computer na mag-loop nang 100 beses nang walang kapansin-pansin na kaganapan. Lumilikha lamang ito ng pagkaantala ng oras.

Paraan 2 ng 2: Ang pamamaraan na "pagtulog ()"

  1. 1 Gumamit ng pagtulog (). Ang pagpapaandar ay tinatawag na pagtulog (int ms), na idineklara sa TIME.H>, na naghihintay sa programa para sa isang tinukoy na dami ng oras sa milliseconds.
  2. 2 Isama ang sumusunod na linya sa iyong programa bago int main ():
    • # isama ang TIME.H>
  3. 3 I-paste kung saan kinakailangan upang maantala ang iyong programa:
    • pagtulog (1000);
    • Palitan ang "1000" sa bilang ng mga millisecond na nais mong maghintay (halimbawa, kung nais mong gumawa ng isang 2 segundo na pagkaantala, palitan ito ng "2000".
    • Tip: Sa ilang mga system, maaaring tukuyin ang halaga sa mga segundo sa halip na milliseconds. Samakatuwid, kung minsan ang 1000 ay hindi 1 segundo, ngunit talagang 1000 segundo.

Sample code

Isang programa na naghihintay para sa isang tiyak na bilang ng mga segundo:



#include stdio.h> #include dos.h> int main () {int del; // The delay period printf ("Ipasok ang oras ng pagkaantala (sa mga segundo):"); scanf ("% i" ,? del); del * = 1000; // I-multiply ito ng 1000 upang mai-convert sa milliseconds Delay (del); // Pagkaantala. printf ("Tapos Na."); ibalik ang 0; }


Isang programa na binibilang mula 10 hanggang 0:


# isama ang STDIO.H> # isama ang TIME.H> int main () {int i; para sa (i = 10; i> = 0; i--) {printf ("% i n", i); // Isulat ang kasalukuyang numero ng 'countdown' na pagkaantala (1000); // Maghintay ng isang segundo} bumalik 0; }

Mga Tip

  • Ang isang millisecond ay 1/1000 ng isang segundo.
  • Ang algorithm sa itaas ay maaaring ipatupad gamit ang anumang istraktura ng looping na sinusundan ng null operator - "; tulad ng paggamit habang o do-habang mga loop.

Mga babala

  • Ang pamamaraang ito sa pangkalahatan ay walang silbi para sa anupaman maliban sa isang walang kuwentang programa. Sa pangkalahatan, gumamit ng mga timer o diskarte na hinihimok ng kaganapan upang magawa ito. Kung hindi man, ang programa ay magiging hindi tumutugon sa oras ng pagkaantala at hindi ito palaging isang mabuting bagay. Gayundin, ang pagpili ng N sa isang loop, kung depende ito sa pagpapatupad ng mga utos, ay maaaring magkaroon ng hindi inaasahang mga resulta. Maliwanag na ang orihinal na may-akda ay hindi pa nakarinig ng isang nag-optimize na tagatala ... maaari itong i-optimize ang isang buong loop kung hindi talaga ito gumagawa!
  • Tandaan na kapag ginagamit ang pamamaraang "for-loop", maaaring tumagal ng napakalaking agwat para sa i, dahil ang isang walang laman na pahayag ay napakabilis. Ang nasabing malalaking mga numero ay maaaring hindi magkasya sa isang uri ng integer.
  • Kung gumagamit ka ng isang for-loop, maaaring i-optimize ng tagatala ang code, at dahil wala ang loop, alisin ito. Hindi ito nangyayari kapag gumagamit ng pagkaantala ().