- •Bведение
- •1. Основы языка Basic
- •1.1. Основные структуры
- •1.2. Операторы ввода, вывода, позиционирования
- •1.3. Числа
- •1.4. Строки
- •1.5. Операторы def, dim, пользовательский тип
- •1.6. Разветвление и альтернатива
- •1.7. Циклы
- •If k then print "пароль принят" else print "ошибка пароля"
- •Input "Введите произвольный текст : ", txt
- •Input X
- •1.8. Программные стэки
- •1.9. Массивы
- •If I and jb then
- •Input n
- •1.10. Функции, подпрограммы
- •1.11. Файлы
- •1.12. Сегментирование программы
- •Input n
- •1.13. Работа с графической информацией
- •If nu then gosub Move 'перемещение рисунка
- •1.14. Звуковое воспроизведение
- •2. Элементы vba
- •2.1. Типы переменных
- •2.2. Использование массивов
- •2.3. Разветвление и циклы
- •2.4. Работа с ячейками листа
- •If y X Then
- •If Check Then
- •2.5. Элементы управления
- •If X 0 Then
- •2.6. Пользовательские классы
- •If IsEmpty(Text2) Then Exit Sub
- •2.7. Построение графиков в excel
- •2.8. Построение графиков и таблиц в word
- •3. Ключи в word
- •4. Гипертекстовая разметка
- •4.1. Основные тэги html
- •4.2. Форматирование таблиц
- •4.3. Фреймы
- •5. Основы программирования в среде MathCad
- •5.1. Особенности языка MathCad
- •5.2. Некоторые вычислительные модели
- •5.2.1. Системы уравнений
- •5.2.1.1. Системы линейных уравнений
- •Iter(a, b, e) n Last (b)
- •5.2.1.2. Нелинейные уравнения и системы
- •5.2.2. Определенный интеграл
- •5.2.3. Функции на дискретном множестве
- •5.2.4. Обыкновенные дифференциальные уравнения
- •5.2.5. Минимизация функций
- •5.2.5.1. Функции одной переменной
- •5.2.5.2. Функции многих переменных
- •5.2.6. Pазностная модель и прогноз
- •1 Otherwise (коэффициенты непрерывной модели)
- •5.2.7. Сглаживание и осреднение рядов
- •Задания
- •Литература
1.6. Разветвление и альтернатива
а) Безусловный выбор. Обычное разветвление осуществляется опера-
тором GOTO ‹ метка ›, либо оператором перехода с выбором
ON ‹ арифм. выражение › GOTO ‹ метка ›, ‹ метка ›,...
При этом значение арифметического выражения округляется до цело-го n и выполняется переход на n-ю метку в списке. Например, реше-ние квадратного уравнения ax2 + bx +c = 0 (a ≠ 0) можно выполнить
программой
DEFINT I
d = b*b - 4ac
i = 2 + SGN(d)
ON i GOTO ZERO, ONE, TWO
EX: PRINT "Задача решена": END
ZERO: PRINT "Корней нет" : GOTO EX
ONE: PRINT "Один корень х ="; - 0.5 * b / a : GOTO EX
TWO: d = SQR(d)
PRINT "2 корня: х1 = "; 0.5 * (d - b) / a;"; x2 = "; - 0.5 * (d + b) / a
GOTO EX
Полезно отметить, что безусловный переход не популярен в програм-мировании и в некоторых языках соответствующие операторы отсут-ствуют.
b) Условный выбор имеет несколько форм (условный оператор):
1) Простое условие:
IF ‹условие› THEN ‹оператор›
2) Условие с альтернативой
IF ‹условие› THEN ‹оператор 1› ELSE ‹оператор 2›.
При этом оператор, оператор 1 (и, или) оператор 2 сами могут быть
условными операторами. Здесь условие - логическое выражение, воз-
можно с использованием логических функций : OR = "или", AND =
= "и", XOR = "разделенное или", NOT = "не", IMP = "импликация" в
соответствии с таблицей истинности:
Таблица 1
-
x
y
x OR y
x XOR y
x AND y
x IMP y
True
True
False
False
True
False
True
False
True
True
True
False
False
True
True
False
True
False
False
False
True
False
True
True
3) Блочная форма:
IF ‹условие› THEN
‹блок операторов›
ELSE
‹блок операторов›
END IF
При этом блок ELSE (который может отсутствовать, если нет альтер-
нативы) может сам принимать условие в виде блока
ELSEIF ‹условие› THEN
‹блок операторов›
с) Альтернативный выбор в блоке SELECR CASE, который имеет
конструкцию:
SELECT CASE ‹идентификатор›
CASE ‹выражение› 'конкретное значение
‹блок операторов›
CASE ‹выр.›, ‹выр.› IS ≥ ‹выр.› 'сравнение
‹блок операторов›
CASE ‹выр.› TO ‹выр.› 'перечисление
‹блок операторов›
CASE ELSE 'все остальное
‹блок операторов›
END SELECT
Например, пусть требуется выяснить, сколько в тексте TEXT$, запи-санном кириллицей, гласных букв до первого знака препинания. Зада-чу можно решить программой :
DEFINT I - N : DEFSTR T 'предопределение типов
L = LEN(TEXT$) : i = 0 : n = 0 : m = 0
TEXT$ = UCASE(TEXT$)
'Перевод символов в верхний регистр
START: i = i + 1 : t = MID$(TEXT$, i, 1)
SELECT CASE t
CASE "А", "Е", "И", "Й", "О", "У", "Ы", "Э", "Ю", "Я"
n = n + 1
CASE ".", ",", ";", "!", "?" : m = 1
END SELECT
IF i < L AND m = 0 THEN GOTO START
PRINT "Искомое число гласных = "; n
Участок программы START: … GOTO START лучше выполнить с помощью стандартной конструкции цикла (см. п. 7).