русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы


Дата добавления: 2015-07-09; просмотров: 1179; Нарушение авторских прав


 

Тип 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. Мультипликация.

<HTML> <HEAD> <SCRIPT> <!--// function multi_pulti() { img_array = new Array() for (var i=0; i<4; i++) img_array[i] = new Image(50,100) img_array[0].src = "e1.jpg" img_array[1].src = "e2.jpg" img_array[2].src = "e3.jpg" img_array[3].src = "e4.jpg" var t=new Date() p=-1 } function s() { p=p+1 document.images[0].src =img_array[p].src setTimeout("s()",100) if (p==3) p=-1 } //--> </SCRIPT> </HEAD> <BODY onLoad="multi_pulti()"> <img src="e1.jpg"> <br> <input type="Button" name="But" value="Посмотреть" onClick="s()"> </BODY> </HTML>

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

 

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

 

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

 

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

<HTML> <HEAD> <TITLE>Бинарный поиск. Таблица промежуточных значений</TITLE> <script language="JavaScript"> <!-- // var v=new Array (2, 3, 5, 6, 6, 7,10,11, 20, 25) function testtab(obj,v,t) { var res="i j k v[k] t<= v[k]"+"\r\n" var i=0 var j= v.length-1 var k while ( i < j ) { k=Math.round( (i+j)/2+0.5)-1 res = res + i + " "+j+" "+k+" "+"v[" + k + "]=" + v[k] + " " + t + "<=" + v[k]+"\r\n" if (t <= v[k] ) j=k else i=k+l } res += "v[" + i + "]=" +v[i]+"\r\n" obj.resultl.value=res if (v[i] == t ) { return i} else return -1 } function test(obj) { obj.datal.yalue=v} //--> </script> </HEAD> <BODY bgcolor=silver> <H4>Реализация алгоритма бинарного поиска</H4> <FORM name="forml"> <pre> Массив:<INPUT type="text" size=40 name="datal" ><hr> Элемент:<INPUT type="text" size=20 name="data2" ><hr> Результат поиска: <INPUT type="text" size=20 name="result" ><hr> Таблица промежуточных значений: <BR> <textarea cols=50 rows=7 name="result1" > </textarea><hr> </PRE> <input type="button" value=0пpeдeлить onClick="test(form1); forml.result.value=testtab(form1,v,forml.data2.value)"> <input type="reset" value=Отменить> </FORM> </BODY> </HTML>



<== предыдущая лекция | следующая лекция ==>
Работа со строками | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.229 сек.