Программирование на Бейсик 48/128 для ZX-Spectrum 1993 г.

SPECTRUM-бейсик - операции с символами. Графика.


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

TO, LEN, STR$, VAL

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

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

PRINT "BAS"+"IC"
BASIC

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

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

PRINT "ABCDEF"(2 ТО 5)
BCDE

Если подстрока выделяется, начиная с первого символа, то мож-
но писать сокращенно: (ТО 5). И, аналогично, если подстрока

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

PRINT "ABCDEF"(TO)
ABCDEF

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

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

PRINT "ABCDEF"(3)
С

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

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

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

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

PRINT LEN " SINCLAIR "
II

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

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

Можно рассчитать его длину:
PRINT LEN STR$ 3
1

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

PRINT VAL "5.25м—2.25
3

Это не совсем точно: строка может содержать символы, которые не выводятся на
экран.

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

Функция VAL может обраба-
тывать и числовые выражения,
представленные как символь-
ные значения. Например:
PRINT VAL "3*3+1"
11

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

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

CODE, CHR$

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

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

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

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

PRINT CODE "А"
65

Это существенно сокращает объем памяти, занимаемый бейсик-программой.

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

PRINT CHR$ 65
А

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

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

ГРАФИКА__

PLOT, DRAW, CIRCLE, CLS

Оператор PRINT за одно элементарное действие — вывод символа
— воздействует сразу на 64 точки экрана (8x8). Это, конечно же,
хорошо с точки зрения ускорения процесса вывода символьной
информации, но хотелось бы иметь возможность «обращаться» и к
отдельным точкам (пикселям).

Spectrum-Бейсик говорит: «Пожалуйста», — и предоставляет в
наше распоряжение оператор PLOT. С его помощью можно «вклю-
чить» любой пиксель основного экрана*. Для оператора PLOT не
существует разделения экрана на знакоместа. Для него экран —
поле высотой 176 и шириной 256 пикселей. Каждый пиксель
имеет свои координаты, не координаты знакомест в строках и
столбцах, а графические координаты:

х — по горизонтали (0...255),
у— по вертикали (0...175).

Начало отсчета системы координат (пиксель с координатами
х=0, у=0) находится в нижнем левом углу основного экрана. Об-
ратите внимание на то, что отсчет вертикальной графической
координаты идет снизу вверх, в отличие от нумерации символьных
строк, которая производит-
ся от верха экрана (см.
рис. 3).

После получения некото-
рого представления об уст-
ройстве графического экра-
на можно вернуться к опе-
ратору PLOT. Нетрудно
предположить, что для рабо-
ты ему нужны два па-
раметра — координаты точ-
ки. Они записываются че-
рез запятую после ключево-
го слова: сначала х, потом у.

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

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

Операторам, занимающимся графическими построениями, недоступны две стро-
ки служебного экрана.

К примеру, оператор
PLOT 130, 80 высветит точку
почти по центру экрана.

Ставя точку за точкой с
помощью PLOT, в принципе,
можно нарисовать чудесную
картинку. Попробуйте. Од-
нако вряд ли у кого-нибудь
хватит терпения выставить
более десятка точек. Кое в
чем поможет сам Бейсик.
Например, построение от-
резков и дуг берет на себя
оператор DRAW (от англ. ри-
совать, чертить).

DRAW при проведении
прямой использует лишь два
параметра: расстояние в
пикселях по х ч по у от некой
начальной точки до конеч-
ной ^оч^л строящейся ли-
нии. Следовательно, пара-
метры DRAW задают только направление и длину отрезка, но не
устанавливают его начальную точку. Выполнив, например, опера-
тор DRAW 127, 87 сразу после включения компьютера, увидим, что
линия будет проведена к середине экрана от начала координат
(0, 0). Следующий оператор, скажем, DRAW 0, —50 проведет отрезок
длиной в 50 пикселей вертикально вниз от конца предыдущей
линии. Вообще, началом линии для DRAW всегда является послед-
няя выставленная на экране точка. На-
глядней и проще всего начальную точку
можно задать с помощью оператора PLOT.

Если к оператору DRAW через запятую
добавить еще один параметр, то на экра-
не появится дуга. Этот дополнительный
параметр задает величину угла (в ради-
анах), который будет образован дугой.
Знак параметра определяет направление
построения дуги: положительный — про-
тив часовой стрелки, отрицательный —
по часовой. Принцип получения началь-
ной и конечных точек дуги остается тем
же, что и при построении отрезка. По-
пробуем:

PLOT 150, 100
DRAW -100, 0, PI

Получим полуокружность с центром в
точке (100, 100) и радиусом 50 пикселей.
С константой PI мы уже сталкивались:
она подставляет вместо себя число «пи».

Используя конструкцию с PLOT и DRAW,
можно, конечно, построить и полную окруж-
ность. Но зачем, когда в Бейсике существует
специально «обученный» для этого оператор
CIRCLE? Его параметры очевидны: координа-
ты центра и радиус окружности. Например,
нарисуем окружность с центром в середине
экрана и радиусом 50:

CIRCLE 127, 87, 50

Оператор CIRCLE строит окружности до-
статочно точно, но уж очень медленно.

Очистить экран от любого изображения
(как от графики, так и от текста), то есть
«выключить*» все пиксели, можно опе-
ратором CLS, к описанию которого мы еще
вернемся.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Очепятки - Всякие там очепятки.
Новости - Начала свою работу сервисная служба в которой можно заказать различную периферию для Спектрума производства фирмы СКОРПИОН.
Погурмим - плоды прогресса.
Вступления - Спектрумист без пива,что комп без проца.
Юмор - Анекдоты.

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