كيفية تأخير تنفيذ البرنامج في سي

مؤلف: Joan Hall
تاريخ الخلق: 28 شهر فبراير 2021
تاريخ التحديث: 1 تموز 2024
Anonim
اسباب بطء او تاخر عمليه اقلاع او فتح الكمبيوتر وحلها بدون برامج
فيديو: اسباب بطء او تاخر عمليه اقلاع او فتح الكمبيوتر وحلها بدون برامج

المحتوى

هل سبق لك أن أردت إنشاء برنامج سي ينتظر فترة زمنية معينة؟ يمكنك تخصيص طريقة تحديد الوقت "سريعًا" ، على سبيل المثال: عند عرض صفحة منبثقة (إشعار أو تلميح) للعبة. ... حسنًا ، إليك بعض الطرق لإنشاء برنامج "لا يزال قائماً" ، تابع القراءة ...

خطوات

  1. 1 دع المعالج يعمل لفترة من الوقت دون التسبب في حدث يمكن ملاحظته.
  2. 2 لا تقم بإجراء أي عمليات أخرى أثناء هذا التأخير لإنشاء تأخير زمني بسيط.

طريقة 1 من 2: تقنية For-loop

  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" إلى عدد المللي ثانية الذي تريد انتظاره (على سبيل المثال ، إذا كنت تريد تأخير ثانيتين ، فاستبدله بـ "2000".
    • نصيحة: في بعض الأنظمة ، قد يتم تحديد القيمة بالثواني بدلاً من المللي ثانية. لذلك ، أحيانًا لا تكون 1000 ثانية واحدة ، ولكنها في الواقع 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 ().