Diperlukan
Lingkungan pemrograman PascalABC. NET atau PascalTurbo
instruksi
Langkah 1
Jadi, pertama, mari kita buka programnya. Mari buat file baru dan tentukan plugin. Dalam hal ini, kita memerlukan modul untuk bekerja dengan konsol - CRT.
untuk ini kami akan menulis:
menggunakan
CRT;
Langkah 2
Mari kita tunjukkan variabel i, s, m - variabel tipe nyata.
var
i, s, m: Nyata;
Langkah 3
Untuk memulai program, tulis:
mulai
Dan kami akan menunjukkan judul jendela konsol:
SetWindowTitle('Stopwatch');
Langkah 4
Prosedur TextColor memberikan warna pada teks, dan pernyataan Write menampilkan teks ke layar:
Warna Teks (Hijau Muda);
WriteLn('Tekan Enter untuk memulai stopwatch');
WriteLn('Tekan lagi untuk berhenti');
Write('Klik lagi untuk memulai kembali');
Ln akhir pindah ke baris berikutnya.
Langkah 5
Operator ReadLn memasukkan nilai dari keyboard, tetapi dalam hal ini hanya menunggu pengguna untuk menekan Enter:
BacaLn;
Langkah 6
Kami membuat loop tanpa akhir:
sementara (benar) lakukan
mulai
Konstruk while (true) do begin diterjemahkan sebagai: While (kondisi) do (). Mengapa dimulai di sini?
Dalam hal ini, kita membutuhkan operator gabungan, yang berarti bahwa selama kondisi benar, beberapa operator dieksekusi. Jika bukan untuk memulai, maka setelah While, hanya satu pernyataan yang dieksekusi, yang akan menyebabkan operasi program yang salah. Untuk mengakhiri pernyataan While di akhir, kita tulis end.
Langkah 7
Sekarang mari kita setel ulang penghitung:
saya: = 0;
Langkah 8
Pernyataan berikut diterjemahkan sebagai: sampai tombol do () ditekan.
saat tidak menekan tombol lakukan
mulai
Operator ClrScr membersihkan layar:
ClrScr;
Langkah 9
Kami mengatur kondisi: jika detik lebih dari 60 dan kurang dari 3600 (ini diperlukan agar ketika waktunya lebih dari satu jam, program hanya mencetak apa setelah yang ketiga jika) maka:
jika (i> 60) dan (i <3600) maka mulai
Variabel m (menit) sama dengan: detik dibagi 60 dan dibulatkan ke depan.
m: = Int (i / 60);
Dan variabel s (detik tanpa menit) sama dengan: semua detik dikurangi menit dikalikan 60.
s: = i - m * 60;
Langkah 10
Pernyataan Write menulis berapa menit dan detik telah berlalu, dan pernyataan akhir mengakhiri pekerjaan awal mengikuti kondisi if:
Tulis (m, 'menit (s) dan', s: 1: 2, 'detik (s)')
akhir;
Fungsi: 1: 2 berarti detik harus ditulis dengan dua tempat desimal.
Langkah 11
Jika detiknya kurang dari 60, maka tulis saja berapa detik yang telah berlalu dengan dua tempat desimal:
jika saya <60 maka
Tulis ('', i: 1: 2, 'detik (a / s)');
Langkah 12
Jika detik lebih dari 3600 (yaitu, lebih dari satu jam) maka:
jika i> 3600 maka mulailah
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Tulis (ch, 'jam (s)', m, 'menit (s) dan', s: 1: 2, 'detik (s)');
akhir;
Langkah 13
Jadi, program menulis bahwa 0 detik telah berlalu, sekarang ia meningkatkan penghitung i sebesar 10 milidetik, dan karena program melakukan semuanya secara instan, kami membuat penundaan untuk waktu yang sama:
i: = i + 0,01;
Penundaan (10);
Selanjutnya, kita akhiri pernyataan While (tidak ditekan):
akhir;
Jika pengguna menekan tombol Enter, maka program menunggunya untuk menekannya lagi untuk memulai stopwatch lagi:
Baca;
Baca;
Bukan suatu kebetulan bahwa kita mengatur penghitung ke nol setelah pernyataan Sementara (benar), karena ketika pengguna menekan Enter untuk kedua kalinya, program akan mulai dari sana, mengatur ulang penghitung dan mulai menghitung lagi.
Selanjutnya, kita akhiri While dan untuk keseluruhan program:
akhir;
Langkah 14
Berikut program lengkapnya:
menggunakan
CRT;
var
saya: Nyata;
s: Nyata;
m: Nyata;
ch: Nyata;
mulai
SetWindowTitle('Stopwatch');
Warna Teks (Hijau Muda);
WriteLn('Tekan Enter untuk memulai stopwatch');
WriteLn('Tekan lagi untuk berhenti');
Write('Klik lagi untuk memulai kembali');
BacaLn;
sementara (benar) lakukan
mulai
saya: = 0;
saat tidak menekan tombol lakukan
mulai
ClrScr;
jika (i> 60) dan (i <3600) maka mulailah
m: = Int (i / 60);
s: = i - m * 60;
Tulis (m, 'menit (s) dan', s: 1: 2, 'detik (s)')
akhir;
jika saya <60 maka
Tulis ('', i: 1: 2, 'detik (a / s)');
jika i> 3600 maka mulailah
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Tulis (ch, 'jam (s)', m, 'menit (s) dan', s: 1: 2, 'detik (s)');
akhir;
i: = i + 0,01;
Penundaan (10);
akhir;
Baca;
Baca;
akhir;
akhir.
Langkah 15
Ternyata tidak terlalu bagus, tetapi programnya berfungsi dengan benar!