
- •Министерство образования российской федерации
- •Внешние устройства пк
- •2.1. Элементы языка
- •Мантисса e порядок
- •2.2. Операторы языка
- •Операторы управления
- •If логическое_условие goto метка_оператора
- •2.3. Организация ветвлений
- •Input “Укажите х”, X
- •15 ? “Неверно”
- •2.4. Организация циклов
- •Программа к задаче 9
- •Input "Введите числа X и y", X, y
- •2.5. Работа с массивами
- •Input "Введите число вкладчиков и процент ",n,p
- •2.6. Модульное программирование
- •2.7. ОбРаботка Символьных данных
- •Пример. ?instr(”Саша”,”а”),instr(3,”Саша”,”а”) Результат: 2,4
- •2.8. Численные методы анализа
- •Input “Введите левую и правую границы a и в ”, a, b,
- •Input “Введите допустимую погрешность e ”, e
- •2.9. Выявление нажатия клавиш
- •2.10. Работа с графикой
- •2.11. Работа с дисковыми файлами
- •3.1. Решение уравнений
- •3.2. Численное интегрирование функций
- •3.3. Решение дифференциальных уравнений
- •4.1. Линейная регрессия
- •4.2. Полиномиальная аппроксимация
- •П1. Интерфейс среды qbasic
- •П2. Клавиши управления
- •П3. Меню интерпретатора
- •Ответы на тестовые задания, имеющиеся в тексте пособия:
- •& Тесты по курсу
- •Литература
- •Оглавление
- •2.6. Модульное программирование 38
- •2.8. Численные методы анализа 41
- •Информатика
Операторы управления
В программе принят естественный порядок выполнения операторов – в той последовательности, в которой они записаны. В случае, если этот порядок должен быть нарушен, используются операторы перехода.
ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА. Оператор вида:
GOTO метка_оператора
вынуждает программу выполнять не следующий по порядку оператор, а оператор с указанной меткой. Например, оператор GOTO 25 читается как “Идти к оператору с меткой 25” и передает управление оператору с меткой 25.
Во многих версиях Бейсика все операторы в программе нумеруются. В QBasic, однако, сплошная нумерация не обязательна, хотя и возможна. Здесь для организации ссылок используются метки (в частном случае это могут быть и номера операторов), которые расставляются слева от тех операторов, на которые есть ссылки. Метками могут быть любые целые числа, идущие в произвольном порядке (не обязательно по возрастанию). Важно только, чтобы они не повторялись. Метками могут быть также буквы и слова, отделенные от оператора двоеточием, например возможна такая ссылка (здесь mn – метка)
GOTO mn
. . .
mn: PRINT x
Имя метки задается программистом произвольно. При грамотном программировании можно обойтись минимумом меток или не использовать их вовсе.
ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА
имеет две разновидности:
IF логическое_условие THEN оператор
If логическое_условие goto метка_оператора
Здесь, если заданное условие истинно, выполняется указанный оператор (в первом случае), или производится переход к оператору с указанной меткой (во втором). Если условие ложно, выполняется оператор, следующий непосредственно за оператором IF. Например, оператор
IF a^2>=b–2 GOTO 40
нет
читается: “Если A2>=B–2 , то идти к оператору 40, если нет – к оператору, записанному ниже (непосредственно под оператором IF)”. А
IF x>z THEN ?Y читается:
нет
“Если X>Z, тогда напечатать Y, иначе идти к следующему оператору”.
После фразы THEN (тогда) может быть использовано ключевое слово ELSE (иначе):
IF логическое_условие THEN оператор ELSE оператор
Здесь, если условие истинно, выполняется оператор, следующий после слова THEN, иначе оператор, следующий после слова ELSE.
Например, оператор
IF a>b THEN ?”А больше В” ELSE ?”В больше А”
выводит сообщение о фактическом соотношении переменных А, В.
Другой пример. На практике иногда приходится выяснять, четное число (например Х) или нечетное. Это можно сделать с помощью следующего выражения
IF FIX(x/2)=x/2 THEN ”X – четное” ELSE ” X – нечетное ”
СТРУКТУРНЫЙ ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА
Здесь уместно напомнить, что всюду, где в синтаксисе команд встречается слово оператор, может быть записано несколько операторов, разделенных двоеточием. Однако этого может оказаться недостаточно – внутрь выражений THEN/ELSE может потребоваться включить много действий и даже целые процессы. В этом случае используется структурный оператор условного перехода. Такой оператор условного перехода позволяет формировать условия, влияющие на любое число строк программы.
Вид оператора:
IF
логическое_условие
THEN
операторы1
[ELSE
операторы2]
END IF
Здесь если логическое условие истинно, выполняются операторы группы 1, если нет – операторы группы 2. Присутствие фразы ELSE и следующей за ней группы операторов необязательно.
Для примера используем предыдущую задачу о сравнении чисел А и В.
IF a>b THEN
?”А больше В”
ELSE
?”В больше А”
END IF
Замечание к нотации. Для придания более наглядного вида программе удобно использовать отступы при вводе “подчиненных” операторов в структурах IF, FOR и других, как показано выше. В данном случае подчиненными операторами по отношению к структуре IF являются операторы печати.
ОПЕРАТОР ВЫБОРА (селектор). Оператор выбора позволяет осуществлять удобный выбор среди нескольких возможных альтернатив.
Вид оператора:
SELECT CASE выражение_для_проверки
[CASE список_выражений_1
операторы 1]
[CASE список_выражений_2
операторы2]
. . .
[CASE ELSE
операторы_N]
END SELECT
где: выражение для проверки – числовое или символьное выражение;
список выражений – одно или более выражений такого же типа, что и выражение для проверки.
Если выражение для проверкисовпадает с каким-либо элементом изсписка выражений, приведенного после ключевого слова CASE, то выполняется группа операторов, следующих за этим словом до следующего CASE или END SELECT. Затем осуществляется переход к оператору, идущему после END SELECT. Если нет ни одного совпадения, выполняются операторы, следующие после слова CASE ELSE (если есть).
Элементы списка выражений должны иметь одну из следующих форм:
выражение_1 [,выражение_2] – проверяется совпадение выражения для проверки с любым выражением из перечисленного списка.
выражение_1 TO выражение_2 – проверяется нахождение выражения для проверки в диапазоне от выражения 1 до выражения 2.
IS логическое_условие– проверяет истинность логического условия. Условие должно начинаться с одного из знаков отношений (<, >, <=, >=, <>, =).
Пример. Здесь проверяется, принадлежит ли переменная Х подмножеству чисел 1,3,5,7, или оно находится в диапазоне от 10 до 20, или оно больше 100 с выдачей соответствующего сообщения. Если ни одно из условий не выполняется, выдается сообщение "Остальные числа". Решение ниже слева.
Допускается соединение списков выраженийлюбого типа. Положим, что нам нужно выяснить только факт принадлежности/непринадлежности к указанному множеству. В этом случае решение задачи (ниже справа) упрощается.
SELECT CASE x CASE 1,3,5,7 ? "x=1, 3, 5, 7" CASE 10 TO 20 ? "10<=x<=20" CASE IS > 100 ? "x>100" CASE ELSE ?"Остальные числа" END SELECT |
SELECT CASE x CASE 1,3,5,7,10 TO 20, IS > 100 ? "x=1,3,5,7 или 10<=x<=20 или х>100" CASE ELSE ? "Остальные числа" END SELECT
|
ОПЕРАТОР ЗАВЕРШЕНИЯ. Оператор END (“конец”) завершает выполнение программы. Он может находиться в любом месте программы. Таких операторов может быть несколько в случае, если предполагается завершение программы не только в ее конце. Присутствие END в конце программы необязательно, поскольку после выполнения последнего оператора, она все равно заканчивается.
КОММЕНТАРИИ. Написанная программа спустя некоторое время даже автору кажется малопонятным набором символов. Для облегчения понимания программы в нее вставляются комментарии – тексты, поясняющие суть процессов и не влияющие на ее исполнение. Такие тексты должны начинаться со слова-оператора
REM текст_комментария
Оператор REM может находиться как в отдельной строке, так и после любого оператора. Более удобной формой является использование для тех же целей апострофа. Ниже (слева и справа) изображены идентичные примеры комментариев.
PRINT x REM комментарии PRINT x 'комментарии
REM и это комментарии 'и это комментарии
Очевидно, что удобнее пользоваться апострофами.
В заключение еще один полезный оператор. Оператор очистки экрана.
CLS
В символьном режиме курсор будет установлен в левый верхний угол, в графическом – в центр экрана.
Блок-схема. При разработке алгоритма программы сначала удобно построить его графическое представление – блок-схему. В блок-схеме отдельные операции или группы операций помещаются в прямоугольные блоки. Операции анализа (операторы IF) отображаются ромбами, имеющими два выхода. Выход ДА, соответствует истинному значению, анализируемого условия, НЕТ – ложному.
Обычно, блок-схемы обрамляют блоки НАЧАЛО и КОНЕЦ. Мы будем изображать последние только в случае, если возможно разночтение.