- •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.4. Строки
Идентификатор символьной переменной (или функции) должен иметь "суффикс" $, либо предопределен оператором DIM, либо опера-тором DEFSTR. Например, строка DEFSTR U-V определяет все иден-тификаторы, начинающиеся на буквы u, v как имена объектов строко-вого типа (длина такой строки, в общем, произвольна, но часто огра-ничивается 128 символами). Оператор DIM text AS string*12, напри-мер, определяет идентификатор text как имя строковой переменной, содержащей не более 12 символов. Строковая константа содержит произвольный текст, заключенный в кавычки. Ввод с клавиатуры и вывод на экран строк осуществляется операторами INPUT и PRINT без особенностей. Приведем неполный список функций, обрабатыва-
ющих строки.
+ - сложение (конкатенация) строк,
ASC : символ → код,
CHR$ : код → символ,
HEX$(x) возвращает строку 16-чного представления числа х,
INSTR([i], x$, y$) возвращает номер позиции, где впервые сим-
вол из y$ совпадает с символом из x$, начиная с позиции i.
LEFT$(x$, i) возвращает i левых символов из x$.
RIGHT$(x$, i) возвращает i правых символов из x$.
LEN возвращает количество символов строки.
MID$(x$, i, j) выделяет подстроку в x$ длиной в j символов, на-
чиная с i-й позиции (если аргумент j отсутствует, функция
возвращает все символы строки, начиная с i – го).
STRING$(i, j) возвращает строку из i (одинаковых) символов
с кодом j (можно вместо кода указывать сам символ).
STR$ : преобразует число в строку.
VAL : преобразует строковое выражение в число.
UCASE$, LCASE$ преобразуют элементы строки к верхнему и
нижнему регистру.
Полезны также два оператора LSET x$ = y$ и RSET x$ = y$, передающие y$ в x$ с выравниванием фиксированной длины соотве-тственно по левому и правому краю. Эти два оператора необходимы также для заполнения поля буфера при работе с файлами произвольно-го доступа (см. п.11).
Функция MID$ единственная, которой разрешено находиться слева от оператора присваивания (с целью замены части строки). Нап-ример, если x$ = "крот", то операция MID$(x$, 2, 3) = "лоп" заменяет в x$ последние 3 буквы, так что теперь x$ = "клоп".
Функция INKEY$ возвращает символ нажатой в данный момент клавиши клавиатуры - это бывает полезно для вмешательства в прог-
рамму в процессе ее работы.
1.5. Операторы def, dim, пользовательский тип
Уже отмечено ранее, что стандартные типы данных могут быть предопределены с помощью оператора DEF. Для определения отдель-ной переменной (или константы) полезно использовать оператор DIM [AS] (см. п. 4 - предопределение строк). Для определения сложного (пользовательского) типа следует использовать оператор TYPE. Опре-делим, например, переменную типа PERSON, содержащую имя, воз-
раст, адрес и телефон:
TYPE PERSON
NAM AS STRING * 10
AGE AS INTESER
ADRESS AS STRING * 20
TELEPHONE AS LONG
END TYPE
Теперь можно определить целый пакет (массив) из 11 переменных ти-
па PERSON (индексация начинается с нуля, см. п. 9):
DIM KNOWN(10) AS PERSON
Каждая позиция (поле) типа отделяется от имени переменной сложно-го типа точкой. Например, изменить телефон переменной KNOWN c
индексом 7 можно операцией KNOWN(7).TELEPHONE = 2317580.