Як зробити програму-секундомір на паскалі
Вам знадобиться
- Середовище програмування PascalABC.NET або PascalTurbo.
Інструкція
для цього напишемо:
uses
CRT-
var
i, s, m: Real-
begin
І вкажемо заголовок консольного вікна:
SetWindowTitle ( `Секундомір`) -
TextColor (LightGreen) -
WriteLn ( `Натисніть Enter щоб запустити секундомір`) -
WriteLn ( `Натисніть повторно, щоб зупинити`) -
Write ( `Натисніть ще раз, щоб запустити заново`) -
Закінчення Ln здійснює перехід на наступний рядок.
ReadLn -
while (true) do
begin
Конструкція while (true) do begin перекладається як: Поки (умова) роби (). Питається навіщо тут begin?
В даному випадку нам потрібен складовою оператор, а це значить що поки умова істинна виконується кілька операторів. Якби тут не стояло begin то після While виконувався лише один оператор, що призвело б неправильної роботи програми. Щоб закінчити оператор While в кінці ми напишемо end.
i: = 0
while not keypressed do
begin
Оператор ClrScr очищає екран:
ClrScr-
if (i gt; 60) and (ilt; 3600) then begin
Мінлива m (хвилини) дорівнює: секунди поділені на 60 і округлені до Челою частини.
m: = Int (i / 60);
А змінна s (секунди без хвилин) дорівнює: все секунди мінус хвилини помножені на 60.
s: = i - m * 60
Write (m, `хвилин (а / ів) і`, s: 1: 2, "секунд (а / и) `)
end-
Функція: 1: 2 означає що секунди потрібно писати з двома знаками після знаками після коми.
if i lt; 60 then
Write ( ``, i: 1: 2, "секунд (а / и) `) -
if i gt; 3600 then begin
m: = Int (i / 60) -
s: = i - m * 60
ch: = Int (m / 60) -
m: = m - ch * 60
Write (ch, `годину (а / ів)`, m, `хвилин (а / и) і`, s: 1: 2, "секунд (а / и) `) -
end-
i: = i + 0.01-
Delay (10);
Далі робимо кінець для оператора While (not keypressed):
end-
Якщо користувач натиснув клавішу Enter, то програма чекає коли коли він знову її натисне, щоб запустити секундомір заново:
Readln -
Readln;
Не випадково ми поставили обнулення лічильника після оператора While (true), тому що коли користувач вдруге натисне Enter, програма піде якраз з нього, обнулить лічильник і почне відлік заново.
Далі робимо кінець для While і для всієї програми:
end-
uses
CRT;
var
i: Real-
s: Real-
m: Real-
ch: Real;
begin
SetWindowTitle ( `Секундомір`) -
TextColor (LightGreen) -
WriteLn ( `Натисніть Enter щоб запустити секундомір`) -
WriteLn ( `Натисніть повторно, щоб зупинити`) -
Write ( `Натисніть ще раз, щоб запустити заново`) -
ReadLn-
while (true) do
begin
i: = 0
while not keypressed do
begin
ClrScr-
if (i gt; 60) and (ilt; 3600) then begin
m: = Int (i / 60) -
s: = i - m * 60
Write (m, `хвилин (а / ів) і`, s: 1: 2, "секунд (а / и) `)
end-
if i lt; 60 then
Write ( ``, i: 1: 2, "секунд (а / и) `) -
if i gt; 3600 then begin
m: = Int (i / 60) -
s: = i - m * 60
ch: = Int (m / 60) -
m: = m - ch * 60
Write (ch, `годину (а / ів)`, m, `хвилин (а / и) і`, s: 1: 2, "секунд (а / и) `) -
end-
i: = i + 0.01-
Delay (10) -
end-
Readln-
Readln-
end-
end.