Вибір дій у Бейсику

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

Вибір дій у Бейсику може кодуватися двома способами: приватним та загальним. Почнемо з приватного способу, який можна застосувати тільки в ситуаціях, коли вибору підлягають групи з одного - двох дій.

Для прикладу розглянемо алгоритм «оракул», в якому машина пророкує, чи вам супроводжуватиме успіх у ваших справах. Логіка цього оракула проста - він випадково обирає одну з двох фраз: «Вас чекає успіх» або «Вас чекає невдача». Відповідну програму на Бейсику наведено праворуч:

Виконання цієї програми на ЕОМ після її запуску командою RUN полягатиме в наступному. Виконуючи 20-й оператор, ЕОМ обчислить деяке випадкове числор. Аргумент - TIME у датчику випадкових чисел означає, що випадкове число обчислюватиметься залежно від значення лічильника часу, що у машині. З цієї причини кожне нове звернення до цієї програми даватиме зовсім нове непередбачене передбачення.

Далі в 30-му операторі відповідно до алгоритму перевіряється значення отриманого випадкового числа:р= 0,5? Якщо числорбільше або дорівнює 0,5, то на екрані з'явиться фраза: "Вас чекає невдача".

Кодування найпростіших умовних дій, як видно з прикладу, полягає в заміні слова "якщо " на слово "IF" і слова "то " на слово "THEN" . Роль слова "кеслі " у цьому правилі відіграє номер наступного оператора.

Однак розглянутий приватний спосіб кодування не можна застосовувати в тих випадках, коли вибір здійснюється зКілька груп процесів чи групи складаються з кількох процесів. Загалом вибір дій завжди можна закодувати за допомогою операторів двох типів: операторів умовного та безумовного переходу.

Оператор безперечного переходу в Бейсику записується за допомогою словосполучення GO TO (GO TO - перехід до …). Оператор умовного переходу кодується за допомогою IF слів. THEN GO TO (якщо . перехід до …).

Розглянемо тепер програму «оракул», закодовану за тим самим алгоритмом, за допомогою операторів умовного та безумовного переходів:

Запис IF NOT P> 0,5 THEN GO TO 60 – це оператор умовного переходу. Фраза NOT P >0,5 означає: «невірно, щор> 0,5». Тому якщо випадкове числор, обчислене машиною, виявиться менше або дорівнює 0,5 то умова NOT P & 0,5 виявиться виконаним і ЕОМ повинна буде виконати оператор GO TO 60.

Оператор GO TO 60 - це оператор безумовного переходу, виконання переходу якого полягає в продовженні обчислень з оператора 60. В даному випадку ЕОМ виведе фразу "Вас чекає невдача" і закінчить свою роботу.

Якщо випадкове числорвиявиться більше 0,5, то умова NOT P > 0.5 виявиться хибним. У цьому випадку ЕОМ перейде до виконання наступного за текстом програми оператора і виведе фразу "Вас чекає успіх". Далі в рядку 50 стоїть оператор GO TO 80 - оператор переходу до 80-го оператора. Виконуючи його, ЕОМ змінить хід виконання програми та завершить виконання програми, не виведення фрази «Вас чекає невдача».

а) словоякщо замінюється на слова IF NOT:

б) словото замінюється на оператор переходу THEN GO TO, але номери операторів, куди має здійснюватися перехід, заповнюються пізніше;

в) словоінес замінюється на два оператори:оператор переходу GO TO до кінця вибору та оператор умовного переходу IF NOT з тією ж умовою;

е) у всіх операторах GO TO заповнюються номери рядків, куди здійснюється перехід, - номер кінця вибору в операторах GO TO та номер початку наступної альтернативи в операторах умовного переходу IF NOT . . . THEN GO TO.

Як приклад розглянемо переклад мовою Бейсик діалогового алгоритму рішення на ЕОМ квадратного рівняння: