Паскальда секундомер программасын кантип жасаса болот

Мазмуну:

Паскальда секундомер программасын кантип жасаса болот
Паскальда секундомер программасын кантип жасаса болот

Video: Паскальда секундомер программасын кантип жасаса болот

Video: Паскальда секундомер программасын кантип жасаса болот
Video: Секундомер и таймер в Huawei и Honor 2024, Май
Anonim
Паскальда секундомер программасын кантип жасаса болот
Паскальда секундомер программасын кантип жасаса болот

Зарыл

PascalABC. NET же PascalTurbo программалоо чөйрөсү

Нускамалар

1 кадам

Ошентип, алгач, программаны ачалы. Жаңы файл түзүп, плагиндерди көрсөтөлү. Бул учурда, бизге консоль менен иштөө үчүн модуль керек - CRT.

бул үчүн биз жазабыз:

колдонот

CRT;

2-кадам

I, s, m өзгөрмөлөрүн - чыныгы типтеги өзгөрмөлөрдү көрсөтөлү.

var

i, s, m: Real;

3-кадам

Программаны баштоо үчүн жазыңыз:

баштоо

Ал эми консоль терезесинин аталышын көрсөтөбүз:

SetWindowTitle ('Секундомер');

4-кадам

TextColor процедурасы текстке түс берет, ал эми Write оператору текстти экранга чыгарат:

TextColor (LightGreen);

WriteLn ('Секундомерди баштоо үчүн Enter баскычын басыңыз');

WriteLn ('Токтотуу үчүн дагы бир жолу басыңыз');

Жазуу ('Башынан баштоо үчүн дагы бир жолу чыкылдатыңыз');

Аяктаган Ln кийинки сапка өтөт.

5-кадам

ReadLn оператору маанилерди клавиатурадан киргизет, бирок бул учурда колдонуучу Enter басканды күтөт:

ReadLn;

6-кадам

Биз чексиз цикл жасайбыз:

ал эми (чыныгы) кыл

баштоо

While (true) do begin construct төмөнкүдөй которулат: While (шарт) do (). Эмне үчүн ушул жерден башталат?

Бул учурда бизге курама оператор керек болот, демек, шарт чын болсо дагы, бир нече оператор аткарылат. Эгерде ал баштала элек болсо, анда Whileтен кийин, программанын туура эмес иштешине алып келген бир гана билдирүү аткарылды. Аягында While билдирүүсүн аяктоо үчүн, аягын жазабыз.

7-кадам

Эми эсептегичти баштапкы абалга келтирели:

i: = 0;

8-кадам

Төмөнкү сөз төмөнкүдөй которулат: do () баскычы басылганга чейин.

бирок баскыч басылбайт

баштоо

ClrScr оператору экранды тазалайт:

ClrScr;

9-кадам

Шартты койдук: эгерде секунддар 60тан ашып, 3600дөн ашпаса (бул убакыт бир сааттан ашык болгондо, программа үчүнчүдөн кийинкилерди гана басып чыгарат, ошондо керек), анда:

if (i> 60) жана (i <3600) анда башталат

M (мүнөт) өзгөрмөсү барабар: секунддар 60ка бөлүнүп, алдыга тегеректелген.

m: = Int (i / 60);

Ал эми s өзгөрмөсү (мүнөтсүз секунд) барабар: бардык минус мүнөт 60ка көбөйтүлгөн.

s: = i - m * 60;

10-кадам

Write оператору канча мүнөт жана секунд өткөндүгүн жазат жана аяктоо оператору if шартына ылайык башталуунун ишин аяктайт:

Жазыңыз (м, 'мүнөт (тер) жана' 'с: 1: 2,' секунда (лар) ')

аягы;

Функция: 1: 2 секунда эки ондуктуу орун менен жазылышы керек дегенди билдирет.

11-кадам

Эгерде секунддар 60тан аз болсо, анда эки ондуктуу орун менен канча секунд өткөнүн жазыңыз:

эгер i <60 болсо

Жазуу ('', i: 1: 2, 'секунд (а / с)');

12-кадам

Эгерде секунддар 3600дөн жогору болсо (башкача айтканда, бир сааттан ашык), анда:

эгер i> 3600 болсо, анда башталат

m: = Int (i / 60);

s: = i - m * 60;

ch: = Int (m / 60);

m: = m - ch * 60;

(Ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)') жазыңыз;

аягы;

13-кадам

Ошентип, программа 0 секунд өттү деп жазган, ал эми эсептегичти 10 миллисекундга көбөйтөт жана программа бардыгын бир заматта жасагандан кийин, биз ошол эле убакытка кечиктиребиз:

i: = i + 0.01;

Кечигүү (10);

Андан кийин, While (баскыч басылган эмес) билдирүүсүнүн аягына чыгабыз:

аягы;

Эгерде колдонуучу Enter баскычын баскан болсо, анда программа секундомерду кайра иштетүү үчүн аны дагы бир жолу басышын күтөт:

Readln;

Readln;

While (true) операторунан кийин эсептегичти нөлгө койгонубуз кокустук эмес, анткени колдонуучу экинчи жолу Enter басканда, программа ошол жерден башталып, эсептегичти баштапкы абалга келтирип, кайрадан эсептей баштайт.

Андан кийин, while жана бүткүл программа үчүн бүтүрөбүз:

аягы;

14-кадам

Бул жерде толук программа бар:

колдонот

CRT;

var

Мен реалдуумун;

s: Real;

м: Чыныгы;

ch: Real;

баштоо

SetWindowTitle ('Секундомер');

TextColor (LightGreen);

WriteLn ('Секундомерди баштоо үчүн Enter баскычын басыңыз');

WriteLn ('Токтотуу үчүн дагы бир жолу басыңыз');

Жазуу ('Башынан баштоо үчүн дагы бир жолу чыкылдатыңыз');

ReadLn;

ал эми (чыныгы) кыл

баштоо

i: = 0;

бирок баскыч басылбайт

баштоо

ClrScr;

if (i> 60) жана (i <3600) анда башталат

m: = Int (i / 60);

s: = i - m * 60;

Жазыңыз (м, 'мүнөт (тер) жана' 'с: 1: 2,' секунда (лар) ')

аягы;

эгер i <60 болсо

Жазуу ('', i: 1: 2, 'секунд (а / с)');

i> 3600 болсо, баштаңыз

m: = Int (i / 60);

s: = i - m * 60;

ch: = Int (m / 60);

m: = m - ch * 60;

(Ch, 'hour (s)', m, 'minutes (s) and', s: 1: 2, 'seconds (s)') жазыңыз;

аягы;

i: = i + 0.01;

Кечигүү (10);

аягы;

Readln;

Readln;

аягы;

аягы.

Сүрөт
Сүрөт

15-кадам

Абдан жакшы эмес болуп чыкты, бирок программа туура иштеп жатат!

Сунушталууда: