Студопедия
rus | ua | other

Home Random lecture






Несколько измерений


Date: 2015-10-07; view: 457.


Предположим, Вы хотите хранить имена и телефонные номера всех Ваших друзей и иметь возможность находить телефонные номера, когда они нужны, примерно как в мобильном телефоне. Как можно написать такую программу?

Индексы массива не зависят от регистра. Как и в случае обычных переменных, буквы индексов массива могут иметь разный регистр.
В этом случае потребуется два набора индексов, которые называются измерениями массива. Предположим, что каждому другу мы дадим короткое имя. Это короткое имя можно использовать в качестве первого индекса массива. Если в качестве первого индекса используется короткое имя, то второй индекс имя и телефонный номерпозволит получить доступ к полному имени и телефонному номеру каждого друга.

Хранить данные мы сможем следующим образом:

friends["Крис"]["Имя"] = "Кристофер Робин"

friends["Крис"]["Телефон"] = "987-6543"

 

friends["Иа"]["Имя"] = "Иа-иа"

friends["Иа"]["Телефон"] = "987-5634"

 

friends["Винни"]["Имя"] = "Винни-Пух"

friends["Винни"]["Телефон"] = "987-4365"

Так как для одного и того же массива friends используется два индекса, этот массив называется двумерным.

В этой программе мы попросим ввести короткое имя, а затем по этому имени выведем все данные о друге. Вот полный текст программы:

friends["Крис"]["Имя"] = "Кристофер Робин"

friends["Крис"]["Телефон"] = "987-6543"

 

friends["Иа"]["Имя"] = "Иа-иа"

friends["Иа"]["Телефон"] = "987-5634"

 

friends["Винни"]["Имя"] = "Винни-Пух"

friends["Винни"]["Телефон"] = "987-4365"

 

TextWindow.Write("Введите короткое имя: ")

nickname = TextWindow.Read()

 

TextWindow.WriteLine("Имя: " + friends[nickname]["Имя"])

TextWindow.WriteLine("Телефон: " + friends[nickname]["Телефон"])

Рисунок 5 – Простая телефонная книга

Использование массивов для работы с таблицами

Часто многомерные массивы используются для работы с таблицами. Столбцы и строки таблиц легко представить в виде двумерного массива. Ниже приведен пример простой программы, которая расставляет разноцветные квадратики внутри большого квадрата.

rows = 8

columns = 8

size = 40

 

For r = 1 To rows

For c = 1 To columns

GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()

boxes[r][c] = Shapes.AddRectangle(size, size)

Shapes.Move(boxes[r][c], c * size, r * size)

EndFor

EndFor

Эта программа создает маленькие квадратики и располагает их внутри большого квадрата 8 х 8. Кроме того, она сохраняет все маленькие квадратики в массиве. Хранение в массиве помогает отслеживать квадратики и использовать их снова.

Рисунок 6 – Разноцветные квадратики

 

Например, если добавить следующий код в конец предыдущей программы, квадратики будут перемещаться в левый верхний угол.

For r = 1 To rows

For c = 1 To columns

Shapes.Animate(boxes[r][c], 0, 0, 1000)

Program.Delay(300)

EndFor

EndFor

Рисунок 7 – Перемещающиеся квадратики

 

 

Глава 11

События и интерактивность

В первых двух главах мы познакомили Вас с объектами, у которых есть Свойства и Операции. Дополнительно к свойствам и операциям некоторые объекты обладают такой функцией как События. События как сигналы, которые возникают, например, в ответ на такие действия пользователя как передвижение мышки или нажатие на нее. В некотором понимании, события – это нечто противоположное операциям. В случае с операцией, Вы, как пользователь, вызываете ее, чтобы заставить компьютер сделать что-нибудь; а в случае с событиями, компьютер дает Вам знать, когда что-нибудь происходит.


<== previous lecture | next lecture ==>
Индексация массива | 
lektsiopedia.org - 2013 год. | Page generation: 0.112 s.