Строковые операторы и функции Автор: Алексей Юлия Вадимовна Место работы: ГБОУ РО СПО «Константиновский педагогический колледж»
ОСНОВНЫЕ ПОНЯТИИ И ОБОЗНАЧЕНИЯ Текстом, символьной строкой, строкой символов или просто строкой в Бейсике называют совокупность вводимых с клавиатурой символов. Имена строковых переменных отличаются от обычных добавлением знака $. Сами строки как правило заключаются в кавычки.
СТРОКОВЫЕ ПЕРЕМЕННЫЕ Отличаются от обычных добавлением знака $. В таких переменных могут содержаться как отдельные символы, так и их последовательности длиной до 255 символов. Каждый символ, представленный на клавиатуре для компьютера переводится в числовой код. Эти коды объединены в стандартную международную таблицу кодов ASCII. Можно определить код любого символа, используя специальные функции ASC и CHR$.
МЕЖДУНАРОДНАЯ ТАБЛИЦА КОДОВ ASCII
СТРОКОВЫЕ ПЕРЕМЕННЫЕ Коды с 0 по 32 не имеют изображения на экране и служат для функций управления (пробел, клавиши управления курсором и т. д.). Далее - знаки препинания, цифры, строчные и прописные буквы латинского алфавита и другие символы, которые вы можете найти на клавиатуре. Всего их 128. А еще 128 кодов (от 129 до 255) служат для расширения возможностей клавиатуры, например для генерации национальных символов в нашем случае для кириллицы.
ФУНКЦИИ ASC Функция ASC определит нам код ASCII для первого символа этой строковой переменной и имеет следующую форму записи: ASC(строковая_переменная) Например: символ или текст N=ASC("F") – символ или текст ? " Код заглавной буквы F "; N В результате получим: Код заглавной буквы F 70 Например: строковая переменная Х$=YAHOO – строковая переменная N=ASC(X$) ?N В результате получим код первого символа, входящего в слово "YAHOO", т. е. "Y", который равен 89. Следует помнить, что коды заглавных и строчных букв разные. ASC Кроме того, если мы напрямую указываем в функции ASC символ или текст, то он берется в кавычки (первый пример), а если это строковая переменная, то без кавычек (второй пример).
ФУНКЦИИ CHR$ CHR$ Функция CHR$ определит нам символ, код которого указан в скобках. Форма записи функции: CHR$(код) Например: CLS 1: INPUT "Введите любой код от 33 до 128"; N IF N =128 THEN ? "Обратите внимание на числовые границы для кода": GOTO 1 ? "Символ с кодом "; N; "- это"; CHR$(N)
ФУНКЦИИ ДЛЯ РАБОТЫ С ASCII- КОДАМИ: ASC (строковая переменная) определяет ASCII-код для первого символа строки ( строковой переменной) Пример: ASC("A") = 65, ASC("BIT") = 66 CHR$ (код) функция, переводит ASCII-код в символ Пример: CHR$(67) - "С" CHR$(68) = "D"
Обратите внимание на оформление программы Сначала выполняется очистка экрана. Затем запрос кода. Если он введен не в требуемых пределах, то программа возвращает человека к запросу простейший, но очень полезный способ помочь пользователю. Опробуйте представленную выше программу и узнайте, что за символы скрываются под кодами 206, 234, 229, 233, 33. Определите коды первых символов Вашего имени и Фамилии. Окей!
Обратите внимание на оформление программы Эти программы грамотно работают для первых стандартизированных 128 кодов. Чтобы правильно работать, например, с русским текстом, надо знать коды строчных и прописных букв кириллицы, которые скрываются в интервале от 129 до 255.
ФУНКЦИЯ INPUT$ Эта функция ожидает ввода N символов, которые и будут обрабатываться программой сразу после их набора на клавиатуре, не дожидаясь нажатия клавиши. В этом заключается принципиальное отличие функции от оператора INPUT. Например: CLS N$=INPUT$ (2) IF N$="да" THEN ?N$ ELSE ?"нет" В данном случае программа после ввода с клавиатуры последовательности символов, анализирует ее, выделяя только два первых символа, и действует в зависимости от проверяемого условия.
ФУНКЦИЯ LEN Синтаксис: LEN(строковая_переменная) Например, CLS INPUT "Введите Вашу фамилию"; F$ N=LEN(F$) ? "В вашей фамилии "; N; "букв" Представленная программа выясняет количество букв во введенной пользователем фамилии. Причем, обратите внимание, что функция LEN учитывает не только буквы, но и символы, т. е. она распознает и пробелы, и знаки препинания, и цифры, содержащиеся во введенном тексте. Например: CLS INPUT "Введите Ваш адрес"; F$ N=LEN(F$) ? "В вашем адресе "; N; "символов" Определите с помощью предыдущего примера, сколько символов будет в следующей фразе: А роза упала на лапу Азора
Строковые операторы и функции LEN (строковая переменная) функция, возвращает длину строки. Пример: а$ = "дискета", LEN(a$) = 7 LEN(" экран") =5
ФУНКЦИИ LEFT$, RIGHT$ И MID$ Для получения фрагмента строки (или значения строковой переменной) применяются специальные функции. Функция LEFT$ выделяет из введенной строковой переменной n символов слева: LEFT$(строковая_переменная, N) Например: CLS F$="ГАЗОНОКОСИЛЬЩИК" L$=LEFT$(F$, 5) ? L$ На экране появится слово "ГАЗОН", т. е. первые пять символов слева исходной строковой переменной.
LEFT$ (строковая переменная, N) функция, выделяет из строковой переменной, N символов слева. Пример: а$ = "паровоз" LEFT$("сокол", 3) = LEFT$(a$, 3) ="пар" "сок
ФУНКЦИИ LEFT$, RIGHT$ И MID$ Функция RIGHT$ вырезает из введенной строковой переменной N символов справа: RIGHTS(строковая_переменная, N) Например: CLS F$="ГАЗОНОКОСИЛЬЩИК " R$=RIGHT$(F$, 9) ? R$ На экране появится слово "КОСИЛЬЩИК", т. е. первые девять символов справа исходной строковой переменной.
RIGHT$ (строковая переменная, N) функция, выделяет из строковой переменной, N символов справа Пример: RIGHT$("вода", 2) = а$ = "пароход" RIGHT$(a$, 3) = "ход" "да"
ФУНКЦИЯ MID$ Функция MID$ извлекает N2 символов, начиная с Ni исходной строковой переменной: MID$(строковая_переменная, N1, N2) Например, CLS F$="ГА3ОНОКОСИЛЬЩИК" M$=MID$(F$, 7, 4) ? М$ На экране появится слово "КОСИ", т. е. четыре символа, начиная с седьмого исходной строковой переменной.
MID$ (строковая переменная, N1, N2) функция, извлекает N2 символов из строковой переменной, начиная с N1 символа. Пример: а$ = "сокол" MID$(a$, 2, 3) = MID$("сокол", 3, 3) = "око" "кол"
ФУНКЦИИ LEFT$, RIGHT$ И MID$ Используя значение текстовой переменной А$=ЛИТЕРАТУРА. Определить значения текстовых функций: LEFT$(A$,6) RIGHT$(A$,3) MID$(A$,3,5) LEN(A$) MID$(A$,3,3)+MID$(A$,8,1)
ЗАДАНИЯ Задана строка а$ = "10 мая 2001 года". Записать значения следующих функций: b = LEN(a$); с$ = LEFT$(6, a$); d$ = RIGHT$ (6, а$); е$ = MID$(a$, 8, 4); f$ = UPCASE$(a$); g$ = MID$(a$, 8); n$ = MID$(a$, 15) + MID$(a$, 4, 2); p$ = LEN(MID$(a$, 10))
Переходим к решению задач на ПК: Написать программу, которая выдаст на экран 5 слов из слова ЭЛЕКТРИЧЕСТВО. Написать программу, которая будет считать количество букв «а» во введенном слове. Написать программу, которая напечатает текст, введенный с клавиатуры, но в каждой последующей строке удаляется одна буква сначала, например: ПОБЕДА ОБЕДА БЕДА ЕДА ДА А
Интересная задача Используя пример с подсчетом слов в телеграмме, напишите программу, имитирующую отделение связи с очень хорошим обслуживанием. Программа должна выяснять имя клиента и в дальнейшем обращаться к нему только по имени. Запрашивается также регион, куда посылается телеграмма. Их три Россия (коэффициент 1), страны СНГ (стоимость одного слова умножается на 2) и дальнее зарубежье (стоимость одного слова умножается на 5). По России стоимость одного слова составляет 1 руб. 50 коп. (причем неважно, какой длины слово). Затем у клиента запрашивается текст телеграммы и денежная сумма, определяется количество слов, стоимость телеграммы. Если денег ровно столько, сколько надо, его благодарят и прощаются. Если больше, чем надо, то ему предлагают сдачу и прощаются. Если меньше, то просят добавить необходимую сумму, а затем, после расчета, с клиентом прощаются. А для пущей красоты я обычно прошу нарисовать окошко телеграфа, в прорезях которого и происходит диалог компьютера с пользователем (рис. 1).
Домашнее задание: Основное: выполнить не менее трех заданий из ниже перечисленных: Из "информатика" получить "форма" и "рифма". Из "индивидуальность" получить "диво" и "лавина". Из "структура" получить "рак" и "трут". Из "стандартизация" получить "заря" и "артист". Преобразовать тексты: Из текста "береги честь смолоду" получить текст "смолоду честь береги". Из текста "один с сошкой, а семеро с ложкой" получить текст "семеро с ложкой, а один с сошкой". Из текста "мал золотник, да дорог" получить текст "дорог золотник, да мал". Из текста "на всякого мудреца довольно простоты" получить текст "на мудреца всякого простоты довольно".
Домашнее задание: Творческое: Дополните задачу «Телеграф» рисунками, орнаментом, движением геометрических фигур и т.д. Готовый проект нужно будет продемонстрировать на следующем уроке, программа должна быть записана в тетради.