Введение в QBasic

Любой язык программирования опирается на трех китов: следование, ветвление, повторение (цикл). Сюда можно добавить еще одного кита — подпрограмму. Подпрограммы у нас впереди, а про остальное поговорим сейчас.

   Всем нам “по жизни” хорошо известно понятие алгоритма. Представьте себе, что в незнакомом городе Вам нужно попасть на вокзал. Если Вы спросите, как туда проехать, то получите ответ типа: “Пройдете до следующего перекрестка и сядете там на автобус №17. Проедете на нем две остановки в сторону центра и пересядете на троллейбус №6 до конечной остановки”. Это типичное следование, т.е. совокупность действий, выполняемых последовательно, друг за другом. Нельзя выполнить очередную инструкцию прежде, чем будет выполнена предыдущая.

   Если возможны варианты в выборе маршрута, то данные Вам инструкции будут содержать ветвление: “Если подойдет автобус №12, то доедете им до вокзала без пересадок, иначе проедете любым транспортом три остановки до универмага и сядете там на автобус №23 …”. В этом случае Ваши действия зависят от того, какой автобус первым подойдет к остановке.

   Предположим, что Вы хотите дождаться автобуса №12, чтобы с Вашими двумя чемоданами ехать без пересадок. Тогда фактически будет выполнен следующий алгоритм: “Ждать, пока придет автобус №12”. Этот алгоритм содержит повторение. Ждем автобуса. Подходит автобус. Смотрим: №12? Увы, нет. Ждем следующего автобуса. Подходит автобус. Смотрим: №12? Увы, нет. Ждем следующего автобуса… Одни и те же инструкции выполняются несколько раз. Теоретически возможно даже бесконечное число повторений (программисты говорят — зацикливание).

   Ветвление в большинстве языков программирования, в том числе и в Бейсике, реализуется с помощью условного оператора, в котором используются ключевые слова IF, THEN, ELSE, в переводе на русский они означают ЕСЛИ, ТО, ИНАЧЕ.

   В программе на Бейсике оператор ветвления может записываться в одну строку

IF условие THEN ветвь_”то”— неполное ветвление
или 
IF условие THEN ветвь_”то” ELSE ветвь_”иначе”— полное ветвление

и в несколько строк

IF условие THEN 
   ветвь_”то”— неполное ветвление
END IF 
или 
IF условие THEN 
   ветвь_”то” 
ELSE— полное ветвление
   ветвь_”иначе” 
END IF 

   Ветвь “то” исполняется, если при проверке окажется, что условие верно. Если же окажется, что условие неверно, то будет исполнена ветвь “иначе”.

Позже мы познакомимся и с так называемым множественным ветвлением (выбором).

   Операторов цикла в Бейсике несколько. Есть два оператора цикла “повторяй, пока выполняется условие”:

DO 
   тело_цикла— проверка условия в конце цикла
LOOP WHILE условие 
  
DO WHILE условие 
   тело_цикла— проверка условия в начале цикла
LOOP 

   Из цикла DO можно выйти досрочно по команде EXIT DO, даже если условие выполнения продолжает оставаться истинным.

   Цикл “для” (цикл с параметром):

FOR параметр = начальное_значение TO конечное_значение [STEP шаг]
   тело_цикла
NEXT параметр

   Заметим, что часть заголовка цикла — STEP шаг — может отсутствовать (поэтому она взята в квадратные скобки!). В этом случае считается, что параметр цикла увеличивается каждый раз на 1.

   Параметр — это имя некоторой переменной величины. Для каждой переменной Quick Basic отводит место в оперативной памяти, где и хранится ее текущее значение.

   Оператор цикла “для” работает следующим образом: при входе в цикл параметру присваивается начальное значение. Проверяется условие “значение параметра не больше конечного значения” при положительном шаге изменения параметра или условие “значение параметра не меньше конечного значения” при отрицательном шаге . Если проверяемое условие истинно, то выполняется тело цикла, затем к значению параметра прибавляется шаг изменения и происходитвозврат к проверке условия. При невыполнении условия управление передается оператору, следующему за признаком конца цикла FOR-NEXT.

   Из этого цикла также можно выйти, не дожидаясь конца повторений с помощью оператора EXIT FOR.