نحوه تاخیر در اجرای برنامه در C

نویسنده: Joan Hall
تاریخ ایجاد: 28 فوریه 2021
تاریخ به روزرسانی: 1 جولای 2024
Anonim
آموزش زبان برنامه نویسی C : جلسه یکم
ویدیو: آموزش زبان برنامه نویسی C : جلسه یکم

محتوا

آیا تا به حال خواسته اید یک برنامه C ایجاد کنید که مدت زمان مشخصی منتظر بماند؟ به عنوان مثال: هنگام نمایش یک صفحه پاپ آپ (اعلان یا اشاره) برای بازی ، می توانید روش "زمان پرواز" را تنظیم کنید. ... خوب ، در اینجا چند روش برای ایجاد یک برنامه "ایستاده" وجود دارد ، در ادامه بخوانید ...

مراحل

  1. 1 اجازه دهید پردازنده شما برای مدتی بدون ایجاد یک رویداد قابل مشاهده کار کند.
  2. 2 برای ایجاد تاخیر زمانی ساده ، هیچ عملیات دیگری را در طول این تاخیر انجام ندهید.

روش 1 از 2: تکنیک حلقه

  1. 1 برای پیاده سازی تاخیر از یک حلقه معمولی "for" و به دنبال آن یک عبارت خالی استفاده کنید.
  2. 2 به عنوان مثال زیر بنویسید:
    • برای (i = 1 ؛ i100 ؛ i ++) ؛
    • اپراتور "" را دنبال می کند. کامپیوتر را مجبور می کند 100 بار بدون یک رویداد قابل توجه حلقه کند. این فقط یک تاخیر زمانی ایجاد می کند.

روش 2 از 2: تکنیک "خواب ()"

  1. 1 از خواب () استفاده کنید. این تابع 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)؛ دل * = 1000؛ // برای تبدیل به میلی ثانیه تاخیر (del) آن را در 1000 ضرب کنید. // تاخیر انداختن. printf ("انجام شد.") ؛ بازگشت 0 ؛ }


برنامه ای که از 10 تا 0 شمارش معکوس دارد:


#شامل STDIO.H> #شامل TIME.H> int main () {int i؛ برای (i = 10؛ i> = 0؛ i--) {printf ("٪ i n"، i)؛ // نوشتن شماره "شمارش معکوس" فعلی تاخیر (1000) ؛ // یک ثانیه صبر کنید} return 0؛ }

نکات

  • میلی ثانیه 1/1000 ثانیه است.
  • الگوریتم فوق را می توان با استفاده از هر ساختار حلقه ای که توسط عملگر null دنبال می شود پیاده سازی کرد - "؛ مانند استفاده از حلقه های while یا do -while.

هشدارها

  • این روش به طور کلی برای هر چیزی غیر از برنامه بی اهمیت بی فایده است. به طور کلی ، از تایمرها یا رویکرد رویداد محور برای انجام این کار استفاده کنید. در غیر این صورت ، برنامه در زمان تاخیر واکنش نشان نمی دهد و این همیشه چیز خوبی نیست. همچنین ، انتخاب N در یک حلقه ، اگر به اجرای دستورات بستگی دارد ، می تواند نتایج غیر منتظره ای داشته باشد. ظاهراً نویسنده اصلی هرگز در مورد یک کامپایلر بهینه سازی نشنیده است ... اگر در واقع کاری انجام ندهد ، می تواند یک حلقه کامل را بهینه کند!
  • توجه داشته باشید که هنگام استفاده از روش "for-loop" ، ممکن است فاصله بسیار زیادی برای i لازم باشد ، زیرا یک عبارت خالی بسیار سریع است. چنین اعداد بزرگی ممکن است در یک نوع صحیح قرار نگیرند.
  • اگر از for-loop استفاده می کنید ، کامپایلر می تواند کد را بهینه کند ، و چون حلقه هیچ کاری نمی کند ، آن را حذف کنید. هنگام استفاده از Delay () این اتفاق نمی افتد.