Символьные переменные Переменные в Бейсике ГБОУ СОШ № 840 До сих пор мы имели дело только с переменными, значениями которых являются числа. Их называют числовыми переменными. В Basic имеется возможность использовать также переменные, значениями которых являются строки символов — так называемые символьные (или строковые) переменные. Символьные переменные обозначаются так же, как и числовые, т. е. буквой или буквой и цифрой с добавлением символа $ (знак доллара). Например, A$, В1$ и т. д. Длина символьной переменной (количество составляющих ее символов) может изменяться от 0 (пустая строка) до 255 символов. ГБОУ СОШ № 840 Задание значений символьных переменных осуществляется: 1. При помощи операторов ввода INPUT или READ,DATA. В операторе DATA строка символов заключается в кавычки. При использовании оператора INPUT значение символьной переменной при вводе должно заключаться в кавычки, если среди составляющих ее символов есть запятая (,). В остальных случаях использование кавычек не обязательно. 2. Оператором присваивания. Например, A$= "МОСКВА" Строка символов в правой части оператора задается в кавычках. ГБОУ СОШ № 840 Значения символьных величин, как и числовых, можно вывести при помощи операторов PRINT и PRINT USING. В списке вывода может быть указано имя символьной переменной или константа (строка символов), заключенная в кавычки или апострофы. Например, если A$= "ИВАНОВ”, B$= "ПЕТРОВ", то при выполнении оператора PRINT A$; "И"; В$ будет выведено ИВАНОВ И ПЕТРОВ В операторе PRINT USING для вывода символьных величин используются следующие символы форматирования: & - выводится вся строка; ! - выводится только первый символ строки; \ \ - выводится n символов, где n равно количеству пробелов между символами \ (обратный слэш) плюс 2. ГБОУ СОШ № 840 Пример. Ниже приведена программа, иллюстрирующая применение символов форматирования для вывода символьных данных. Программа A$=”ABCDEFGH” PRINT USING “&”; A$ PRINT USING “!”; A$ PRINT USING “\ \”; A$ END ABCDEFGH A ABCD В третьем операторе PRINT USING между символами \ введены два пробела, поэтому n=4, и на экран выводятся 4 символа строки A$. ГБОУ СОШ № 840 Символьные переменные можно сравнивать в условных операторах. Сравнение основано на том, что каждый символ в памяти ЭВМ представляется двоичным кодом и при сравнении символьных переменных происходит сравнение кодов составляющих их символов. Сравнение символьных переменных осуществляется посимвольно, начиная с первого символа. Если первые символы обеих переменных совпадают, то сравниваются вторые и т.д. Если длины (количество символов) сравниваемых переменных не совпадают, то меньшее дополняется пробелами (пробел является самым младшим символом). Например, при выполнении оператора IF A$ > B$ THEN PRINT A$ если A$="ИВАНОВ", B$="АНДРЕЕВ", условие выполняется и происходит вывод содержимого переменной A$. ГБОУ СОШ № 840 Операции и стандартные функции для символьных величин. Для символьных переменных определена одна операция: конкатенация (обозначается символом +). При выполнении этой операции две переменные объединяются в одну. Например, в результате выполнения операторов A$ =”МОС” : B$=”КВА” C$ =A$ + B$ PRINT C$ на экране будет выведено МОСКВА Кроме операции конкатенации, для символьных переменных определены стандартные функции. ГБОУ СОШ № 840 Кроме операции конкатенации, для символьных переменных определены стандартные функции. ASC(X$)переводит двоичный код символа в 10-ичное число. Функция применима только для переменной Х$, содержащей один символ. Например, X$=”Q” PRINT ASC(X$) В результате будет напечатано 81 LEN(X$) находит длину символьной переменной (т.е. количество составляющих её символов, включая конечные пробелы). Например, T$=”МОСКВА” X=LEN(T$) ГБОУ СОШ № 840 В результате будет напечатано Х=6. LEFT(Х$, N) возвращает первые N символов строки Х$. RIGHT(Х$, N) возвращает последние N символов строки Х$. Например, A$ = ”MICROSOFT BASIC” PRINT LEFT$(A$, 5) PRINT RIGHT$(A$, 5) В результате выполнения этих операторов будет выведено: *MICRO* *BASIC* ГБОУ СОШ № 840 MID$(Х$, N, [M])возвращает последние M символов строки Х$, начиная с символа, позиция которого равна N. Если параметр M опущен, то функция возвращает все символы строки Х$, начиная с символа, позиция которого равна N. Например, A$ = ”MICROSOFT BASIC” PRINT MID$(A$, 6, 4) В результате выполнения этих операторов будет выведено: SOFT ГБОУ СОШ № 840 Например: Комбинируя операции + и MID$ можно из слова ЖЕЛЕЗНОДОРОЖНИК получить слово ДОЗОР: 10 А$ = »ЖЕЛЕЗНОДОРОЖНИК» 20 D$ = MID$(A$,8,2)+ MID$(A$,5,1)+ MID$(A$,9,2) Для вывода полученного результата существует, уже знакомый вам, оператор PRINT. 30 PRINT D$ Задача: Из слов «АРИФМЕТИКА» и «ОПЕРА» с помощью операций + и MID$ составить слово «АРИФМОМЕТР» Кроме слов мы можем также собирать предложения. Чем слово отличается от предложения? Предложение состоит из слов, пробелов и знаков препинания. ГБОУ СОШ № 840 Например: Из слов секрет, материя, сериалы, волшебные с помощью операций + и MID$ составить предложение: Секретные материалы. 10 A$= »СЕКРЕТ» 20 B$= ”МАТЕРИЯ” 30 C$= “СЕРИАЛЫ” 40 D$= “ВОЛШЕБНЫЕ” 50 E$= “ “ 60 F$= A$+MID$(D$,7,3) 70 X$= MID$(B$,1,5)+ MID$(C$,4,4) 80 Y$= F$+E$+X$ 90 PRINT Y$ ГБОУ СОШ № 840 Задача: Из слов солнце, небыль, округ, вечный с помощью операций + и MID$ составить предложение: Солнечный круг, небо вокруг! ГБОУ СОШ № 840