Главная » Basic » СТРОКИ СИМВОЛОВ

0

Программа на языке Бейсик может без труда манипулировать  текстом, т. е. строками символов. Будучи  не  слишком элегантны  вследствие того,  что  обеспечиваются библиотекой  встроенных функций,  эти манипуляции достаточно эффективны.

Поэтому  строки символов могут  рассматриваться как  другой  тип объектов,  которыми можно манипулировать средствами Бейсика. В некото-

рых  языках  программирования делаются  попытки как  можно  шире распространить этот  вид манипуляций на все возможные объекты, но немногие языки преуспели в этом. В языке Бейсик и попытки не делается! Каждый тип объектов и ассоциированных с ним операций  обычно отделен от других типов и  операций, поэтому чисто внешне Бейсик представляет собой ряд отдельных, слабо связанных  частей.  Правда,  Бейсик имеет то  достоинство, что  не  только  теоретически  способен достаточно легко расширяться и изменяться, но и постоянно делает это.

4.2.1.  СТРОКОВЫЕ ПЕРЕМЕННЫЕ

Строка рассматривается как группа символов. В программе строки появляются в виде заключенных в кавычки групп символов и особенно интенсивно употребляются в операторах PRINT, например:

10   PRINT "ДОМ";Н;Т(Н) ; "ПИНТ МОЛОКА ОТПРАВЛЕНО"

Строка может содержать любую букву алфавита, любую цифру   и любой из специальных  символов, таких как "/£?;&=$@+-#., и  пробел. Она может содержать и  не печатаемые символы, вызывающие при печати строки некоторые действия, например перемещение курсора. В отличие от большинства операторов Бейсика, в строке пробел учитывается.

До  сих пор  мы  в  основном имели  дело с  переменными, способными хранить только числовые значения. Однако существует и другой тип переменных, которые способны хранить только строки и называются строковыми. Имена этих переменных выбираются по общему правилу, но в конце имени добавляется знак $. Между одноименными  числовыми и строковыми переменными не должно быть никакой связи; поэтому  строковая  переменная  А$  должна  полностью  отличаться от  числовой переменной   А.   Ниже  приводится мини-программа,   иллюстрирующая применение строковой переменной:

10 REM ПРИМЕР РАБОТЫ СО СТРОКАМИ СИМВОЛОВ

20 PRINT "НАЗОВИТЕ ВАШУ ФАМИЛИЮ. ПОЖАЛУЙСТА ";

30 INPUT A$

40 PRINT "ДОБРЫЙ ДЕНЬ, ";A$;"! КАК ПОЖИВАЕТЕ?"

50 END RUN

НАЗОВИТЕ ВАШУ ФАМИЛИЮ, ПОЖАЛУЙСТА

?УОЛШ

ДОБРЫЙ ДЕНЬ, УОЛШ! КАК ПОЖИВАЕТЕ? END AT LINE 50

Запустим ее еще раз: RUN

НАЗОВИТЕ ВАШУ ФАМИЛИЮ, ПОЖАЛУЙСТА

?27.6! ДОБРЫЙ ДЕНЬ,27.6!

КАК ПОЖИВАЕТЕ? END AT LINE 50

Все, что, дается в качестве ввода, помещается в строковую переменную и  позже  распечатывается.

Единственное ограничение состоит  в том, что в

Бейсике при вводе оператором INPUT запятая воспринимается как разделитель элементов данных.

Повторный запуск программы

RUN

НАЗОВИТЕ ВАШУ ФАМИЛИЮ, ПОЖАЛУЙСТА

?УОЛШ, ЛАРА

WARNING EXTRA INPUT IGNORED (Предупреждение дополнительный ввод проигнорирован)

ДОБРЫЙ ДЕНЬ, УОЛШ! КАК ПОЖИВАЕТЕ? END AT LINE 50

показывает, что запятая и  указанные после нее символы игнорируются. Если бы в строке 30 было указано  INPUT  A$,  B$,  то  первый  из  приведенных выше  элементов  данных  (УОЛШ)  был  бы помещен в А$, а второй (ЛАРА) -в В$. Правда, есть средство считать всю строку одной переменной невзирая на число запятых в строке (см. в подразд. 4.2.4) .

Другой  способ  считать строку  сложного  вида в  одну  переменную,   заключить ее  в  кавычки.

Повторим запуск программы: RUN

НАЗОВИТЕ ВАШУ ФАМИЛИЮ, ПОЖАЛУЙСТА? "УОЛШ,ЛАРА"

ДОБРЫЙ ДЕНЬ, УОЛШ,ЛАРА! КАК ПОЖИВАЕТЕ? END OF LINE 50

Как  и   числовым строковым  переменным в  программе  можно  присваивать  значения. Например,

допустимы следующие операторы:

10   А$="ЛАРА"

10  С$= ‘£25.6"

10   В$=С$

10   IF Y$ = "ДА" THEN 200

10  IF X$ <> AS THEN PRINT "ВСЕ В ПОРЯДКЕ"

Приведенные выше  операторы  IF  проверяют совпадение двух  строк.  Пробелы  принимаются  во внимание. Если бы Y$ содержала " ДА" (обратите внимание на ведущий пробел), то Y$ не совпала бы с "ДА".

Строки могут содержать от 0 до очень большого числа символов. Нулевое число символов содержит строка "", называемая пустой. Максимально  допустимая длина строки варьируется от системы к системе (табл. 4.1) .

Таблица 4.1.Максимальная длина строки в различных системах

Система

ВВС

Microsoft

СВМ

PET

Sinclair

ICL 2903/4

Максималь

ная длина строки (в символах)

255

255

255

Без

ограниче ний

511

Могут существовать и  ограничения на число символов, которые можно поместить в строку за один прием при вводе с клавиатуры или при составлении  оператора программы. Обычно эти ограничения связаны с реализацией системы и  определенным образом зависят от длины строки экрана ВТУ. В типичных случаях допустимый максимум равен длине строки (скажем, 40 или 60 символов), а более длинные строки могут быть образованы слиянием нескольких строк.

Приведенная  ниже  программа   довольно   элементарна   и     предназначена   для   подсчета   слов.

Распознаваемое слово вводится первым; затем вводится предложение, завершаемое точкой. Каждая

Обратите  внимание на использованную выше диаграмму "ПОВТОРЯТЬ ДО". Она указывает на то, что  проверка  происходит в  конце  цикла. В  большинстве систем такую  конструкцию можно реализовать с  помощью  оператора  IF,  но  в  некоторых  системах с  Бейсиком для  этой  цели предусмотрен оператор REPEAT-UNTIL (см. гл. 6). Сама программа такова:

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии