- •1. Простейшие Операторы языка
- •2. Операторы управления
- •3. Организация ветвлений
- •Input X
- •Input a,b,c
- •Input g
- •4. Организация циклов
- •5. Операторы циклов
- •Программа к задаче 5.2
- •Input "Введите числа X и y", X, y
- •Input X
- •Input X
- •6. Работа с массивами
- •7. ОбРаботка Символьных данных
- •Пример. ?instr(”Саша”,”а”),instr(3,”Саша”,”а”) Результат: 2,4
- •Input "введите число X"; X
- •Контрольные задания
2. Операторы управления
В программе принят естественный порядок выполнения операторов – в той последовательности, в которой они записаны. В случае если этот порядок должен быть нарушен, используются операторы перехода.
Оператор безусловного перехода. Оператор вида:
GOTO метка_оператора
вынуждает программу выполнять не следующий по порядку оператор, а оператор с указанной меткой. Например, оператор GOTO 25 читается как “Идти к оператору с меткой 25” и передает управление оператору с меткой 25.
В некоторых версиях Бейсика все операторы в программе нумеруются. В QBasic, однако, сплошная нумерация не обязательна, хотя и возможна. Здесь для организации ссылок используются метки (в частном случае это могут быть и номера операторов), которые расставляются слева от тех операторов, на которые есть ссылки. Метками могут быть любые целые числа, идущие в произвольном порядке (не обязательно по возрастанию). Важно только, чтобы они не повторялись.
Оператор анализа условий. Если переход, или какое то другое действие должно быть выполнено в зависимости от некоторых условий, то используется оператор IF. Его формат:
IF логическое_условие THEN оператор1 ELSE оператор2
Здесь, если заданное условие истинно, выполняется оператор1, если нет – оператор2. Например, оператор
IF a>b THEN ? "А больше В"ELSE ? "А не больше В"
выводит сообщение о фактическом соотношении переменных A и В.
Фраза ELSE необязательна, т.е. возможен и такой формат
IF логическое_условие THEN оператор
Например, следующий оператор читается: “Если X>Z, напечатать Y, иначе идти к следующему оператору (непосредственно под оператором IF)”.
IF x>z THEN ?Y
нет
Н
да
IF a>=b-2 THEN GOTO 40 читается так:
нет
“Если AB–2, то идти к оператору 40, иначе – к оператору, стоящему ниже ”.
Если требуется осуществить только переход слово THEN можно опустить
IF логическое_условие GOTO метка
Другой пример. На практике иногда приходится выяснять, четное число (например, X) или нечетное. Это можно сделать с помощью любого из следующих выражений
IF FIX(x/2)=x/2 THEN "X – четное" ELSE "X – нечетное"
IF x MOD 2=0 THEN "X – четное" ELSE "X – нечетное"
Структурный оператор анализа условий. Здесь уместно напомнить, что всюду, где в синтаксисе команд встречается слово оператор, может быть записано несколько операторов, разделенных двоеточием. Однако этого может оказаться недостаточно – внутрь выражений THEN/ELSE может потребоваться включить много действий и даже целые процессы. В этом случае используется структурный оператор, позволяющий формировать условия, включающие любое число строк программы.
Вид оператора:
IF логическое_условие THEN
операторы1
ELSE
операторы2
END IF
Здесь если логическое условие истинно, выполняются операторы1, если нет – операторы2. Присутствие фразы ELSE и следующих за ней операторов2 необязательно.
Для примера используем предыдущую задачу о сравнении двух чисел A и В.
IF a>b THEN
? "А больше В"
ELSE
? "А не больше В "
END IF
Замечание к нотации. Для придания более наглядного вида программе удобно использовать отступы при вводе “подчиненных” операторов в структурах IF, FOR и других, как показано выше. В данном случае подчиненными операторами по отношению к структуре IF являются операторы печати.
Блок-схема. При разработке алгоритма программы сначала удобно построить его графическое представление – блок-схему. В блок-схеме отдельные операции или группы операций помещаются в прямоугольные блоки. Операции анализа (операторы IF) отображаются ромбами, имеющими два выхода. Выход ДА, соответствует истинному значению, анализируемого условия, НЕТ – ложному. Обычно, блок-схемы обрамляют блоки НАЧАЛО и КОНЕЦ. Мы будем изображать последние только в случае, если возможно разночтение.