Урок 13

Меню

Урок 15

Урок 14.
Функции преобразования типов данных.
Применение кодов символов.

     На прошлых уроках мы познакомились с функциями обработки символьных величин, в частности с функциями обработки строк.

     Сегодня мы продолжим изучение функций обработки символьных величин и познакомимся с функциями преобразования типов данных. Эти функции названы так потому, что аргументы и результаты этих функций — величины разных типов. Так, если аргумент функции — символьная величина, то результатом функции сбудет число, и наоборот.

Функция CHR$(N) (от англ. CHaRacter — символ)

выдает символ, ASCll-код которого равен N.

CHR$(66) = "В" (латинская буква)

CHR$(62) = ">"

Функция VAL(X$) (от англ. VALue — значение)

преобразует последовательность символов, соответствующую символьной записи числа на Бейсике, в число (десятичный код).

     При преобразовании в строковом представлении допустимы стоящие впереди пробелы, знаки “+” и “-” (перед цифрами), цифры, десятичная точка, знаки Е и D (экспоненциальное представление числа). Если нецифровой знак первый, то значение функции равно 0. Пробелы в записи, расположенные до цифр, игнорируются.

VAL("123" + "45") = 12345

VAL("-55 + АБ") = -55

VAL("12.5ABC")=12.5

VAL(" 32.121")= 32.121

VAL("ABC") = 0

VAL("ABC12")=0

Функция АSС(Х$)

вычисляет значение ASCII-кода первого символа строки Х$.

ASC("F") = 70

ASC("house") = 104

     Часто функция ASC используется в тестовых (контролирующих) программах, когда хотят проверить правильность ответов или данных, введенных пользователем.

Функция STR$(x) (от англ. STRing — строка)

преобразует числовой аргумент в строку (текст) цифр в десятичном виде. Для положительных чисел в строковом представлении содержится ведущий пробел.

STR$(125) = " 125"

STR$(&HFF) = " 255"

STR$(-15.6)="-15.6"

     С помощью рассматриваемых функций расширяются способы решения задач с символьными величинами. Вспомним задачу сравнения символьных величин. Ту обработку, которая производилась вручную, теперь можно возложить на компьютер.

Задача 1.

     Сравните два введенных с клавиатуры слова.

Решение.

Используемые величины:

А$, В$ — вводимые слова;

N —длина А$;

М—длина В$;

Р — наибольшая длина слов;

I — номер символа в А$;

J — номер символа в В$;

К — номер вырезаемого символа;

А1$ — символ, вырезаемый из А$;

В1$ — символ, вырезаемый из В$.

     Вводятся слова А$ и В$ и находятся их длины N и М соответственно. Если эти длины совпадают, то обработка продолжается. Если первое слово длиннее второго, то P=N и слово В$ дополняется пробелами до длины второго слова, иначе Р=М и дополняется пробелами слово А$. Далее вырезается по одному символу из А$ и В$ — А1$ и В1$ и сравниваются коды этих символов. Если все ASC(A1$)=ASC(B1$), то выводится "А$=В$"; если на каком-то шаге ASC(A1$)<ASC(B1$), то "А$<В$", иначе "А$>В$".

     INPUT A$, B$
     N = LEN(A$)
     М = LEN(B$)
     IF М - N THEN GOTO 12
     IF N > М THEN GOTO 6 ELSE GOTO 9
6   FOR I - М + 1 ТО N
          В$ = В$ + " "
     NEXT I
     GOTO 12
9   Р = М
     FOR J = N + 1 ТО М
          А$ =А$ + " "
     NEXT J
     GOTO 125
12 Р = N
125 FOR К = 1 ТО Р
          А1$ - MID$(A$,K,1)
          В1$ - MID$(B$,K,1)
         IF ASC(A1$) > ASC(B1$) THEN GOTO 18
         IF ASC(A1$) =ASC(B1$) THEN GOTO 17 ELSE GOTO 20
17 NEXT К
     PRINT A$; "="; В$
     GOTO 21
18 PRINT A$; ">"; В$
     GOTO 21
20 PRINT A$; "<"; В$
21 END

Задача 2.

     Подсчитайте во введенном тексте количество букв и количество цифр.

Решение.

Используемые величины:

А$ — вводимый текст;

S — счетчик букв;

N — счетчик цифр;

В — код вырезаемого символа;

I — номер символа в тексте.

     Задаются нулевые значения счетчика букв S и счетчика цифр N. Текст просматривается начиная с первого символа, вырезается по одному символу и проверяется код В этого символа. Если он находится на отрезке [65,90], или [97, 122], или [192, 254], то вырезанный символ — буква и необходимо увеличить значение S на 1. Если код символа принадлежит отрезку [48, 57], то это цифра и необходимо увеличить значение N на 1. При достижении конца текста на экран выводятся значения S и N.

S = О
N = О
INPUT "ВВЕДИТЕ ТЕКСТ";А$
FOR I = 1 ТО LEN(A$)
     В = ASC(MID$(A$,I,1))
     IF (В >= 65 AND В <= 90) OR (В >= 97 AND В <= 122)
     (В >= 192 AND В <= 254) THEN S = S + 1
     IF В >= 48 AND В <= 57 THEN N = N + 1
NEXT I
PRINT "БУКВ-"; S; ", "; "ЦИФР-"; N
END

Задания для самостоятельного решения.

Задача 1.

Напишите программу, проверяющую, являются ли различными все цифры во введенном четырехзначном числе.

Задача 2.

Напишите программу, определяющую частоту вхождения в текст букв.

Задача 3(дополнительная).

Напишите программу замены во введенном предложении всех прописных букв строчными.

Урок 13

Меню

Урок 15

Яндекс цитирования Rambler's Top100
Сайт создан в системе uCoz