Программа иллюстрирует различные способы работы с массивами. Так как индексами в массивах могут быть любые значения, то ничего не мешает индексировать массивы начиная не только с единицы, но и с нуля.
Не забываем, что массивы в MS Small Basic — это на самом деле «умные» текстовые строки. Подробнее об этом здесь.
Microsoft Small Basic поддерживает массивы, которые позволяют хранить много однотипных значений в оперативной памяти компьютера, используя одно общее имя для обращения к самому массиву и индексы для обращения к конкретным элементам массива. Массивы позволяют читать, записывать, добавлять и удалять элементы в произвольном порядке. Кроме того, массивы могут быть многомерными: количество индексов у каждого элемента может быть больше одного. Для работы с элементами массивов удобно использовать циклы.
Вы можете скопировать указанный ниже код программы в IDE MS Small Basic и запустить:
' Добавление названий продуктов в массив food.
food[1] = "Яблоко"
food[2] = "Банан"
food[3] = "Кокос"
' Какие продукты находится в массиве food?
For i = 1 To Array.GetItemCount(food)
TextWindow.WriteLine("food[" + i + "] содержит " + food[i])
EndFor
TextWindow.WriteLine("-----")
TextWindow.WriteLine("food это массив: " + Array.IsArray(food)) ' проверка, является ли food массивом
TextWindow.WriteLine("fruit это массив: " + Array.IsArray(fruit))' Массив фруктов fruit все же существует?
TextWindow.WriteLine("food[2] существует: " + Array.ContainsIndex(food, 2))
TextWindow.WriteLine("массив food содержит Кокос: " + Array.ContainsValue(food, "Кокос"))
TextWindow.WriteLine("массив food содержит Виноград: " + Array.ContainsValue(food, "Виноград"))
TextWindow.WriteLine("массив food содержит " + Array.GetItemCount(food) + " предмета(ов).")
fruit = Array.GetAllIndices(food)' Копируем индексы (не значения) массивa food в массив fruit.
TextWindow.WriteLine("-----")
WhatIsInFruit() ' Что в массиве fruit?
TextWindow.WriteLine("-----")
' Обратите внимание, что значения не скопированы в массив fruit!
TextWindow.WriteLine("fruit is an array now: " + Array.IsArray(fruit))
TextWindow.WriteLine("fruit[2] exists: " + Array.ContainsIndex(fruit, 2))
TextWindow.WriteLine("fruit содержит Банан: " + Array.ContainsValue(fruit, "Банан"))
TextWindow.WriteLine("fruit содержит Виноград: " + Array.ContainsValue(fruit, "Виноград"))
TextWindow.WriteLine("fruit содержит " + Array.GetItemCount(fruit) + " предмета(ов).")
' Добавление названий продуктов в массив fruit.
fruit[1] = "Яблоко"
fruit[2] = "Банан"
fruit[3] = "Кокос"
fruit[4] = "Виноград"
TextWindow.WriteLine("-----")
' Что сейчас в массиве fruit?
TextWindow.WriteLine("fruit содержит сейчас Банан: " + Array.ContainsValue(fruit, "Банан"))
TextWindow.WriteLine("fruit содержит сейчас Виноград: " + Array.ContainsValue(fruit, "Виноград"))
TextWindow.WriteLine("fruit сейчас содержит " + Array.GetItemCount(fruit) + " предмета(ов).")
TextWindow.WriteLine("-----")
WhatIsInFruit()' Что сейчас в массиве fruit?
Sub WhatIsInFruit ' подпрограмма вывода элементов массива fruit
For i = 1 To Array.GetItemCount(fruit)
TextWindow.WriteLine("fruit[" + i + "] сейчас содержит " + fruit[i])
EndFor
EndSub
' Добавление названий продуктов в Двумерный массив fruitSalad.
fruitSalad[1][1] = "Яблоко"
fruitSalad[1][2] = "Банан"
fruitSalad[1][3] = "Кокос"
fruitSalad[2][1] = "Виноград"
fruitSalad[2][2] = "Апельсин"
fruitSalad[2][3] = "Персик"
TextWindow.WriteLine("-----")
For i = 1 To 2 ' Проход по первому индексу массива
For j = 1 To 3 ' проход по второму индексу массива
TextWindow.WriteLine("fruitSalad[" + i + "][" + j + "] содержит " + fruitSalad[i][j])
EndFor
EndFor
mixedSalad["fruit"][1] = " Яблоко "
mixedSalad["fruit"][2] = " Банан "
mixedSalad["fruit"][3] = " Кокос "
mixedSalad["vegetables"][1] = "Салат-латук "
mixedSalad["vegetables"][2] = "Помидор"
mixedSalad["vegetables"][3] = "Морковь"
TextWindow.WriteLine("-----")
For i = 1 To 3
TextWindow.WriteLine("mixedSalad[fruit][" + i + "] содержит " + mixedSalad["fruit"][i])
EndFor
For i = 1 To 3
TextWindow.WriteLine("mixedSalad[vegetables][" + i + "] содержит " + mixedSalad["vegetables"][i])
EndFor
Поделиться: