[an error occurred while processing this directive]

1

Введите

blank¤ = ""

и PRINT len(blank¤)

Компьютер может обращаться со стоками, внутри которых нет символов. Такие строки называются нулевыми строками.

----------------------------------------------------

Нулевая строка не имеет символов внутри

----------------------------------------------------

4.3 IN (B)

Немного практики в печатании.

Введите

alpha¤ = "abcdfghijklmnopqrstuvwxyz"

Удостоверьтесь, что после PRINT имеется пробел, кавычки поставлены и оставлен пробел после in:

введите

PRINT "c" in alfa¤

и

PRINT "z" in alfa¤

Введите

test¤ = "m"

и

PRINT test¤ in "lmn"

-----------------------------------------------

IN говорит нам, где первая строка начинает появляться во второй строке.

-------------------------------

---------------

Введите

PRINT "+" in alfa¤

Если часть, которая находится в кавычах, не в строке, то величина 0 возвращется.

****************************************************************

32

Введите

PRINT "cdef" in alfa¤

и

PRINT "cdef" in alfa¤

4.4 Двоичные операторы

IN является примером двоичного оператора.

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

Арифметические символы +, -, *, / и ^ являются примерами двоичных операторов, напр. 5 * 2 возвращает 10.

4.5 Установка размера строки (DIMensionig)

Когда мы впервые присваиваем строку, в памяти резервируется 40 позиций (одна позиция для одного символа), при условии, что мы не указываем, что нужно больше или меньше позиций.

Длинные строки

Если мы хотим использовать больше символов (разрешается использовать до 253 позиций), тогда нам необходимо иметь способ резервирования большего пространства. Этот процесс называется установкой разммера (от DIMENSION - размер).

------------------------------------------------

DIM является ключевым словом для резервировния необходимого пространства для строки.

------------------------------------------------

Введите

dim long¤ of 200

Ключевое слово DIM отделяется пробелом, затем идет название строки, пробел, ключевое слово OF, пробел и число, указывающее на количество позиций, которые мы хотим зарезервировать для строки.

А сейчас присвойте long¤, используя

long¤ := "..........................................................."

Покажите, что long¤ имеет длину больше 40, введите

PRINT len(long¤)

****************************************************************

33

Короткие строки

Если нам не нужно 40 позиций для строки, и чтобы сэкономить память, мы можем зарезервировать меньше.

Введите dim short¤ of 5

и

short¤ := "exact"

При установке размера строки мы всегда должны предусматривать ее длину.

Введите

short¤ := "bigger"

Мы получим сообщение об ошибке, что строка слишком длинная для зарезервированного пространства.

--------------------------------------------------

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

--------------------------------------------------

После присваивания строки невозможно изменить зарезервированный объем памяти, задавая измененный размер.

Введите

dim short¤ of 10

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

4.6 Очистка памяти (от CLEAR - чистить)

Мы можем дать компьютеру командузабыть строки, которые мы присвоили (а также все числовые переменные, кроме резидентных целых переменных от а# до z#), используя ключевое слово CLEAR.

Введите

clear

и теперь мы должны увидеть, что компьютер уже не узнает shortS.

Введите

PRINT short¤

****************************************************************

34

и получаем сообщение Not found - не найдено.

Введите

PRINT a#

и величина печатается, потому что резидентные целые переменные от а# до z# не очищаются.

Введите

dim short¤ of 10

После использования CLEAR можно заново устанавливать размеры строки (до 253).

4.7 Форматы печати

Сейчас введите

a¤ = "TOM"

b¤ = "DICK"

и

c¤ = "HARRY"

Когда мы печатаем числа, они появляются в зонах, состоящих из 10 позиций, или слева или справа, в зависимости от того, поставили мы точку с запятой перед числом или нет.

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

Использование запятой

Найдите клавишу с запятой, она рядом с буквой м.

Введите

PRINT a¤, b¤, c¤

После того, как мы напечатали a¤, запятая становится элементом синтаксиса, который говорит компьютеру перейти в следующую зону ипродолжать печать там. Затем в крайнем левом возможном положении зоны печатается b#. Следующая запятая показывает, что и следующий пункт, c#, должен появиться в следующей зоне.

---------------------------------------------------

Запятая является указанием печатать (PRINT) в следующей имеющейся зоне. Если же позиция печати уже находится в начале зоны, то запятая не вызовет переход в другую зону.

****************************************************************

35

Используя точку с запятой, введите

PRINT a¤;b¤;c¤

Точка с запятой действует на цепочки также, как и на числа.

Пункт, который следует за ней, печатается в крайне левой возможной позиции. В данном случае DICK следует за TOM без промежутка. Аналогично HARRY следует за DICK.

--------------------------------------------------

Точка с запятой является командой печатать в следующей имеющейсяпозиции для печати.

--------------------------------------------------

Мы можем спутать использование запятых и точек с запятой.

Введите

PRINT a¤,b¤;c¤

Здесь важно отметить, что после с¤ нет запятой, которая заставляла бы перейти в седующую зону; а также нет и точки с запятой, приказывающей печатать в следующей позиции.

------------------------------------------------

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

------------------------------------------------

Использование апострофа

Найдите символ апострофа ' , это верхний символ на клавише 7.

Введите

PRINT a¤'b¤'c¤

-------------------------------------------------

В команде PRINT апостроф ' вызывает переход позиции для печати на начало следующей строки.

-------------------------------------------------

Введите

PRINT a¤,b¤'c¤;

Символы , ; ' называются разделителями печати и один из них всегда должен быть использован между пунктами, которые предназначены для печати.

Посмотрите, где мигают подсказка и курсор. Точка с запятой после сS дает указание выполнить следующую печать в следующей имеющейся позиции для печати (т.е. рядом с с¤). И следующее, что там будет напечатано - это подсказка и курсор. Если подсказка и курсор нужны вам на следующей линии, нажмите на клавишу RETURN.

****************************************************************

36

Пробелы

Между тем, мы не напечатали ТОМ DICK HARRY так, как нам хотелось бы, с пробелами между именами. Пробел можно поместить в набор, заключенный кавычками и обращаться с ним как со строкой. Точка с запятой используется только как разделитель печати.

Введите

PRINT a¤;" ";b¤;" ";c¤

4.8 Сложение цепочек

Цепочки можно объединять с помощью знака сложения.

Введите

PRINT a¤ + a¤ + a¤

Каждая строка прибавляется к концу предыдущей, а затем печатается результат. Сложение строк таким образом называется "слияние".

------------------------------------------------

Знак + можно использовать для сложения строк.

------------------------------------------------

4.9 Использование пробелов внутри строк

Сложение строк иммет такое же действие, что и использование точки с запятой. Мы можем отделить новую строку от тех, которые мы уже представили компьютеру

Введите

d¤ = a¤ + " " + b¤ + " " + c¤

и

PRINT d¤

получим очень интересный эффект.

Можно было найти и другой способ достижения желаемого результата. В присваиваниях для а¤ и b¤ мы могли бы ввести пробелы внутри строк.

Введите

a¤ := "TOM"
b¤ := "DICK"
c¤ := "HARRY."

****************************************************************

37

Теперь введите

PRINT a¤;b¤;c¤

и

PRINT a¤ + b¤ + c¤

В вычислении всегда имеется много способов достижения одного и того же результата. И не обязательно считаь какой-либо способ правильным или неправильным.

4.10 Кавычки внутри строки

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

Попытайтесь ввести

quote¤ := "this quote "" does work"

-----------------------------------------------

Мы можем поместить кавачки в строку, используя специальное обозначение. Внутри цепочки мы ставим "" там, где мы хотим, чтобы в строке были только одни кавычки ".

-----------------------------------------------

Введите

quote¤ := "this quote "" does work"

и

PRINT quote¤

4.11

Итоговые упражнения

Запишите свои ответы и сверьте их с ответами в главе 43.

Предположите, что в следующих вопросах были сделаны такие присваивания: a¤ := "ACORN", b¤ := "Micro", c¤ := "computer"

Какие нужны команды, чтобы напечатать

1. ACORN     Micro     computer
2. ACORN Microcomputer
3. ACORN
   Micro
   computer
4  Micro Micro Micro

В следующих вопросах reply¤ := "y"

****************************************************************

38

Какой будет результат следующих команд?

5. PRINT reply¤ IN "YyNn"
6. PRINT reply¤ IN "In"
7. PRINT reply¤ in "RGYMCW"
8. PRINT reply¤ in "YYYYYY"
9. PRINT LEN(reply¤)

Какие размерные сообщения необходимо сделать, чтобы зарезервировать

10. 100 позиций для ton¤?

11. 40 позиций для test¤?

12. 10 позиций для ten¤?

4.12 Выводы

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

2. Символ ¤ помещается в конце имени переменной, чтобы указывать, что это строка.

3. LEN(a¤) - функция, возвращяющая длину a¤.

4. IN - двоичный оператор, который вычисляет позицию, на которойначинается строка, находящаяся в другой строке, напр. "АВ" IN "abcABC" - 4.

5. Когда строка присваивается первый раз, для нее резервируется сорок позиций, если ее размер не был установлен ранее.

6. Чтобы зарезервировать пространство в 100 знаков для k¤, необходимо дать сообщение DIM k¤ OF 100.

7. Попытка присвоить строке большее количество знаков, чем было для нее зарезервировано произведет ошибку.

8. Команда CLEAR является ключевым словом для очистки памяти от всех строк и числовых переменных, за исключением резидентных целых переменных от а# до z#.

9. Символы , ; ' используются соответственно для форматирования печати в начале следующей имеющейся зоны, в крайней левой возможной позиции и на следующей строке 10. Строки могут быть соединены друг с другом (конкатенированы) с помощью знака + .

11. Кавычки могут стать составляющей строки с помощью исползования двойных кавычек "" внутри обычных кавычек, присвоенных строке.

****************************************************************

39

5 ПРОГРАММЫ

____________

В этой секции мы научимся составлять простые программы и расширим наш словарь ключевых слов.

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

Серии команд хранятся как програмные сообщения.

5.1 Программирование для программы

Перед тем, как начать создвать программу, надо подготовить компьютер к новому началу.

Введите

new

------------------------------------------------

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

------------------------------------------------

5.2 Линии программы

------------------------------------------------

Программа состоит из набора сообщений, каждое из которых начинается с целого числа (номер строки).

------------------------------------------------

Если вы забудете начать с номера строки, компьютер воспримет ваше указание как прямую команду и будет пытаться ее выполнить. Но, хватит теории! Давайте посмотрим как все это работает.

    1 PRINT "I think"

Ничего не должно случиться, если только вы не сделали ошибку при печати.

.сс

[an error occurred while processing this directive]