Gerekli
PascalABC. NET veya PascalTurbo programlama ortamı
Talimatlar
Aşama 1
O halde önce programı açalım. Yeni bir dosya oluşturalım ve eklentileri belirtelim. Bu durumda, konsolla çalışmak için bir modüle ihtiyacımız var - CRT.
bunun için yazacağız:
kullanır
CRT;
Adım 2
Gerçek türün değişkenlerini i, s, m - değişkenlerini belirtelim.
var
i, s, m: Gerçek;
Aşama 3
Programı başlatmak için şunu yazın:
başlamak
Ve konsol penceresinin başlığını belirteceğiz:
SetWindowTitle ('Kronometre');
4. Adım
TextColor prosedürü metne bir renk atar ve Write deyimi metni ekrana görüntüler:
TextColor (AçıkYeşil);
WriteLn ('Kronometreyi başlatmak için Enter'a basın');
WriteLn ('Durdurmak için tekrar basın');
Write ('Yeniden başlamak için tekrar tıklayın');
Bitiş Ln sonraki satıra geçer.
Adım 5
ReadLn operatörü klavyeden değerleri girer ancak bu durumda sadece kullanıcının Enter'a basmasını bekler:
ReadLn;
6. Adım
Sonsuz bir döngü yapıyoruz:
(doğru) yaparken
başlamak
while (true) do start yapısı şu şekilde çevrilir: while (koşul) do (). Neden burada başlıyor?
Bu durumda, bir bileşik operatöre ihtiyacımız var; bu, koşul doğruyken birkaç operatörün yürütüldüğü anlamına gelir. Başlangıç için değilse, while'dan sonra yalnızca bir ifade yürütüldü ve bu da yanlış program çalışmasına yol açacaktı. En sonunda while ifadesini bitirmek için end yazıyoruz.
7. Adım
Şimdi sayacı sıfırlayalım:
ben: = 0;
8. Adım
Aşağıdaki ifade şu şekilde çevrilir: do () tuşuna basılana kadar.
tuşa basılmazken yap
başlamak
ClrScr operatörü ekranı temizler:
ClrScr;
9. Adım
Koşulu belirledik: saniyeler 60'tan fazla ve 3600'den azsa (bu, süre bir saatten fazla olduğunda, programın yalnızca üçüncüden sonra olanı yazdırabilmesi için gereklidir):
eğer (i> 60) ve (i <3600) o zaman başla
m (dakika) değişkeni şuna eşittir: saniye bölü 60 ve öne yuvarlanır.
m: = Int (i / 60);
Ve s değişkeni (dakika olmadan saniye) eşittir: tüm saniyeler eksi dakikalar çarpı 60.
s: = ben - m * 60;
Adım 10
Write deyimi, kaç dakika ve saniye geçtiğini yazar ve end deyimi, if koşulunun ardından startın çalışmasını bitirir:
Yaz (m, 'dakika(lar) ve', s: 1: 2, 'saniye(s)')
son;
İşlev: 1: 2, saniyenin iki ondalık basamakla yazılması gerektiği anlamına gelir.
11. Adım
Saniyeler 60'tan küçükse, iki ondalık basamakla kaç saniye geçtiğini yazmanız yeterlidir:
eğer ben <60 o zaman
Yaz ('', i: 1: 2, 'saniye (a/s)');
Adım 1/2
Saniye 3600'den fazlaysa (yani bir saatten fazlaysa):
eğer i> 3600 ise başla
m: = Int (i / 60);
s: = ben - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
(ch, 'saat(ler)', m, 'dakika(lar) ve', s: 1: 2, 'saniye(ler)');
son;
Adım 13
Yani program 0 saniyenin geçtiğini yazdı, şimdi i sayacını 10 milisaniye artırıyor ve program her şeyi anında yaptığı için aynı süre için bir gecikme yapıyoruz:
ben: = ben + 0.01;
Gecikme (10);
Ardından, while (tuşa basılmamış) ifadesinin sonunu getiriyoruz:
son;
Kullanıcı Enter tuşuna basarsa program, kronometreyi yeniden başlatmak için tekrar basmasını bekler:
Readln;
Readln;
While (true) deyiminden sonra sayacı sıfırlamış olmamız tesadüf değildir çünkü kullanıcı ikinci kez Enter'a bastığında program oradan başlayacak, sayacı sıfırlayacak ve tekrar saymaya başlayacaktır.
Ardından, while ve tüm program için sonlandırıyoruz:
son;
Adım 14
İşte tam program:
kullanır
CRT;
var
ben: gerçek;
s: Gerçek;
m: Gerçek;
ch: Gerçek;
başlamak
SetWindowTitle ('Kronometre');
TextColor (AçıkYeşil);
WriteLn ('Kronometreyi başlatmak için Enter'a basın');
WriteLn ('Durdurmak için tekrar basın');
Write ('Yeniden başlamak için tekrar tıklayın');
ReadLn;
(doğru) yaparken
başlamak
ben: = 0;
tuşa basılmazken yap
başlamak
ClrScr;
eğer (i> 60) ve (i <3600) o zaman başla
m: = Int (i / 60);
s: = ben - m * 60;
Yaz (m, 'dakika(lar) ve', s: 1: 2, 'saniye(s)')
son;
eğer ben <60 o zaman
Yaz ('', i: 1: 2, 'saniye (a/s)');
eğer i> 3600 ise başla
m: = Int (i / 60);
s: = ben - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
(ch, 'saat(ler)', m, 'dakika(lar) ve', s: 1: 2, 'saniye(s)');
son;
ben: = ben + 0.01;
Gecikme (10);
son;
Readln;
Readln;
son;
son.
Adım 15
Çok hoş olmadığı ortaya çıktı, ancak program doğru çalışıyor!