- •Оглавление
- •2.6. Модульное программирование
- •2.8. Численные методы анализа
- •2.1. Элементы языка
- •Мантисса e порядок
- •2.2. Операторы языка
- •Input [приглашение ;/,] список_вводимых_переменных
- •Операторы управления
- •If логическое_условие then оператор
- •If логическое_условие goto метка_оператора
- •If логическое_условие then оператор else оператор
- •I f логическое_условие then
- •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. Работа с дисковыми файлами
- •Тесты по курсу
- •Литература
2.7. ОбРаботка Символьных данных
Все символы в ПК имеют уникальные коды, значения которых закреплены в ASCII-таблице. С ней можно ознакомиться в любом справочнике.
В Бейсике имеются несколько функций и операторов обработки символьных данных.
LTRIM$(символьное_выражение) – удаляет начальные пробелы в символьном выражении.
RTRIM$(символьное_выражение) – удаляет конечные пробелы в символьном выражении.
SPACE$(числовое_выражение) – возвращает строку пробелов длиной N символов (N в пределах 0-32767).
STRING$(длина_строки, код_символа или символ) – возвращает строку длиной длина строки из символов, заданных непосредственно или своим кодом.
Пример. ?STRING$(6,”+”) Результат: “+++++”
INSTR([начальная_позиция],строка1, строка2) – возвращает позицию первого вхождения строки2 в строку1, начиная с начальной позиции. Если начальная позиция не задана, отсчет производится с начала.
Пример. ?instr(”Саша”,”а”),instr(3,”Саша”,”а”) Результат: 2,4
LEFT$(символьное_выражение, n) – возвращает строку, содержащую n первых символов.
Пример. ?LEFT$(”Саша”,2) Результат: ”Са”
RIGHT$(символьное_выражение, n) – возвращает строку, содержащую n последних правых символов.
Пример. ?RIGHT$(”Саша”,2) Результат: ”ша”
MID$(символьное_выражение, начальная_позиция [,длина]) – возвращает фрагмент символьного выражения, с начальной позиции заданной длины.
Пример. ?MID$(”теория”,4), MID$(”теория”,4,2) Результат:”рия”, ”ри”
MID$(строка, начальная_позиция [,длина])=символьное_выражение – символьный оператор, заменяющий фрагмент строки на символьное выражение, начиная с начальной позиции заданной длины.
Пример. x$ = "здесь вход"
MID$(x$, 7, 2) = "выход"
PRINT x$ Результат: "здесь выхо"
STR$(числовое_выражение) – возвращает символьное представление числа или числового выражения.
Пример. STR$(3) Результат: "3"
VAL(символьное_выражение) – возвращает числовое представление символьного выражения. Функция обратна функции STR$().
Пример. STR$("3") Результат: 3
LEN(символьное_выражение) – возвращает длину символьного выражения.
Пример. LEN(”теория”) Результат: 6
ASC(символ) – возвращает код символа ПК.
CHR$(число) – возвращает символ по его коду.
Примеры. ASC(“R”) Результат: 82 (код буквы R=82)
CHR(82) Результат: “R”
Т.е. функции эти обратны друг другу.
Текстовые данные можно сравнивать между собой на больше, меньше, равно. Сравниваются, конечно, не сами символы, а их коды. Так верным будет отношение “A”<”R”, поскольку ASCII-код (65) английской буквы А меньше кода (85) буквы R. Сравнивать можно и целые слова. Так верно отношение “TOM”>”JON”. Сравнение начинается с первой пары символов. Здесь код английской T (код 84) больше кода J (74). Остальные символы далее не сравниваются. Если же первая пара букв совпадает, будет проверена следующая пара и т.д. до первого несовпадения. Если число символов в сравниваемых словах различно, сравнение выполняется до исчерпания первого операнда. Рост кодов символов соответствуют их порядку в алфавите. Для русских символов это не совсем так (см. справочник).
Пример. Напечатать символьную переменную X$ в обратном порядке
x$="Внимание": y$ =""
FOR i = LEN(x$) TO 1 STEP -1
y$ = y$ + MID$(x$, i,1)
NEXT
PRINT y$ Результат: “еинаминВ“
Здесь в переменной y$ формируется нужный результат.
Тест. 2.7.1. Чему будет равно Х после завершения программы? 1). 456128, 2).561234, 3).341285.
y$=”123456”
x$= RIGHT$(y$,3)+LTRIM$(STR$(VAL(LEFT$(y$,3))+5))