Muhimu
PascalABC. NET au mazingira ya programu ya PascalTurbo
Maagizo
Hatua ya 1
Kwa hivyo, kwanza, wacha tufungue programu. Wacha tuunde faili mpya na taja programu-jalizi. Katika kesi hii, tunahitaji moduli ya kufanya kazi na koni - CRT.
kwa hili tutaandika:
hutumia
CRT;
Hatua ya 2
Wacha tuonyeshe anuwai za i, s, m - vigeuzi vya aina halisi.
var
i, s, m: Halisi;
Hatua ya 3
Kuanza programu, andika:
anza
Na tutaonyesha kichwa cha kidirisha cha dashibodi:
SetWindowTitle ('Stopwatch');
Hatua ya 4
Utaratibu wa TextColor unatoa rangi kwa maandishi, na taarifa ya Andika inaonyesha maandishi kwenye skrini:
NakalaColor (LightGreen);
AndikaLn ('Bonyeza Enter ili kuanza saa ya saa');
AndikaLn ('Bonyeza tena kuacha');
Andika ('Bonyeza tena kuanza upya');
Mwisho wa Ln huenda kwa mstari unaofuata.
Hatua ya 5
Operesheni ya ReadLn inaingiza maadili kutoka kwa kibodi, lakini katika kesi hii inasubiri tu mtumiaji kugonga Enter:
SomaLn;
Hatua ya 6
Tunafanya kitanzi kisicho na mwisho:
wakati (kweli) fanya
anza
Wakati (kweli) huanza kujenga kutafsiri kama: Wakati (hali) fanya (). Kwa nini kuanza hapa?
Katika kesi hii, tunahitaji mwendeshaji wa kiwanja, ambayo inamaanisha kuwa wakati hali ni kweli, waendeshaji kadhaa hutekelezwa. Ikiwa haingekuwa ya kuanza, basi baada ya Wakati huo, taarifa moja tu ilitekelezwa, ambayo ingeweza kusababisha operesheni isiyo sahihi ya programu. Kukamilisha taarifa ya Wakati mwishoni, tunaandika mwisho.
Hatua ya 7
Sasa wacha tuweke upya kaunta:
i: = 0;
Hatua ya 8
Taarifa ifuatayo inatafsiriwa kama: mpaka kitufe cha kufanya () kibonye.
wakati haijasisitizwa fanya
anza
Operesheni ya ClrScr inafuta skrini:
ClrScr;
Hatua ya 9
Tunaweka sharti: ikiwa sekunde ni zaidi ya 60 na chini ya 3600 (hii ni muhimu ili wakati ni zaidi ya saa, mpango unachapisha tu kile kinachofuata baada ya tatu ikiwa) basi:
ikiwa (i> 60) na (i <3600) kisha anza
M (dakika) inayobadilika ni sawa na: sekunde zilizogawanywa na 60 na kuzungushwa mbele.
m: = Int (i / 60);
Na s zinazobadilika (sekunde bila dakika) ni sawa na: sekunde zote minus dakika kuzidishwa na 60.
s: = i - m * 60;
Hatua ya 10
Taarifa ya Andika inaandika ni dakika ngapi na sekunde zimepita, na taarifa ya mwisho inamaliza kazi ya kuanza kufuata hali ikiwa:
Andika (m, 'dakika (na) na', s: 1: 2, 'sekunde (s)')
mwisho;
Kazi: 1: 2 inamaanisha kuwa sekunde zinapaswa kuandikwa na sehemu mbili za desimali.
Hatua ya 11
Ikiwa sekunde ni chini ya 60, basi andika tu sekunde ngapi zimepita na sehemu mbili za decimal:
ikiwa i <60 basi
Andika ( , i: 1: 2, 'sekunde (a / s)');
Hatua ya 12
Ikiwa sekunde ni zaidi ya 3600 (ambayo ni zaidi ya saa) basi:
ikiwa i> 3600 basi anza
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Andika (ch, 'saa (s)', m, 'dakika (na) na', s: 1: 2, 'sekunde (s)');
mwisho;
Hatua ya 13
Kwa hivyo, programu hiyo iliandika kwamba sekunde 0 zimepita, sasa inaongeza kaunta i kwa millisecond 10, na kwa kuwa programu hufanya kila kitu mara moja, tunachelewesha kwa wakati mmoja:
i: = i + 0.01;
Kuchelewa (10);
Ifuatayo, tunamaliza mwisho wa taarifa ya Wakati (bila kushinikizwa):
mwisho;
Ikiwa mtumiaji akabonyeza kitufe cha Ingiza, basi mpango unamsubiri aibonyeze tena ili kuanza saa ya kusimama tena:
Readln;
Readln;
Sio bahati mbaya kwamba tunaweka kaunta hadi sifuri baada ya taarifa ya Wakati (kweli), kwa sababu wakati mtumiaji anashinikiza Ingiza mara ya pili, programu itaanza kutoka hapo, kuweka upya kaunta na kuanza kuhesabu tena.
Ifuatayo, tunamaliza kipindi na kwa mpango mzima:
mwisho;
Hatua ya 14
Hapa kuna mpango kamili:
hutumia
CRT;
var
i: Halisi;
s: Halisi;
m: Halisi;
ch: Halisi;
anza
SetWindowTitle ('Stopwatch');
NakalaColor (LightGreen);
AndikaLn ('Bonyeza Enter ili kuanza saa ya saa');
AndikaLn ('Bonyeza tena kuacha');
Andika ('Bonyeza tena kuanza upya');
SomaLn;
wakati (kweli) fanya
anza
i: = 0;
wakati sio kubonyeza kufanya
anza
ClrScr;
ikiwa (i> 60) na (i <3600) kisha anza
m: = Int (i / 60);
s: = i - m * 60;
Andika (m, 'dakika (na) na', s: 1: 2, 'sekunde (s)')
mwisho;
ikiwa i <60 basi
Andika ( , i: 1: 2, 'sekunde (a / s)');
ikiwa i> 3600 basi anza
m: = Int (i / 60);
s: = i - m * 60;
ch: = Int (m / 60);
m: = m - ch * 60;
Andika (ch, 'saa (s)', m, 'dakika (na) na', s: 1: 2, 'sekunde (s)');
mwisho;
i: = i + 0.01;
Kuchelewa (10);
mwisho;
Readln;
Readln;
mwisho;
mwisho.
Hatua ya 15
Haikuwa nzuri sana, lakini programu hiyo inafanya kazi kwa usahihi!