• Компьютеры, конечно, делают ошибки, но зато делают их очень аккуратно, точно и быстро…

Работа с массивами

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

Не забываем, что массивы в 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


Поделиться: