Лабораторная работа №12
Массивы


Тип Array введен в JavaScript для возможности манипулирования самыми разными объектами, которые может отображать Navigator. Это - список всех гипертекстовых ссылок данной страницы, список всех картинок на данной странице, список всех элементов формы и т.п. Пользователь может создать и свой собственный массив, используя, конструктор Array(). Делается это следующим образом:

new_array = new Array()
 new_array5 = new Array(5)
 colors = new Array("red", "white", "blue")

Размерность массива может изменяться. Можно сначала определить массив, а потом присвоить одному из его элементов значение. Как только это произойдет, изменится и размерность массива:

colors = new Array()
 colors[5] = "red".

В данном случае массив будет состоять из 6 элементов, так как первым элементом массива считается элемент с индексом 0.
Для массивов определены четыре метода: join, reverse, sort, concat. Join объединяет элементы массива в строку символов, в качестве аргумента в этом методе задается разделитель:

colors = new Array("red", "white", "blue")
 string = acolors.join(" + ")

В результате выполнения присваивания значения строке символов string мы получим следующую строку: string = "red + white + blue". Другой метод, reverse, изменяет порядок элементов массива на обратный, метод sort отсортировывает их в лексикографическом порядке, а метод concat объединяет два массива.
У массивов есть два свойства: length и prototype. Length определяет число элементов массива. Если нужно выполнить некоторую рутинную операцию над всеми элементами массива, то можно воспользоваться циклом типа:

color = new Array("red", "white", "blue")
 n = 0 while(n != colors.length)
 {... операторы тела цикла ...}

Свойство prototype позволяет добавить свойства к объектам массива. Однако чаще всего в программах на JavaScript используются встроенные массивы, в основном графические образы (Images) и гипертекстовые ссылки (Links).
В новой версии языка появился конструктор для этого типа объектов:

new_image = new Image()
 new_image = new Image(width, height)


Пример 1. Создание мультипликации с использованием массивов.


Часто для создания мультипликации формируют массив графических объектов, которые потом прокручивают один за другим:

img_array = new Array()
 img_array[0] = new Image(50,100)
 img_array[1] =new Image(50,100)
  ...
 img_array[99] = new Image(50,100)

У объекта Image существует 10 свойств, из которых, пожалуй, самым важным является src. Так, для присваивания конкретных картинок элементам массива img_array следует воспользоваться следующей последовательностью команд:

img_array[0].src = "image1.gif"
 img_array[1].src = "image2.gif"
 ...
 img_array[99].src = "image100.gif"

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


Листинг 1. Мультипликация.

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


Пример 2. Бинарный поиск с формированием таблицы результатов

Напишем функцию, которая реализует алгоритм бинарного поиска таким образом, чтобы во время работы программы формировалась таблица значений переменных i, j, k и некоторых выражений.


Листинг 2. Поиск в упорядоченном массиве с таблицей промежуточных значений


Задания

1. Проверить пример 2 из лабораторной работы.
2. Создать простейший мультипликационный сюжет с использованием массива.
3. Задан одномерный массив вещественных чисел. Напишите сценарий, который определяет число положительных элементов массива.
4. Задан одномерный массив вещественных чисел. Напишите сценарий, позволяющий найти максимальный элемент в массиве.

возврат оглавление

Хостинг от uCoz