Необходимо
PascalABC. NET или PascalTurbo среда за програмиране
Инструкции
Етап 1
И така, първо, нека отворим програмата. Нека създадем нов файл и да посочим приставките. В този случай се нуждаем от модул за работа с конзолата - CRT.
за това ще напишем:
използва
CRT;
Стъпка 2
Нека посочим променливите i, s, m - променливи от реалния тип.
вар
i, s, m: Реално;
Стъпка 3
За да стартирате програмата, напишете:
започнете
И ще посочим заглавието на прозореца на конзолата:
SetWindowTitle ('Хронометър');
Стъпка 4
Процедурата TextColor присвоява цвят на текста и изразът Write записва текста на екрана:
TextColor (LightGreen);
WriteLn ('Натиснете Enter, за да стартирате хронометър');
WriteLn ('Натиснете отново, за да спрете');
Write ('Щракнете отново, за да започнете отначало');
Краят Ln се премества в следващия ред.
Стъпка 5
Операторът ReadLn въвежда стойности от клавиатурата, но в този случай просто чака потребителят да натисне Enter:
ReadLn;
Стъпка 6
Правим безкраен цикъл:
докато (вярно) правя
започнете
Конструкцията while (true) do begin се превежда като: While (условие) do (). Защо започва тук?
В този случай се нуждаем от сложен оператор, което означава, че докато условието е вярно, се изпълняват няколко оператора. Ако не беше за начало, тогава след докато беше изпълнен само един оператор, което би довело до неправилна работа на програмата. За да приключим изявлението While в края, пишем end.
Стъпка 7
Сега нека нулираме брояча:
i: = 0;
Стъпка 8
Следният израз се превежда като: докато не се натисне бутонът do ().
докато не са натиснати с клавиши
започнете
Операторът ClrScr изчиства екрана:
ClrScr;
Стъпка 9
Поставяме условието: ако секундите са повече от 60 и по-малко от 3600 (това е необходимо, така че когато времето е повече от час, програмата отпечатва само това, което е след третото, ако) тогава:
ако (i> 60) и (i <3600) след това започнете
Променливата m (минути) е равна на: секунди, разделени на 60 и закръглени отпред.
m: = Int (i / 60);
И променливата s (секунди без минути) е равна на: всички секунди минус минути, умножена по 60.
s: = i - m * 60;
Стъпка 10
Операторът Write записва колко минути и секунди са изминали и операторът end завършва работата на start след условието if:
Запис (m, 'минути (и) и', s: 1: 2, 'секунди (и)')
край;
Функция: 1: 2 означава, че секундите трябва да бъдат записани с два знака след десетичната запетая.
Стъпка 11
Ако секундите са по-малко от 60, просто напишете колко секунди са минали с два знака след десетичната запетая:
ако i <60 тогава
Write ('', i: 1: 2, 'секунди (a / s)');
Стъпка 12
Ако секундите са повече от 3600 (т.е. повече от час), тогава:
ако i> 3600, тогава започнете
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Напишете (ch, 'час (и)', m, 'минути (и) и', s: 1: 2, 'секунди (и)');
край;
Стъпка 13
И така, програмата пише, че са минали 0 секунди, сега тя увеличава брояча i с 10 милисекунди и тъй като програмата прави всичко мигновено, правим забавяне за същото време:
i: = i + 0,01;
Забавяне (10);
След това правим края на изявлението While (без натискане на клавиш):
край;
Ако потребителят е натиснал клавиша Enter, тогава програмата го чака да го натисне отново, за да стартира хронометъра отново:
Readln;
Readln;
Неслучайно задаваме брояча на нула след израза While (true), защото когато потребителят натисне Enter за втори път, програмата ще стартира от там, нулира брояча и ще започне да брои отново.
След това завършваме докато и за цялата програма:
край;
Стъпка 14
Ето пълната програма:
използва
CRT;
вар
i: Истински;
s: Реално;
m: Реално;
ch: Реално;
започнете
SetWindowTitle ('Хронометър');
TextColor (LightGreen);
WriteLn ('Натиснете Enter, за да стартирате хронометър');
WriteLn ('Натиснете отново, за да спрете');
Напишете ('Щракнете отново, за да започнете отначало');
ReadLn;
докато (вярно) правя
започнете
i: = 0;
докато не са натиснати с клавиши
започнете
ClrScr;
ако (i> 60) и (i <3600) след това започнете
m: = Int (i / 60);
s: = i - m * 60;
Запис (m, 'минути (и) и', s: 1: 2, 'секунди (и)')
край;
ако i <60 тогава
Write ('', i: 1: 2, 'секунди (a / s)');
ако i> 3600, тогава започнете
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Напишете (ch, 'час (и)', m, 'минути (и) и', s: 1: 2, 'секунди (и)');
край;
i: = i + 0,01;
Забавяне (10);
край;
Readln;
Readln;
край;
край.
Стъпка 15
Оказа се не много хубаво, но програмата работи коректно!