BGT — Массивы

Поговорим о массивах.
Массивы — очень важный элемент природы программирования.
Давайте напишем пример, где у нас 10 переменных, но значение каждой следующей переменной в двое больше значения предыдущей.
void main() {
int n1=1;
int n2=2;
int n3=4;
int n4=8;
int n5=16;
int n6=32;
int n7=64;
int n8=128;
int n9=256;
int n10=512;
alert(«Сообщение», n1+», «+n2+», «+n3+», «+n4+», «+n5+», «+n6+», «+n7+», «+n8+», «+n9+», «+n10);
}
Согласитесь, что такой подход вообще не катит.
Мы же программисты, а значит нам нужно всё автоматизировать.
Сделаем ту же самую задачу при помощи массива, а потом я объясню, что же такое массив.
void main() {
int[] n(10);
n[0]=1;
for(int i=1; i<10; i++)
n[i]=n[(i-1)]*2;
alert(«Сообщение», n[0]+», «+n[1]+», «+n[2]+», «+n[3]+», «+n[4]+», «+n[5]+», «+n[6]+», «+n[7]+», «+n[8]+», «+n[9]);
}
Запустите оба скрипта, но результат будет тот же самый.
А теперь объясняю.
Массив — это набор переменных, которые следуют друг за другом под своим номером. В массивах нумерация начинается с нуля.
Давайте создадим числовой массив с тремя переменными.
int[] nums(3);
Теперь у нас есть числовой массив на 3 значения.
Давайте произведём действия с его переменными.
nums[0]=5;
nums[1]=3;
nums[2]=nums[0]+nums[1];
Первой переменной мы присвоили значение 5, второй 3, а в третьей сложили первые две переменные.
Также можно поступить и с строковыми переменными.
string[] names(3);
names[0]=»Вася»;
names[1]=»Лена»;
names[2]=»Тимур»;
alert(«Имя», names[2]);
Типов может быть много.
Например можно сделать так:
sound[] steps;
timer[] jumps;
bool[] life;
Иными словами вы можете назначать тип своему массиву почти любой.
Вы спросите, нафига нам эти массивы? Раньше и без них неплохо обходились, но массивы не были бы так нужны, если бы не было циклов, о которых мы говорили в прошлой статье.
Давайте напишем строковой массив с пятью именами, а потом выведем этот список имён через alert.
void main() {
string[] names(5);
names[0]=»Антон»;
names[1]=»Борис»;
names[2]=»Владимир»;
names[3]=»Герман»;
names[4]=»Денис»;
string list_names;
for(int i=0; i<names.length(); i++)
list_names+=names[i]+», «;
alert(«Список имён», list_names);
}
В окошке у нас отобразится список имён, которые мы вводили.
Кстати, попробуйте разобрать мой второй пример, где я использовал массивы, чтобы вывести 10 чисел.
В примере с именами я использовал names.length();
Вы спросите, что за фигня такая? Это стандартная функция bgt, которая возвращает длину массива.
Она вам часто будет нужна.
Теперь поговорим о массивах, в которых значения изначально не зарезервированы. Мы же не всегда знаем, сколько нам нужно переменных в массиве.
Вот пример:
string[] names;
names.insert_at(0, «Антон»);
names.insert_at(1, «Борис»);
Функцией insert_at мы задаём значение массиву.
Сначала пишется порядковый номер переменной, в которую мы хотим что-нибудь написать, а потом пишется значение, которое в эту переменную будет собственно записано.
Есть ещё одна функция:
insert_last();
Эта функция просто добавляет новую переменную в конце массива и присваивает ей значение.
string[] names;
names.insert_last(«Антон»);
names.insert_last(«Борис»);
Теперь names[0] у нас равно Антон, а names[1] равно Борис.
Ещё есть две полезные функции:
remove_at и remove_last();
Если insert добавляет переменную, то remove удаляет.
Если remove_at, то вы должны ввести номер переменной, которую хотите удалить, а если remove_last, то удаляется последняя переменная в массиве.
Если есть вопросы, задавайте в комментариях к статье.
Всем удачи.