- •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. Сглаживание и осреднение рядов
- •Задания
- •Литература
If k then print "пароль принят" else print "ошибка пароля"
Пример 4. Текст (строковое выражение) содержит целое число, цифры которого перемешаны с другими символами. Найти квадрат
этого числа. Задача решается кодом:
DEFSTR S-T
DEFLNG I-N 'предопределение типов
Input "Введите произвольный текст : ", txt
m = 1: n = 0
FOR i = 1 to LEN(txt): s = MID$(txt, i, 1)
SELECT CASE s
CASE "0" TO "9": n = 10*n + VAL(s) ' формирование числа
CASE "-": IF (m > 0) AND (n = 0) THEN m = -1 'знак числа
END SELECT
NEXT
IF n = 0 THEN
PRINT "Чисел нет."
ELSE
PRINT "Число = "; m * n; " с квадратом = "; n * n
END IF
Если бы потребовалось из текстовой информации извлечь последова-тельность целых чисел, разделенных произвольными символами, и просуммировать эти числа, то код программы был бы несколько иной.
Приведем вариант кода, начинающегося с оператора цикла FOR:
FOR i = 1 TO LEN(txt): s = MID$(txt, i, 1)
SELECT CASE s
CASE "0" TO "9": n = 10 * n + VAL(s) ' формирование числа
CASE ELSE
IF n > 0 THEN
nsum = nsum + m * n: n = 0 "суммирование чисел
END IF
IF s = "-" THEN m = -1 ELSE m = 1 'определение знака числа
END SELECT
NEXT: nsum = nsum + m * n 'добавка последнего числа
PRINT "Результат = "; nsum
Пример 5. Вывести на экран заданный текст, слова которого раз-делены пробелами. При выводе каждое слово должно быть написано в
обратном порядке, но последовательность слов сохранена.
DEFINT I-N
DEFSTR S-T
txt = " … ": n = LEN(txt) : i = 1
DO: j = INSTR(I, txt, " ") : IF j = 0 THEN j = n + 1
FOR k = j TO i STEP -1 : PRINT MID$(txt, k, 1); : NEXT
PRINT " "; : i = j + 1
LOOP UNTIL j = n + 1
Если слова в тексте разделены не только пробелами, но и другими разделителями (например, знаками препинания, арифметическими знаками, скобкамим и т. д.), то полезно использовать альтернативу
SELECS CASE как, например, в коде
DEFSTR R-T
DEFINT J
txt = " … " : t = "" : res = ""
FOR j = 1 TO LEN(txt) : s = MID$(txt, j, 1)
SELECT CASE s
CASE " ", ".", ";", ",", "?", "!", "(", ")", "[", "]", "-", "+", "*", "/"
res = res + t + s : t = ""
CASE ELSE : t = s + t 'обратный порядок
END SELECT
NEXT : res = res + t : PRINT res
Например, если введен текст: [Ку –ку!]-Два + 0357 , то на экран будет выведено сообщение: [уК –ук!]-авД + 7530.
С помощью циклов удобно вычислять всевозможные суммы, про-изведения, особенно когда вычисления следует проводить с заданной точностью. При этом полезно выяснить алгоритм изменения слагае-мых (сомножителей), затем использовать этот алгоритм в программи-ровании конкретного заадания.
Пример 6. Вычислить приближенное значение cos(x) с помощью степенного ряда cos(x) = (-1)n с погрешностью не более = 0.00001. Значение х вводится с клавиатуры. Здесь первые несколь-ко слагаемых ряда можно записать в виде: 1 - + - + … Очевид-но, n – e слагаемое отличается от (n - 1) –го множителем ,
поэтому задачу можно решить кодом:
DEFINT I : DEFSNG P - X