![آموزش زبان برنامه نویسی C : جلسه یکم](https://i.ytimg.com/vi/JuhEYK6Fnr0/hqdefault.jpg)
محتوا
آیا تا به حال خواسته اید یک برنامه C ایجاد کنید که مدت زمان مشخصی منتظر بماند؟ به عنوان مثال: هنگام نمایش یک صفحه پاپ آپ (اعلان یا اشاره) برای بازی ، می توانید روش "زمان پرواز" را تنظیم کنید. ... خوب ، در اینجا چند روش برای ایجاد یک برنامه "ایستاده" وجود دارد ، در ادامه بخوانید ...
مراحل
1 اجازه دهید پردازنده شما برای مدتی بدون ایجاد یک رویداد قابل مشاهده کار کند.
2 برای ایجاد تاخیر زمانی ساده ، هیچ عملیات دیگری را در طول این تاخیر انجام ندهید.
روش 1 از 2: تکنیک حلقه
1 برای پیاده سازی تاخیر از یک حلقه معمولی "for" و به دنبال آن یک عبارت خالی استفاده کنید.
2 به عنوان مثال زیر بنویسید:
- برای (i = 1 ؛ i100 ؛ i ++) ؛
- اپراتور "" را دنبال می کند. کامپیوتر را مجبور می کند 100 بار بدون یک رویداد قابل توجه حلقه کند. این فقط یک تاخیر زمانی ایجاد می کند.
روش 2 از 2: تکنیک "خواب ()"
1 از خواب () استفاده کنید. این تابع sleep (int ms) نامیده می شود ، که در TIME.H> اعلام شده است ، که باعث می شود برنامه برای مدت زمان مشخصی در میلی ثانیه منتظر بماند.
2 قبل از int main () خط زیر را در برنامه خود قرار دهید:
- #شامل TIME.H>
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 () این اتفاق نمی افتد.