C'de program yürütmeyi geciktirme

Yazar: Joan Hall
Yaratılış Tarihi: 28 Şubat 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
Жекпот ⚡️Уйин 💥Бошланди 💣+7904 746 7777
Video: Жекпот ⚡️Уйин 💥Бошланди 💣+7904 746 7777

İçerik

Hiç belirli bir süre bekleyen bir C programı oluşturmak istediniz mi? Örneğin, oyun için bir açılır sayfa (bildirim veya ipucu) gösterirken "geçmek" zamanını verme şeklini özelleştirebilirsiniz. ... Tamam, işte "hareketsiz durma" programı oluşturmanın bazı yolları, okumaya devam edin ...

adımlar

  1. 1 İşlemcinizin gözlemlenebilir bir olaya neden olmadan bir süre çalışmasına izin verin.
  2. 2 Basit bir zaman gecikmesi oluşturmak için bu gecikme sırasında başka bir işlem yapmayın.

Yöntem 1/2: Döngü tekniği

  1. 1 Bir gecikme uygulamak için tipik bir "for" döngüsü ve ardından boş bir ifade kullanın.
  2. 2 Örneğin aşağıdaki gibi yazın:
    • için (i = 1; i100; ben ++);
    • Operatör ";" bilgisayarı fark edilir bir olay olmadan 100 kez döngü yapmaya zorlar. Sadece zaman gecikmesi yaratır.

Yöntem 2/2: "uyku ()" tekniği

  1. 1 uyku () kullanın. İşleve uyku (int ms) adı verilir ve TIME.H> içinde bildirilir ve bu, programın milisaniye cinsinden belirli bir süre beklemesini sağlar.
  2. 2 Aşağıdaki satırı programınıza int main()'den önce ekleyin:
    • #include TIME.H>
  3. 3 Programınızı geciktirmek için gerekli yerlere yapıştırın:
    • uyku (1000);
    • Beklemek istediğiniz milisaniye sayısını "1000" olarak değiştirin (örneğin, 2 saniyelik bir gecikme yapmak istiyorsanız, "2000" ile değiştirin.
    • İpucu: Bazı sistemlerde değer milisaniye yerine saniye olarak belirtilebilir. Bu nedenle bazen 1000 1 saniye değil, aslında 1000 saniyedir.

Basit kod

Belirli sayıda saniye bekleyen bir program:



#include stdio.h> #include dos.h> int main () {int del; // Gecikme süresi printf ("Gecikme süresini girin (saniye olarak):"); scanf ("% i",? del); del * = 1000; // Milisaniyeye dönüştürmek için 1000 ile çarpın Gecikme (del); // Gecikme. printf ("Bitti."); 0 döndür; }


10'dan 0'a geri sayan bir program:


#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Mevcut 'geri sayım' sayısını yaz Gecikme (1000); // Bir saniye bekleyin} 0 döndür; }

İpuçları

  • Milisaniye, saniyenin 1/1000'idir.
  • Yukarıdaki algoritma, while veya do-while döngüleri gibi null operatörü - "; tarafından takip edilen herhangi bir döngü yapısı kullanılarak uygulanabilir.

Uyarılar

  • Bu yöntem genellikle önemsiz bir program dışında herhangi bir şey için işe yaramaz. Genel olarak, bunu başarmak için zamanlayıcılar veya olaya dayalı bir yaklaşım kullanın. Aksi takdirde, program gecikme süresi boyunca yanıt vermez hale gelir ve bu her zaman iyi bir şey değildir. Ayrıca, bir döngüde N'yi seçmek, komutların yürütülmesine bağlıysa, beklenmedik sonuçlar doğurabilir. Görünüşe göre orijinal yazar bir optimizasyon derleyicisini hiç duymamış ... gerçekten hiçbir şey yapmazsa tüm döngüyü optimize edebilir!
  • "for-loop" yöntemini kullanırken, boş bir ifade çok hızlı olduğundan, i için çok büyük bir aralık gerektirebileceğini unutmayın. Böyle büyük sayılar bir tamsayı türüne sığmayabilir.
  • Bir for döngüsü kullanırsanız, derleyici kodu optimize edebilir ve döngü hiçbir şey yapmadığından onu kaldırın. Gecikme () kullanılırken bu olmaz.