Перевірка умов і зміна ходу виконання програми Bascom-8051

У описуваної версії Bascom-8051, як і в класичному Бейсике, основу організації роботи окремих частин (модулів) програми забезпечують оператори перевірки умов та зміни ходу виконання програми Компілятор Bascom-8051 надає можливість перевірки значень всіх типів змінних Причому, проверяемая змінна може порівнюватися як з константою, так з іншого змінної, такого ж типу

Всі числові змінні можуть перевірятися на відповідність умовам співвідношення з числовим значенням і значенням іншої змінної Bascom дозволяє перевіряти змінні на відповідність умовам: рівності (знак співвідношення «=»), нерівності («<>»), менше («<»), більше («>»), менше або дорівнює («<=

») І більше або дорівнює («> = ») Встановлюване значення константи, що записується у вираз порівняння, повинно

відповідати типу перевіряється змінної таким чином, щоб не викликати труднощів компілятору при перекладі цього числа в виконуваний код Порівняння проводиться з урахуванням знака змінних і констант

Бітові змінні можуть порівнюватися тільки з числами 0 і 1 або з іншого бітової змінної

Bascom також забезпечує перевірку бітів одно-, двох-і чотирьох байтових змінних, навіть не розташованих у бітової області внутрішньої памяті

Рядкові змінні можуть порівнюватися один з одним або з безпосередньо заданої рядком У прикладі, наведеному нижче, показані приклади використання операторів перевірки умов з різними

типами змінних Ми бачимо, що є можливість вимикати або включатиме виконання окремих

ділянок програми, а також здійснювати перехід в інші точки програми за допомогою операторів GOTO Застосування операторів RETURN (або команди RET) всередині конструкції IF .. END IF заборонено, тому що при цьому порушується баланс стека

‘——————————— Тестування операцій порівняння

‘———————————

Dim Bt1 As Bit , Bt2 As Bit , Bd As Byte , Wd As Word , Ld As Long Dim Sd1 As Single , Sd2 As Single

Dim Temp As String * 16 , Tmp1 As String * 16

M1:

Input Sd1 : Sd2 = 2345

If Sd1 < Sd2 Then 'порівняння чисел у форматі з пл. точкою

Print &quotok&quot : Goto M2

End If

Print &quotno&quot

M2:

Input Temp: Input Tmp1 ввести рядкові змінні

If Temp = Tmp1 Then

Print equ : Goto M3 якщо змінні рівні – вихід

Elseif Temp = &quotstop&quot Then

Goto Mend а якщо введено stop – Закінчити

End If

Print &quotno&quot

M3: перевірка числових змінних

Input Bd: Input Wd: Input Ld ввести значення

If Bd = & H0A Then перевіримо байтовую змінну

Print &quot=&quot : Goto M4

Else якщо вона не дорівнює 10, перевіримо інші

If Wd> = 1000 Then двухбайтовая більше 1000

Print >> : Goto M4 так – підемо далі

Elseif Ld <= 1000000 Then 'немає - перевіримо чотирьохбайтового

Print <<<<" 'Якщо менше 1000000 віддрукували

End If End If

M4: порівняння бітових змінних

Bt1 = 0 : Bt2 = 1

If Bt1 = Bt1 Then Print &quotok&quot

End If Goto M1

Mend: End

Для того, щоб програма працювала швидше, надійніше і витрачає менше ресурсів, слід застосовувати максимально просту конструкцію операцій перевірки умов і використовувати найбільш компактний тип порівнюваних даних Не рекомендується без особливої ​​необхідності порівнювати числа у форматі з плаваючою точкою і рядкові змінні довжиною більше двох-трьох символів

В останніх версіях компілятора стала можливою класична запис операції перевірки умов в один рядок у простому:

If Wd &gt= 1000 Then Goto M4

Або розширеному вигляді:

If Wd> = 1000 Then Print >> Else Print <<" 'Якщо менше 1000000

При цьому потрібно мати на увазі, що як дії на істинність або істинність перевіряється умові може бути застосований лише один оператор Двокрапка в цьому рядку розуміється як початок наступного оператора, виконуваного безумовно Також розуміється і оператор в наступному рядку

Ще одна новинка Bascom версії 2xx – можливість перевірки значення індексованих бітів

Причому індекс може бути заданий байтовой змінної:

Dim X As Byte

X = 6                      X = 0 – 7

If P2X = 1 Then перевірка індексованого біта

P2X = 0 зміна індексованого біта

End If

Джерело: МЛКуліш, ДОВІДНИК З ПРОГРАМУВАННЯ BASCOM-8051, Краснодар 2001

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*