DARK BASIC
ТИПЫ ДАННЫХ, ПЕРЕМЕННЫЕ И МАССИВЫ

ТИПЫ ДАННЫХ

Итак, мы выяснили, что для написания программ используются выражения. Выражение можно разбить на команду и ее данные. Команда - это операция или задание, которое вам нужно выполнить. Данные - это то, без чего команда не может выполнить операцию. Данные также называют параметрами.

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

Целые числа

Целое число - это число без долей. Чтобы получить отрицательное значение, следует поставить перед числом минус (-). Внутри числа нельзя использовать точки, так как это вызовет синтаксическую ошибку. Примеры целых чисел:

42
10000
-233000
-100

Вещественные числа

Вещественное число может содержать целое число или дробное с десятичной точкой. Чтобы получить отрицательное значение, следует поставить перед числом минус (-). Примеры вещественных чисел:

20.0005
99.9
-5000.12
-9999.9991

Символьные строки

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

"A"
"Здравствуй, мир"
"Телефон"
"Мне 99 лет"
"1.2.3.4.5.6.7.8.9"

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


ПЕРЕМЕННЫЕ

Чтобы лучше понять роль переменной, возьмем выражение:

A = 3 + 4

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

A = 3 + 4
PRINT A

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

A = 2
B = 8
C = A + B
PRINT C

В данном примере значение 2 хранится в переменной А, значение 8 хранится в переменной В, а С присваивается результат сложения А и В. Сложение основано на значениях, хранящихся в переменных, и на самом деле выражение выглядит следующим образом: С = 2 + 8. Результат, равный 10, сохраняется в новой переменной С, и именно это значение выводится на экран.

Итак, мы рассмотрели, как переменные хранят и вызывают целые значения. Но они могут также хранить вещественные числа и символьные строки. Для этого переменная должна распознаваться программой как переменная целого типа, вещественного или символьного. С этой целью к вещественной переменной добавляют символ решетки (#), а к символьной переменной - символ доллара ($). Давайте посмотрим, как эти новые переменные хранят и вызывают вещественные числа.

mydata#=42.5
PRINT mydata#

Добавляя символ решетки (#), мы даем программе указание считать, что переменная хранит вещественное значение. Такому же правилу подчиняются и символьные переменные:

myname$="Lee"
PRINT myname$

Все имена переменных обозначаются прописными или строчными символами, а это значит, что имена NAME$, name$ и Name$ относятся к одной и той же переменной. С символьными переменными можно даже выполнять простейшие математические операции. Например, сложив две строки, мы в результате получаем их соединение:

a$="Здравствуй"
b$="Мир"
c$=a$+b$
print c$

После компиляции и запуска этой программы на экран выводится строка "ЗдравствуйМир". А теперь попробуйте самостоятельно внести изменения в данный пример и поставить запятую и пробел меду словами "Здравствуй" и "Мир".


МАССИВЫ

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

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

lottery1$="43,76,12,34,12,11"
lottery2$="76,12,34,12,11,44"
lottery3$="12,34,12,02,05,07"
и т.д.

Однако через два часа нелегкого труда вы понимаете, что могли бы написать ее иначе:

DIM lottery$(52)
lottery$(1)="43,76,12,34,12,11"
lottery$(2)="76,12,34,12,11,44"
lottery$(3)="12,34,12,02,05,07"
и т.д.

С помощью оператора DIM, предваряющего имя массива, объявляем строковый массив. Как и в случае с переменными, при добавлении к имени массива знака доллара мы даем программе указание использовать его только для хранения символьных значений. Затем в скобках указываем количество элементов данных, которые должны храниться в этом массиве. Массив заполняется значениями почти так же, как переменная, однако в нем нужно указывать позицию, в которой вы хотите хранить свои данные.

Какие же преимущества у второго способа? Если вам нужно выводить на экран все 52 выигрышных номера, то в первом случае понадобится написать еще 52 оператора вывода:

PRINT lottery1$
PRINT lottery2$
PRINT lottery3$
и т.д.

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

PRINT lottery$(1)
PRINT lottery$(2)
PRINT lottery$(3)
и т.д.

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

FOR T=1 TO 52
PRINT lottery$(T)
NEXT T

Невероятно, но в этом примере 52 оператора PRINT заменяются всего лишь тремя строками кода. Здесь Т увеличивает от 1 до 52 в цикле, который выводит на экран значение элемента массива с определенным индексом.

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

DIM lottery(52,6)

Не используя символ доллара, мы объявляем, что массив хранит не строки, а целые числа. То, что после имени массива идут два числа, разделенных запятой, означает, что для каждого индекса от 1 до 52 существует суб-индекс от 1 до 6, где также хранятся данные. Такой массив можно представить в виде большого канцелярского шкафа с 52 ящиками, в каждом из которых лежит 6 скоросшивателей, где и хранится информация. Всего в таком массиве можно хранить 312 значений (52 x 6). Массив допускает до пяти размерностей, то есть возможно создать такой большой массив, как (1,2,3,4,5). Однако при объявлении размерностей соблюдайте чувство меры, потому что крупные массивы требуют больших объемов памяти и могут снизить общую производительность системы.

Ввод данных в новый массив осуществляется очень просто:

lottery(1,1)=43
lottery(1,2)=76
lottery(1,3)=12
lottery(1,4)=34
lottery(1,5)=12
lottery(1,6)=11
lottery(2,1)=43
lottery(2,2)=76
lottery(2,3)=12
lottery(2,4)=34
lottery(2,5)=12
lottery(2,6)=11

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

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

Щелкните здесь, чтобы перейти в следующий раздел .