Perlu
Persekitaran pengaturcaraan PascalABC. NET atau PascalTurbo
Arahan
Langkah 1
Jadi, pertama, mari kita buka program. Mari buat fail baru dan tentukan pemalamnya. Dalam kes ini, kita memerlukan modul untuk bekerja dengan konsol - CRT.
untuk ini kami akan menulis:
kegunaan
CRT;
Langkah 2
Mari kita nyatakan pemboleh ubah i, s, m - pemboleh ubah dari jenis sebenar.
var
i, s, m: Nyata;
Langkah 3
Untuk memulakan program, tulis:
bermula
Dan kami akan menunjukkan tajuk tetingkap konsol:
SetWindowTitle ('Jam randik');
Langkah 4
Prosedur TextColor memberikan warna pada teks, dan pernyataan Tulis memaparkan teks ke skrin:
TextColor (LightGreen);
WriteLn ('Tekan Enter untuk memulakan jam randik');
WriteLn ('Tekan sekali lagi untuk berhenti');
Tulis ('Klik lagi untuk memulakan semula');
Ln akhir akan bergerak ke baris seterusnya.
Langkah 5
Pengendali ReadLn memasukkan nilai dari papan kekunci, tetapi dalam kes ini hanya menunggu pengguna menekan Enter:
BacaLn;
Langkah 6
Kami membuat gelung tanpa henti:
sementara (benar) lakukan
bermula
The while (true) do konstruk diterjemahkan sebagai: While (condition) do (). Mengapa bermula di sini?
Dalam kes ini, kita memerlukan pengendali kompaun, yang bermaksud bahawa walaupun keadaannya benar, beberapa pengendali dijalankan. Sekiranya tidak untuk permulaan, maka setelah Sementara, hanya satu pernyataan yang dilaksanakan, yang akan menyebabkan operasi program tidak betul. Untuk mengakhiri pernyataan Sementara di akhir, kami menulis akhir.
Langkah 7
Sekarang mari kita tetapkan semula kaunter:
i: = 0;
Langkah 8
Pernyataan berikut diterjemahkan sebagai: sehingga kekunci do () ditekan.
sementara tidak tekan kekunci
bermula
Operator ClrScr membersihkan skrin:
ClrScr;
Langkah 9
Kami menetapkan syarat: jika detik lebih dari 60 dan kurang dari 3600 (ini diperlukan sehingga apabila waktunya lebih dari satu jam, program hanya mencetak apa yang ada setelah yang ketiga jika) kemudian:
jika (i> 60) dan (i <3600) maka mulakan
Pemboleh ubah m (minit) sama dengan: saat dibahagi dengan 60 dan dibundarkan ke depan.
m: = Int (i / 60);
Dan pemboleh ubah s (saat tanpa minit) sama dengan: semua detik tolak minit dikalikan dengan 60.
s: = i - m * 60;
Langkah 10
Pernyataan Tulis menulis berapa minit dan saat yang berlalu, dan pernyataan akhir mengakhiri kerja permulaan mengikuti keadaan if:
Tuliskan (m, 'minit) dan', s: 1: 2, 'saat' ')
akhir;
Fungsi: 1: 2 bermaksud detik harus ditulis dengan dua tempat perpuluhan.
Langkah 11
Sekiranya detik kurang dari 60, maka tuliskan berapa saat yang berlalu dengan dua tempat perpuluhan:
jika saya <60 maka
Tulis ('', i: 1: 2, 'saat (a / s)');
Langkah 12
Sekiranya detik melebihi 3600 (iaitu lebih dari satu jam) maka:
jika saya> 3600 maka mulakan
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Tuliskan (ch, 'jam), m,' minit dan ', s: 1: 2,' saat '');
akhir;
Langkah 13
Oleh itu, program ini menulis bahawa 0 saat telah berlalu, sekarang ini meningkatkan kaunter i sebanyak 10 milisaat, dan kerana program ini melakukan semuanya dengan serta-merta, kami membuat penangguhan untuk masa yang sama:
i: = i + 0.01;
Kelewatan (10);
Seterusnya, kami mengakhiri pernyataan Sementara (tidak ditekan kekunci):
akhir;
Sekiranya pengguna menekan kekunci Enter, maka program menunggu dia menekannya lagi untuk memulakan jam randik lagi:
Readln;
Readln;
Bukan kebetulan bahawa kita menetapkan penghitung menjadi sifar setelah pernyataan Sementara (benar), kerana apabila pengguna menekan Enter untuk kali kedua, program akan bermula dari sana, mengatur semula penghitung dan mula mengira lagi.
Seterusnya, kami mengakhiri Sementara dan untuk keseluruhan program:
akhir;
Langkah 14
Berikut adalah program lengkap:
kegunaan
CRT;
var
i: Nyata;
s: Sebenar;
m: Sebenar;
ch: Sebenar;
bermula
SetWindowTitle ('Jam randik');
TextColor (LightGreen);
WriteLn ('Tekan Enter untuk memulakan jam randik');
WriteLn ('Tekan sekali lagi untuk berhenti');
Tulis ('Klik lagi untuk memulakan semula');
BacaLn;
sementara (benar) lakukan
bermula
i: = 0;
sementara tidak tekan kekunci
bermula
ClrScr;
jika (i> 60) dan (i <3600) maka mulakan
m: = Int (i / 60);
s: = i - m * 60;
Tulis (m, 'minit) dan', s: 1: 2, 'saat' ')
akhir;
jika saya <60 maka
Tulis ('', i: 1: 2, 'saat (a / s)');
jika saya> 3600 maka mulakan
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Tuliskan (ch, 'jam), m,' minit dan ', s: 1: 2,' saat '');
akhir;
i: = i + 0.01;
Kelewatan (10);
akhir;
Readln;
Readln;
akhir;
akhir.
Langkah 15
Ternyata tidak begitu bagus, tetapi program ini berjalan dengan betul!