አስፈላጊ
PascalABC. NET ወይም PascalTurbo የፕሮግራም አከባቢ።
መመሪያዎች
ደረጃ 1
ስለዚህ በመጀመሪያ ፕሮግራሙን እንክፈት ፡፡ አዲስ ፋይል እንፍጠር እና ተሰኪዎቹን እንገልፃለን ፡፡ በዚህ አጋጣሚ ከኮንሶል - CRT ጋር ለመስራት ሞዱል እንፈልጋለን ፡፡
ለዚህ እንጽፋለን
ይጠቀማል
CRT;
ደረጃ 2
የእውነተኛውን ዓይነት አይ ፣ ኤስ ፣ ኤም - ተለዋዋጮችን እንመልከት።
እ.ኤ.አ.
እኔ ፣ s ፣ m እውነተኛ;
ደረጃ 3
ፕሮግራሙን ለመጀመር የሚከተለውን ይፃፉ
ጀምር
እናም የኮንሶል መስኮቱን ርዕስ እንጠቁማለን-
SetWindowTitle ('ሰዓት ቆጣሪ');
ደረጃ 4
የ “TextColor” አሠራር ለጽሑፉ አንድ ቀለም ይሰጠዋል ፣ እናም የፃፍ መግለጫ ጽሑፉን በማያ ገጹ ላይ ያሳያል
TextColor (LightGreen);
WritLn ('የእጅ ሰዓት ሰዓት ለመጀመር Enter ን ይጫኑ');
WritLn ('ለማቆም እንደገና ይጫኑ');
ፃፍ ('እንደገና ለመጀመር እንደገና ጠቅ ያድርጉ');
መጨረሻው Ln ወደ ቀጣዩ መስመር ይዛወራል።
ደረጃ 5
የ ‹ReadLn› ኦፕሬተር ከቁልፍ ሰሌዳው ውስጥ እሴቶችን ያስገባል ፣ ግን በዚህ ጊዜ ተጠቃሚው Enter ን እስኪመታ ድረስ ይጠብቃል ፡፡
አንብብ;
ደረጃ 6
ማለቂያ የሌለው ዑደት እንሰራለን
(እውነት) እያለ
ጀምር
ለጊዜው (እውነት) መገንባት ይጀምራል ትርጉሞች-እንደ (ሁኔታ) እንደሚያደርጉት () ፡፡ ለምን እዚህ ይጀምራል?
በዚህ ሁኔታ ፣ ድብልቅ ኦፕሬተር እንፈልጋለን ፣ ይህ ማለት ሁኔታው እውነት ቢሆንም ብዙ ኦፕሬተሮች ይገደላሉ ማለት ነው ፡፡ ለመጀመር ካልሆነ ፣ ከዚያ ከትንሽ ጊዜ በኋላ አንድ መግለጫ ብቻ ተፈጽሟል ፣ ይህም ወደ የተሳሳተ የፕሮግራም ሥራ ይመራል ፡፡ በመጨረሻ መግለጫውን ለማጠናቀቅ መጨረሻውን እንጽፋለን ፡፡
ደረጃ 7
አሁን ቆጣሪውን እንደገና እንጀምር
አይ: = 0;
ደረጃ 8
የሚከተለው መግለጫ የሚከተለው ይተረጎማል-የ ((ቁልፍ) ቁልፍ እስኪጫን ድረስ ፡፡
ቁልፍ አልተጫነም ግን አያደርግም
ጀምር
የ ClrScr ኦፕሬተር ማያ ገጹን ያጸዳል-
ክሊርሰርክ;
ደረጃ 9
ሁኔታውን እናዘጋጃለን-ሰኮንዶች ከ 60 እና ከ 3600 በታች ከሆኑ (ይህ አስፈላጊ ከሆነ ከአንድ ሰዓት በላይ በሚሆንበት ጊዜ ፕሮግራሙ የሚታተመው ከሶስተኛው በኋላ ያለውን ብቻ ከሆነ)
ከሆነ (i> 60) እና (i <3600) ከዚያ ይጀምሩ
ተለዋዋጭው m (ደቂቃዎች) እኩል ነው-ሰከንዶች በ 60 ተከፍለው ከፊት ለፊቱ ፡፡
m: = Int (i / 60);
እና ተለዋዋጭ s (ሰከንዶች ያለ ደቂቃዎች) እኩል ነው-ሁሉም ሰከንዶች ሲቀነሱ ደቂቃዎች በ 60 ተባዝተዋል ፡፡
s: = i - m * 60;
ደረጃ 10
የጽሑፍ መግለጫው ስንት ደቂቃዎች እና ሰከንዶች እንዳለፉ ይጽፋል ፣ የመጨረሻው መግለጫ ደግሞ የሚከተለውን ሁኔታ ተከትሎ የጅማሬውን ሥራ ያጠናቅቃል-
ፃፍ (m, 'minutes (s) and', s: 1: 2, 'seconds (s)')
መጨረሻ;
ተግባር 1 2 ማለት ሰከንዶች ከሁለት የአስርዮሽ ቦታዎች ጋር መፃፍ አለባቸው ማለት ነው ፡፡
ደረጃ 11
ሰኮንዶች ከ 60 ያነሱ ከሆኑ ከዚያ በኋላ ሁለት የአስርዮሽ ቦታዎችን ስንት ሰከንዶች እንዳላለፉ ብቻ ይፃፉ
ከሆነ i <60 ከዚያ
ፃፍ ('', i: 1: 2, 'seconds (a / s)');
ደረጃ 12
ሰኮንዶች ከ 3600 በላይ ከሆኑ (ማለትም ከአንድ ሰዓት በላይ ከሆነ)
ከሆነ i> 3600 ከዚያ ይጀምሩ
m: = Int (i / 60);
s: = i - m * 60;
ች: = Int (m / 60);
m: = m - ch * 60;
ፃፍ (ቻ ፣ 'ሰዓት (ሰ)) ፣ መ ፣ ‘ደቂቃ (ሰ) እና’ ፣: 1 2 ፣ ‘ሰከንድ (ቶች)’);
መጨረሻ;
ደረጃ 13
ስለዚህ ፕሮግራሙ 0 ሰከንዶች አልፈዋል ሲል ጽ wroteል ፣ አሁን ቆጣሪውን በ 10 ሚሊሰከንዶች ይጨምራል ፣ እና ፕሮግራሙ ሁሉንም ነገር በቅጽበት ስለሚያከናውን ፣ ለተመሳሳይ ጊዜ መዘግየት እናደርጋለን ፡፡
እኔ: = እኔ + 0.01;
መዘግየት (10);
በመቀጠልም ለጊዜው (ቁልፍ አልተጫነም) ለሚለው መግለጫ መጨረሻውን እናደርጋለን
መጨረሻ;
ተጠቃሚው የ “Enter” ቁልፍን ከተጫነ ፕሮግራሙን እንደገና ለማስጀመር ፕሮግራሙ እንደገና እስኪጫን ይጠብቀዋል-
Readln;
Readln;
ከእነዚያ (እውነተኛ) መግለጫ በኋላ ቆጣሪውን ወደ ዜሮ ማወራችን በአጋጣሚ አይደለም ፣ ምክንያቱም ተጠቃሚው ለሁለተኛ ጊዜ ያስገቡ የሚለውን ሲጫኑ ፕሮግራሙ ከዚያ ይጀምራል ፣ ቆጣሪውን እንደገና ያስጀምረዋል እና እንደገና መቁጠር ይጀምራል ፡፡
በመቀጠልም ለጊዜው እና ለጠቅላላው ፕሮግራም እንጨርሳለን
መጨረሻ;
ደረጃ 14
የተሟላ ፕሮግራም ይኸውልዎት
ይጠቀማል
CRT;
እ.ኤ.አ.
እኔ: እውነተኛ;
s: እውነተኛ;
መ: እውነተኛ;
ቸ እውነተኛ;
ጀምር
SetWindowTitle ('ሰዓት ቆጣሪ');
TextColor (LightGreen);
WritLn ('የእጅ ሰዓት ሰዓት ለመጀመር Enter ን ይጫኑ');
WritLn ('ለማቆም እንደገና ይጫኑ');
ፃፍ ('እንደገና ለመጀመር እንደገና ጠቅ ያድርጉ');
አንብብ;
(እውነት) እያለ
ጀምር
አይ: = 0;
ቁልፍ አልተጫነም ግን አያደርግም
ጀምር
ክሊርሰርክ;
ከሆነ (i> 60) እና (i <3600) ከዚያ ይጀምሩ
m: = Int (i / 60);
s: = i - m * 60;
ፃፍ (m, 'minutes (s) and', s: 1: 2, 'seconds (s)')
መጨረሻ;
ከሆነ i <60 ከዚያ
ፃፍ ('', i: 1: 2, 'seconds (a / s)');
ከሆነ i> 3600 ከዚያ ይጀምሩ
m: = Int (i / 60);
s: = i - m * 60;
ች: = Int (m / 60);
m: = m - ch * 60;
ፃፍ (ቻ ፣ 'ሰዓት (ሰ)) ፣ መ ፣ ‘ደቂቃ (ሰ) እና’ ፣: 1 2 ፣ ‘ሰከንድ (ቶች)’);
መጨረሻ;
እኔ: = እኔ + 0.01;
መዘግየት (10);
መጨረሻ;
Readln;
Readln;
መጨረሻ;
መጨረሻ
ደረጃ 15
በጣም ጥሩ አይደለም ፣ ግን ፕሮግራሙ በትክክል ይሠራል!