Kailangan
PascalABC. NET o PascalTurbo na programa sa kapaligiran
Panuto
Hakbang 1
Kaya, una, buksan natin ang programa. Lumikha tayo ng isang bagong file at tukuyin ang mga plugin. Sa kasong ito, kailangan namin ng isang module para sa pagtatrabaho sa console - CRT.
para dito isusulat namin:
gumagamit
CRT;
Hakbang 2
Ipaalam sa amin na ipahiwatig ang mga variable na i, s, m - variable ng totoong uri.
var
i, s, m: Real;
Hakbang 3
Upang simulan ang programa, isulat ang:
magsimula
At isasaad namin ang pamagat ng window ng console:
SetWindowTitle ('Stopwatch');
Hakbang 4
Ang pamamaraan ng TextColor ay nagtatalaga ng isang kulay sa teksto, at ang pahayag na Sumulat ay nagpapakita ng teksto sa screen:
TextColor (LightGreen);
WritingLn ('Pindutin ang Enter upang simulan ang stopwatch');
WritingLn ('Pindutin muli upang ihinto');
Isulat ('I-click muli upang magsimula ulit');
Ang nagtatapos na Ln ay lilipat sa susunod na linya.
Hakbang 5
Ang operator ng ReadLn ay naglalagay ng mga halaga mula sa keyboard, ngunit sa kasong ito naghihintay lang ito para ma-hit ng gumagamit ang Enter:
ReadLn;
Hakbang 6
Gumagawa kami ng isang walang katapusang loop:
habang (totoo) gawin
magsimula
Ang habang (totoo) ay nagsisimulang bumuo ay isinasalin bilang: Habang (kondisyon) gawin (). Bakit nagsisimula dito?
Sa kasong ito, kailangan namin ng isang operator ng tambalan, na nangangahulugang habang totoo ang kundisyon, maraming mga operator ang naisakatuparan. Kung hindi dahil sa pagsisimula, pagkatapos pagkatapos ng Habang, isang pahayag lamang ang naisakatuparan, na hahantong sa maling operasyon ng programa. Upang wakasan ang pahayag na Habang sa huli, nagsusulat kami ng pagtatapos.
Hakbang 7
Ngayon ay i-reset natin ang counter:
i: = 0;
Hakbang 8
Ang sumusunod na pahayag ay isinalin bilang: hanggang sa pindutin ang do () key.
habang hindi keypressed gawin
magsimula
Inaalis ng operator ng ClrScr ang screen:
ClrScr;
Hakbang 9
Itinakda namin ang kundisyon: kung ang mga segundo ay higit sa 60 at mas mababa sa 3600 (kinakailangan ito upang kapag ang oras ay higit sa isang oras, i-print lamang ng programa kung ano ang pagkatapos ng pangatlo kung) pagkatapos:
kung (i> 60) at (i <3600) pagkatapos magsimula
Ang variable m (minuto) ay katumbas ng: segundo na hinati ng 60 at bilugan sa harap.
m: = Int (i / 60);
At ang variable s (segundo na walang minuto) ay katumbas ng: lahat ng mga segundo minus minuto na multiply ng 60.
s: = i - m * 60;
Hakbang 10
Sinusulat ng pahayag na Sumulat kung ilang minuto at segundo ang lumipas, at ang wakas na pahayag ay nagtatapos sa gawain ng simula na sumusunod sa kung kundisyon:
Isulat ang (m, 'minuto (s) at', s: 1: 2, 'segundo (s)')
wakas;
Pag-andar: Ang 1: 2 ay nangangahulugang ang mga segundo ay dapat na nakasulat na may dalawang decimal na lugar.
Hakbang 11
Kung ang segundo ay mas mababa sa 60, pagkatapos ay isulat lamang kung ilang segundo ang lumipas na may dalawang decimal na lugar:
kung ako <60 noon
Isulat ('', i: 1: 2, 'segundo (a / s)');
Hakbang 12
Kung ang mga segundo ay higit sa 3600 (iyon ay, higit sa isang oras) pagkatapos:
kung ako> 3600 pagkatapos ay magsimula
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Isulat ang (ch, 'hour (s)', m, 'minuto (s) at', s: 1: 2, 'segundo (s)');
wakas;
Hakbang 13
Kaya, nagsulat ang programa na 0 segundo na ang lumipas, ngayon pinapataas nito ang counter i ng 10 milliseconds, at dahil agad na ginagawa ng programa ang lahat, gumawa kami ng pagkaantala para sa parehong oras:
i: = i + 0.01;
Pagkaantala (10);
Susunod, tinatapos namin ang pahayag para sa Habang (hindi keypressed):
wakas;
Kung pinindot ng gumagamit ang Enter key, naghihintay ang programa para sa kanya na ulit itong pindutin upang muling simulan ang stopwatch:
Readln;
Readln;
Hindi sinasadya na itinakda namin ang counter sa zero pagkatapos ng pahayag na Habang (totoo), dahil kapag pinindot ng gumagamit ang Ipasok sa isang pangalawang pagkakataon, magsisimula ang programa mula doon, i-reset ang counter at magsimulang muling bilangin.
Susunod, tinatapos namin ang Habang at para sa buong programa:
wakas;
Hakbang 14
Narito ang kumpletong programa:
gumagamit
CRT;
var
i: Totoo;
s: Totoo;
m: Totoo;
ch: Totoo;
magsimula
SetWindowTitle ('Stopwatch');
TextColor (LightGreen);
WritingLn ('Pindutin ang Enter upang simulan ang stopwatch');
WritingLn ('Pindutin muli upang ihinto');
Isulat ('I-click muli upang magsimula ulit');
ReadLn;
habang (totoo) gawin
magsimula
i: = 0;
habang hindi keypressed gawin
magsimula
ClrScr;
kung (i> 60) at (i <3600) pagkatapos magsimula
m: = Int (i / 60);
s: = i - m * 60;
Isulat ang (m, 'minuto (s) at', s: 1: 2, 'segundo (s)')
wakas;
kung ako <60 noon
Isulat ('', i: 1: 2, 'segundo (a / s)');
kung ako> 3600 pagkatapos ay magsimula
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Isulat ang (ch, 'hour (s)', m, 'minuto (s) at', s: 1: 2, 'segundo (s)');
wakas;
i: = i + 0.01;
Pagkaantala (10);
wakas;
Readln;
Readln;
wakas;
magtapos
Hakbang 15
Ito ay naging hindi masyadong maganda, ngunit ang programa ay gumagana nang tama!