00012. Редактирование main.scm. Переменные (Часть 3)

Редактирование main.scm. Переменные (Часть 3)|Мы продолжаем дальше изучать переменные. Этот урок посвящён массивам. Что это такое и с чем его едят мы рассмотрим здесь.|wmysterio|wmysterio||||Давайте представим опять школу, в школе есть "11-А" класс. Опять в классе есть ученики. Довольно часто случается так, что в классе есть люди, в которых имена одинаковы. Что бы не путать мы часто называем их по фамилиям, что бы человек знал, что обращаются именно к нему. Также и переменные могут иметь свои "фамилии", то есть то, что отличает его от других. В программировании часто это называют массивом. Массив — набор однотипных данных. Массивы имеют не сложный синтаксис, так что напишем пример одного из них:

Допустим в нашем классе будут учится 4 девушки с именем Рита. Что бы различать их, мы проиндексируем их, то есть зададим какое то число, что будет их фамилией. В скриптинге обозначают их квадратными скобками:**[ ** и ], в середине которых находится число:

$RITA[0] $RITA[1] $RITA[2] $RITA[3]

В реальной жизни можно написать аналогичный пример:

$RITA[Иваненко] (имеет индекс 0) $RITA[Сагаева] (имеет индекс 1) $RITA[Рейна] (имеет индекс 2) $RITA[Пушкинка] (имеет индекс 3)

Как видим в скобках написаны фамилии. Думаю посмотрев оба примера вы уже поняли как их писать и имеете базовое представление о массивах. Каждый массив имеет ограничение, но ограничения ставим мы сами, то есть нам решать сколько человек с одинаковым именем будет в классе. Что бы сделать ограничение, нужно написать слово var и закрыть его командой end. В середине этого блока объявляются массивы. Делается это следующей формулой:

VAR
$RITA: array 10 of integer
END

Рассмотрим детальнее:

VAR - открывается контейнер $RITA - имя переменной, которая будет считаться массивом 10 - максимальное количество элементов массива (максимальное количество фамилий, одинаковых фамилий не может быть ) integer - тип данных, который будут хранится END - закрывается контейнер

Написав всё это мы можем использовать переменные в своих целях.

Как и глобальные, так и локальные переменные могут быть массивами. Рассмотрим пример с локальными переменными. Объявлять массив так же само, а вот синтаксис совсем другой:

// объявление
VAR
0@: array 4 of integer
END

// использование
0@(5@, 4i)

Рассмотрим подробнее написанное:

0@ - имя перемененной, которая будет считаться массивом 4 - максимальное количество элементов массива i - тип данных, который будет хранить массив 5@ - дополнительная переменная, которая будет служить индексом

Всё было бы хорошо, если не дополнительная переменная. Если в место неё написать числовой индекс, то возникнет ошибка: "имя индексной перемененной не найдено":

Поэтому нужно создать дополнительную переменную, которая будет служить нашим индексом. Сделаем это:

5@ = 0
0@(5@, 4i)

По структуре будет работать также, как и переменная "$RITA[0]".

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

Last updated