КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 14. Определить к какому языку и регистру клавиатуры относится данная буква.
Выделение логической группы Пример 11.Удалить первый и последний символ текстовой переменной. a$ = " В Россию можно только верить." a$ = LEFT$(a$, LEN(a$) - 1) a$ = RIGHT$(a$, LEN(a$) - 1) PRINT a$ Выделение знаков, номера которых обладают определенными свойствами, происходит с использованием операторов логической передачи управления. Пример 12. Сформировать В$, состоящую из знаков A$. порядковые номера, которых кратны N. n = 3 a$ = "cиСтеМныЙ бЛок" FOR i = 1 TO LEN(a$) tmp$ = MID$(a$, i, 1) IF i / n = i \ n THEN B$ = B$ + tmp$ NEXT i PRINT B$ Результат: СМЙЛ! Работа программы. Программа выделяет каждый третий знак строки A$ и прибавляет его к В$, в которой накапливается текстовая сумма выделенных знаков. Условие выбора описано в операторе IF. Логической группой называют совокупность знаков, которая объединена общими свойствами. К таким группам можно отнести гласные и согласные буквы русского алфавита, буквы латинского алфавита, цифры, строчные и прописные буквы и многие другие. Каждый алгоритм анализа символа содержи три основных действия: 1. Выделение. 2. Анализ. 3. Обработка по условию. Анализ заключается в проверке, соответствует ли знак условию принадлежности к логической группе. Как правило, анализ основан на сравнении выделенного знака с определенным ASCII-кодом или диапазоном номеров. Обработка в соответствии с решаемой задачей определяет то, что нужно делать с выделенным символом или текстом в целом, и может подразумевать большой спектр действий. Пример 13. Определить, сколько в слове «АВРОРА» русских букв А и Р. A$ = "ABPOPA" FOR i = 1 TO LEN(A$) tmp$ = MID$(A$, i, 1) IF tmp$ = "A" OR tmp$ = "P" THEN k = k + 1 NEXT i PRINT k Результат: 4 Приведенная программа имеет недостаток — она определяет наличие только заглавных А и Р. Если значение исходной переменной присваивается оператором INPUT, то есть вводится пользователем, то при вводе строчных букв результат будет неверным. INPUT a$ SELECT CASE ASC(a$) CASE 65 TO 90: PRINT " Лат.ЗАГЛАВНАЯ " CASE 97 TO 122: PRINT "Лат. Строчная" CASE 12 TO 159: PRINT "Русс. ЗАГЛАВНАЯ" CASE 160 TO 175: PRINT "Русс. Строчная" CASE 224 TO 239: PRINT "Русс. Строчная" CASE ELSE: PRINT "НЕ является БУКВОЙ" END SELECT Работа программы. Алгоритм основан на использовании конструкции логической передачи управления SELECT CASE. Она анализирует ASCII-код введенного знака, который выдает функция ASC. В каждом CASE указан диапазон возможных значений, соответствующей группе букв. Большой спектр задач выделения и анализа фрагментов строк решается с помощью функции INSTR. Пример 15. Определить, входит ли строка В$="dow" в слово, A$ = "Windows". INPUT A$ INPUT B$ k = INSTR(A$, B$) IF k > 0 AND LEN(B$) > 0 THEN PRINT "Yes" ELSE PRINT "No" END Результат: Yes Работа программы. Алгоритм основан на работе функции INSTR. Результатом ее работы является целое число k равное номеру знака в А$, с которого начинается вхождение B$. Естественно, что если k больше нуля, то В$ входит в А$. Условие в операторе IF состоит из двух компонентов. В одном проверяется значение k, во втором (LEN(B$) > 0) — длина переменной В$. Второе условие введено для того, чтобы выдать отрицательный ответ в случае ввода нулевой переменной. Иначе при В$="" значение k будет равно 1, и программа определит вхождение. Пример 16. Определить, сколько раз B$ входит в A$. A$ = "промышленное производство проводов" B$="про" i = 1 k = 0 DO x = INSTR(i, A$, B$) IF x > 0 THEN i = x + LEN(B$) ' Номер начала поиска k = k + 1 ' Счетчик вхождений ELSE EXIT DO ' Выход из цикла END IF LOOP PRINT "всего вхождений="; k Результат: Всего вхождений= 3 Работа программы. Цикл DO …LOOP использован потому, что заранее неизвестно, сколько будет вхождений. В строке i = x + LEN(B$) номер начала поиска передвигается направо. Если программа найдет первое вхождение, то нужно будет продолжить поиск с позиции, номер которого равен номеру начала вхождения плюс длина искомого слова. В примере первое вхождение «про» в «промышленное производство проводов» начинается с первой позиции, следователь но, продолжать поиск нужно с 4-й позиции (1 + LEN(B$)=1+3=4). Если обнаруженное вхождение нужно заменить другой строкой, то используют оператор MID$. Пример 17. Заменить все пробелы на тире в тексте А$. A$= "Погиб поэт! невольник чести!" FOR i = 1 TO LEN(A$) IF ASC(MID$(A$, i, 1)) = 32 THEN MID$(A$, i, 1) = "-" NEXT i PRINT A$ Результат: Погиб-поэт!-невольник-чести! Работа программы. В цикле поочередно выделяются знаки переменной А$. Функция ASC определяет АSCII-код знака, но в том случае, если номер равен 32 (ASCII-код пробела), оператор MID$ заменяет текущий символ знаком «минус» (тире). Сортировка текстовых массивов
Дата добавления: 2017-02-01; Просмотров: 83; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |