Арифметичні вирази

В одному операторі LET можна виконувати кілька арифметичних операцій: 10LETA = 314159 * R ↑ 2

10LETV = A*B + C/21

10LETX= (Y+227)/180

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

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

б) потім виробляються операції зведення в ступінь

в) потім виконуються множення і ділення

г) останніми виробляються додавання і віднімання

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

Припустимо, що в прикладах табл 13 В = 100, С = 50і D = 20 Вміщені в ній вираження на Бейсике сконструйовані за допомогою наведених вище правил так, що вони еквівалентні алгебраїчним формулами лівої колонки

Якби правил старшинства не було, то вираз прикладу 6 можна було б інтерпретувати як (100 * 50-20) / 50 = 4980/50 = 996, що не збігається з правильним результатом 49996, отриманим вище Памятайте, що система з Бейсиком завжди дотримується цих правил, так що і Вам, програмісту, завжди треба їм слідувати Ці правила дозволяють записати наведений вище приклад 4 у формі B / C / D, що еквівалентно (B / C) / D = (100/50) / 20 = 2/20 = 01 і призводить до правильного результату, але така запис має декілька обескураживающий вид, тому її краще уникати

Будьте уважні з дужками Приклад 3 не можна записати у вигляді В + C / D = 100 + (50/20) = 1025, що відповідає алгебраїчній формулою b + c / d, а не тому, що потрібно Аналогічно, якщо б приклад 7 був записаний у вигляді В + C ↑ 10 / D, то результатом було б В + (С ↑ 10) / D = 100 + (50 ↑ 10) / 20 велике

число, що є результатом b + c10 / d, а не заданої формули

Оператор LET

Загальна форма запису:

LET змінна = вираз

“Змінна імя змінної (комірки даних), яка може зберігати цілі або речові числа або рядки символів

“Вираз дає результат того ж типу (цілий, дійсний, рядок символів), що і у змінної в лівій частині

Оператор LET присвоює змінної результат обчислення виразу Всі елементи даних,

входять до складу вираження в правій частині, повинні до моменту обчислення мати певне значення Іншими словами, вони повинні попередньо отримати значення за допомогою операторів INPUT, LET або READ {Останній обговорюється в розд 44)

Для більшості систем службове слово LET можна опускати

Застосування оператора LET у разі, коли по обидві сторони від знака присвоювання (=) вказана одна і та ж змінна, може викликати здивування, якщо Ви не цілком засвоїли той факт, що права частина обчислюється до того, як результат копіюється в ліву частину Оператор

LET N=N+1

візьме поточне значення змінної N, додасть до нього 1 і потім скопіює отриманий результат назад в N Якщо N спочатку містила 10, то в результаті обчислень в N потрапить 11 Оператори такого виду широко використовуються в програмах на Бейсике, так як їх дія складається

в додаванні 1 до N (в приращении значення N) при кожному виконанні оператора У цьому випадку N

діє як лічильник Аналогічно допускаються оператори виду

LET A = А * 17 жовтня

У даному випадку первісне значення А множиться на 10 і результат повертається в А

Зазвичай службове слово LET в таких операторах дозволяється опускати, що й буде робитися у наступних розділах цієї книги Вживання слова LET обовязково тільки на персональній ЕОМ (ПЕОМ) ZX81 фірми Sinclair

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 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>

*

*