РОЗШИРЕННЯ Бейсік

У цій главі описуються деякі додаткові кошти, якими володіють багато версії Бейсика У ній поряд із цілком стандартними засобами, наприклад оператором PRINT USING і логічними операторами, обговорюються розширення Бейсика, наприклад керуючі структури типу циклів REPEAT (ПОВТОРЮВАТИ ДО), різні типи змінних і засоби отримання псевдографічні зображень

Деякі розширення Бейсика перетворилися на самостійні мови, наприклад COMAL, який буде коротко описаний, щоб показати можливий напрямок розвитку Бейсика в майбутньому

52 ВИРАЖЕННЯ

У підрозд 125 детально обговорювалися вимоги, пропоновані до угод про порядок обчислення арифметичних виразів в даному розділі обговорюються всі типи операцій та їх упорядкування за старшинством

На рис 61 показаний відносний пріоритет всіх операцій, доступних в більшості версій Бейсика Найвище старшинство мають дужки, тому у вкладених виразах в першу чергу обчислюються ті частини виразів, які укладені в дужки на самому внутрішньому рівні Таким чином, при обчисленні виразу

D + X*(C + X*(B+X))

треба виконати тільки два множення і результат в точності той же, що і при обчисленні виразу

D+C*X+B*X*X+X*X*X

Якщо одне й те ж старшинство має більш ніж одна операція, то вони виконуються зліва направо

Наприклад, на рис 61 показано, що множення і ділення мають одне і те ж старшинство, тому

Заперечення являє собою операцію, изменяющую знак міститься в змінній значення Якщо А містить 3721, то-А дорівнюватиме -3721 Варто було б завжди давати можливість запису В = С *-А

T)

DIV)

MOD)

віднімання

Операції відносини

Низький пріоритет

&lt&gt&nbsp

&lt=&gt= NOT AND OR

XOR (В Бейсике ВВС використовується EOR) IMP (У деяких системах)

EQV (У деяких системах)

так як заперечення по старшинству вище множення, але деякі системи відкидають таку запис і вимагають форму

В = С * (-А)

яку легше зрозуміти як програмісту, так і системі

У деяких системах передбачена операція цілочисельного ділення, що позначається зворотною косою межею (\) або словом DIV Операцію можна вказувати як між цілими, так і між речовими змінними (Див розд 62), але перед виконанням ділення обидва операнда округлюються до цілих чисел, і для більшості мікроЕОМ результат округлення повинен знаходитися в допустимому діапазоні -32 768 +32 767 Цілочисельне поділ виконується кілька швидше в порівнянні з поділом дійсних чисел Приміром,

17 \ 4 дає 17 квітня DIV 4 дає 4

і

3142 \ 2 дає 1171

Функція MOD також має справу з цілочисловим поділом, але повертає ціле значення,

що є залишком від такого поділу Таким чином, 17 MOD 4 дає 1

Як DIV, так і MOD можна застосовувати до речових значень, і системи округлюють їх до найближчих цілих чисел перед виконанням цих операцій:

3142 \ 17дает 1

і

3142 MOD 17 дає 1

оскільки обчислюються як 3/2 (після округлення), що дає результат 1 і залишок 1

У деяких системах (наприклад, в Бейсике ВПС) замість округлення проводиться відкидання дробової частини при такому підході

3142 DIV 17 дає 3 і

3142 MOD 17 дає 0 що виходить в результаті обчислення 3/1

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

А> = В правильно

А> = В = С неправильно

Для конструювання складних виразів, подібних останньому з наведених вище, треба застосовувати логічні оператори, обговорювані в наступному розділі Операції відносини введені для формування логічного результату за значеннями двох арифметичних виразів Цей логічний результат – ІСТИНА або БРЕХНЯ – використовується в умовних (або булевских) виразах усюди, де це потрібно в Бейсике, наприклад в операторі

IF А> = В + С THEN 200

або в розширеній керуючої структурі виду REPEAT UNTIL A> = В

Загальне правило для всіх систем таке: ІСТИНА ≠ 0 ЛОЖЬ = 0

Як же значення ІСТИНА і НЕПРАВДА представляються в ЕОМ У Бейсике вони представляються у вигляді двійкових цілих значень, так що

Нульового значення еквівалентна БРЕХНЯ ненульове значення еквівалента ІСТИНА

Таблиця 61 Значення, використовувані логічними операціями та операціями відносини

Оскільки операції відносини утворюють логічні вирази, то вони повинні виробляти зазначені вище значення для значень ІСТИНА і НЕПРАВДА Взагалі кажучи, так і робиться, але найчастіше замість випадкового ненульового значення для подання значення ІСТИНА залежно від системи вибирається +1 або -1 У табл 61 наведені ці значення для деяких систем Таким чином, якщо в системі ІСТИНА представляється числом -1, то

PRINT (5> 3) зобразить -1 PRINT (5> 7) зобразить 0

і в результаті виконання оператора А = (5> = 2)

змінної А буде присвоєно значення -1 Наявність дужок не обовязково, проте в деяких системах їх відсутність вважається помилкою Можна користуватися і змінними, як, наприклад, у виразі

С = (А> В)

і складними виразами, наприклад С = ((А> В) AND (Z <= Y))

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

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

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


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

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

Ваш отзыв

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

*

*