Диалекты бейсика для ZX Spectrum 1992 г.

Спектрум Бейсик - Операции с символами.


ОПЕРАЦИИ С СИМВОЛАМИ_

ТО, LEN, STR$, VAL

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

Простейшее действие, которое можно выполнить над символьными значениями, — это сложить их с помощью обычного знака +:

PRINT "BAS"+"IC" BASIC

Результат такой же, как если бы мы попросили компьютер напечатать слово BASIC целиком (PRINT "BASIC").

В Бейсике ZX Spectrum можно выполнить операцию, обратную сложению: выделить из символьного значения некоторую его часть — подстроку. Это действие также называют сечением. Для его выполнения после строки символов в скобках через ключевое слово ТО указывается, с какого и по какой символы требуется выделить подстроку:

PRINT "ABCDEF"(2 ТО 5) BCDE

Если подстрока выделяется, начиная с первого символа, то можно писать сокращенно: (ТО 5). И, аналогично, если подстрока выделяется до конца символьной строки, то разрешается записать: (2 ТО). Допустимо задавать сечение и вообще без параметров:

PRINT "ABCDEF"(TO) ABCDEF

Последнее сечение можно было записать и без ТО: ABCDEF0

Слово ТО также можно опустить, если выделяется лишь один символ, то есть вместо (3 ТО 3) использовать (3):

PRINT "ABCDEF"(3) С

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

PRINT "ABCDEF"(2 ТО 10) — и получите внизу экрана сообщение Subscript wrong (неправильный индекс).

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

С помощью функции LEN можно выяснить длину символьной строки, то есть определить, сколько позиций займет она на экране при печати4:

PRINT LEN " SINCLAIR " 1#

Пробелы также считаются символами и учитываются при расчете длины.

Функция STR$ преобразует числовые значения в символьные («прицепляет» к числу кавычки). Например, STR$ 3 возвращает символьное значение "3м.

Можно рассчитать его длину:

PRINT LEN STR$ 3 1

При необходимости можно выполнить преобразование, обратное функции STR$, — превратить строковое значение в числовое. Нужно только воспользоваться функцией VAL:

PRINT VAL "5.25"—2.25 3

VAL «оторвала» кавычки, превратив строковое значение в нормальное число, с которым можно производить математические операции.

Функция VAL может обрабатывать и числовые выражения, представленные как символьные значения. Например:

PRINT VAL "353+1"

Если VAL применить к символьному значению, не имеющему ничего общего с числами, то компьютер воспримет это как ошибку.

Символы и их коды

CODE, CHR$

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

ZX Spectrum так организован, что ключевые слова Бейсика (PRINT, VAL ит. д.) также являются отдельными знаками, каждый со своим кодом*.

Всего в ZX Spectrum определено 256 символов с кодами от 0 до 255. Полный набор и тех и других можно посмотреть в таблице символов на стр. 100.

Выяснить, какой код соответствует символу или, наоборот, символ — коду, можно и не пользуясь таблицей, а с помощью функций CODE и CHR$:

PRINT CODE "А" 65

Так мы узнали, что код заглавной буквы А равен 65. Или, наоборот:

PRINT CHR$ 65 А

Что и требовалось проверить — коду 65 соответствует символ А.

Если символьное значение, подставляемое вслед за CODE, состоит больше чем из одного символа, функция возвратит код первого символа.

Основной экран

Рис. 3. Строение графического экрана.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Оттяг - Винни Пух и все, все, все (продолжение).
Реклама - Реклама и объявления публикуются бесплатно.
Обзор - О новых играх: CRYSTAL CASTLES , ELITE SUPER TRUX , OPEN IT!
For Coderz - как программно определить количество тактов в строке у машины, оснащённой портом #FF.
SPECTRUM SUPPORT SCENE

В этот день...   19 апреля