Cần thiết
PascalABC. NET hoặc môi trường lập trình PascalTurbo
Hướng dẫn
Bước 1
Vì vậy, trước tiên, chúng ta hãy mở chương trình. Hãy tạo một tệp mới và chỉ định các plugin. Trong trường hợp này, chúng ta cần một mô-đun để làm việc với bảng điều khiển - CRT.
cho điều này, chúng tôi sẽ viết:
sử dụng
CRT;
Bước 2
Hãy cho biết các biến i, s, m - các biến kiểu thực.
var
i, s, m: Real;
Bước 3
Để bắt đầu chương trình, hãy viết:
bắt đầu
Và chúng tôi sẽ chỉ ra tiêu đề của cửa sổ giao diện điều khiển:
SetWindowTitle ('Đồng hồ bấm giờ');
Bước 4
Thủ tục TextColor gán màu cho văn bản và câu lệnh Write hiển thị văn bản ra màn hình:
Màu văn bản (LightGreen);
WriteLn ('Nhấn Enter để bắt đầu đồng hồ bấm giờ');
WriteLn ('Bấm lại để dừng');
Write ('Nhấp lại để bắt đầu lại');
Ln kết thúc chuyển sang dòng tiếp theo.
Bước 5
Toán tử ReadLn nhập các giá trị từ bàn phím, nhưng trong trường hợp này, nó chỉ đợi người dùng nhấn Enter:
ReadLn;
Bước 6
Chúng tôi tạo ra một vòng lặp vô tận:
trong khi (đúng) làm
bắt đầu
Hàm while (true) do begin dịch ra là: Trong khi (điều kiện) do (). Tại sao lại bắt đầu ở đây?
Trong trường hợp này, chúng ta cần một toán tử ghép, có nghĩa là trong khi điều kiện là đúng, một số toán tử được thực thi. Nếu nó không phải là begin, thì sau While, chỉ một câu lệnh được thực thi, điều này sẽ dẫn đến hoạt động chương trình không chính xác. Để kết thúc câu lệnh While ở cuối, chúng ta viết end.
Bước 7
Bây giờ hãy đặt lại bộ đếm:
i: = 0;
Bước 8
Câu lệnh sau được dịch là: cho đến khi phím do () được nhấn.
trong khi không nhấn phím làm gì
bắt đầu
Toán tử ClrScr xóa màn hình:
ClrScr;
Bước 9
Chúng tôi đặt điều kiện: nếu giây nhiều hơn 60 và nhỏ hơn 3600 (điều này là cần thiết để khi thời gian hơn một giờ, chương trình chỉ in những gì sau if thứ ba) thì:
nếu (i> 60) và (i <3600) thì bắt đầu
Biến m (phút) bằng: giây chia cho 60 và làm tròn ra phía trước.
m: = Int (i / 60);
Và biến s (giây không tính phút) bằng: tất cả giây trừ đi phút nhân với 60.
s: = i - m * 60;
Bước 10
Câu lệnh Write viết bao nhiêu phút và giây đã trôi qua và câu lệnh end kết thúc công việc của begin theo điều kiện if:
Viết (m, 'phút (s) và', s: 1: 2, 'giây (s)')
chấm dứt;
Hàm: 1: 2 có nghĩa là giây phải được viết với hai chữ số thập phân.
Bước 11
Nếu giây nhỏ hơn 60, thì chỉ cần viết bao nhiêu giây đã trôi qua với hai chữ số thập phân:
nếu tôi <60 thì
Write ('', i: 1: 2, 'seconds (a / s)');
Bước 12
Nếu giây nhiều hơn 3600 (tức là hơn một giờ) thì:
nếu tôi> 3600 thì bắt đầu
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Write (ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
chấm dứt;
Bước 13
Vì vậy, chương trình đã viết rằng 0 giây đã trôi qua, bây giờ nó tăng bộ đếm i lên 10 mili giây và vì chương trình thực hiện mọi thứ ngay lập tức, chúng tôi thực hiện một thời gian trễ như sau:
i: = i + 0,01;
Chậm trễ (10);
Tiếp theo, chúng ta kết thúc câu lệnh While (không nhấn phím):
chấm dứt;
Nếu người dùng nhấn phím Enter, thì chương trình sẽ đợi anh ta nhấn lại để khởi động lại đồng hồ bấm giờ:
Readln;
Readln;
Không phải ngẫu nhiên mà chúng ta đặt bộ đếm về 0 sau câu lệnh While (true), vì khi người dùng nhấn Enter lần thứ hai, chương trình sẽ bắt đầu từ đó, đặt lại bộ đếm và bắt đầu đếm lại.
Tiếp theo, chúng tôi kết thúc While và cho toàn bộ chương trình:
chấm dứt;
Bước 14
Đây là chương trình hoàn chỉnh:
sử dụng
CRT;
var
tôi thật;
s: Thực;
m: Thực;
ch: Thực;
bắt đầu
SetWindowTitle ('Đồng hồ bấm giờ');
Màu văn bản (LightGreen);
WriteLn ('Nhấn Enter để bắt đầu đồng hồ bấm giờ');
WriteLn ('Bấm lại để dừng');
Write ('Bấm lại để bắt đầu lại');
ReadLn;
trong khi (đúng) làm
bắt đầu
i: = 0;
trong khi không nhấn phím làm gì
bắt đầu
ClrScr;
nếu (i> 60) và (i <3600) thì bắt đầu
m: = Int (i / 60);
s: = i - m * 60;
Viết (m, 'phút (s) và', s: 1: 2, 'giây (s)')
chấm dứt;
nếu tôi <60 thì
Write ('', i: 1: 2, 'seconds (a / s)');
nếu tôi> 3600 thì bắt đầu
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Write (ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)');
chấm dứt;
i: = i + 0,01;
Chậm trễ (10);
chấm dứt;
Readln;
Readln;
chấm dứt;
chấm dứt.
Bước 15
Hóa ra nó không đẹp lắm, nhưng chương trình hoạt động chính xác!