Опубликован: 05.08.2010 | Доступ: свободный | Студентов: 2826 / 363 | Оценка: 4.12 / 4.02 | Длительность: 10:07:00
Лекция 8:

Математические функции, работа с датой и временем, массивы, ООП в JavaScript

< Лекция 7 || Лекция 8: 12 || Лекция 9 >

Многомерные массивы

Многомерными называются массивы, размерность которых больше единицы. Обычно они используются совместно с вложенными операторами цикла For…Next. В приводимой ниже примере мы найдем сумму элементов двумерного массива.

var i, j, n, m, sum,str;
a = new Array();
a[0] = new Array(1, 2, 3, 4);
a[1] = new Array(5, 6, 7,8); 
a[2] = new Array(9,10,11,12);
a[3] = new Array(13,14,15,16);
        
m = 4;
n = 4;
sum = 0;

for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
        sum += a[j][i];
    }
        }
str = "Сумма массива = " + sum;
document.write(str);

Рис. 9.7.

Сортировка массивов

Объект Array содержит метод сортировки Sort. С его помощью можно упорядочить массив, а также найти его наибольший и наименьший элементы. После сортировки по возрастанию минимальный элемент массива приобретает индекс, равный нулю, а максимальный элемент - n-1. Сказанное выше проиллюстрировано следующим листингом.

var n, i, str,Alpha_min,Alpha_max;

Alpha = new Array(12, -6, 11, 8, -4, 9, 15, 23, 61, -2);
n = Alpha.length

str = "Массив до сортировки: " + "<br/>";

for (i = 0; i < n; i++) {
    str += Alpha[i] + "<br/>";

}
str += "<br/>" + "Массив после сортировки: " + "<br/>";

function compare(x, y) {
    return x - y;
}
Alpha.sort(compare);

for (i = 0; i < n; i++) {
    str += Alpha[i] + "<br/>";

}
Alpha_min = Alpha[0];
Alpha_max = Alpha[n - 1];

str += "<br>" + "Минимальный элемент массива = " + Alpha_min + "<br>" + 
+"Максимальный элемент массива = " + Alpha_max;
document.write(str);

Рис. 9.8.

ООП в JavaScript

Объектно-ориентированный подход может пригодиться при работе над большими web-проектами, создаваемыми целым коллективом специалистов из разных областей. С помощью объектов удобно описывать данные со сложной структурой.

Синтаксис создания объекта следующий:

Название объекта = new Object

В следующем примере создается объект, предназначенный для хранения гетерогенной информации, а именно - сведений о товаре. Обратите внимание на то, как создаются поля объекта и как им присваиваются значения.

var ProductName, Price, ExpireDate, str;
ProductName = "Renault Megane";     //Название товара
Price = 532000;                     //Цена
ExpireDate = new Date(2010, 10, 6);   //Срок годности
Product = new Object;
Product.ProductName = ProductName;
Product.Price = Price;
Product.Experedate = ExpireDate;
str = "Название товара: " + Product.ProductName + "<br/>" + "Цена товара: " + Product.Price + 
+" рублей" + "<br/>" + "Срок годности: " + Product.Experedate;
document.write(str);

Рис. 9.9.

Краткие итоги

Некоторые черты синтаксиса JavaScript делают его похожим на С++, например, аналогичным образом создаются функции. С другой стороны, определение количества элементов динамического массива осуществляется также как и в MS Visual Basic.Net. Сортировка массивов напоминает таковую в Visual Basic.Net, хотя и немного сложнее. JavaScript имеет богатый выбор функций для работы с датой и временем. Поддерживается ООП, в частности, в JavaScript можно создавать объекты, хотя набор операций с объектами более ограничен по сравнению с С++ или Visual Basic.Net.

Набор для практики

Вопросы:

  1. Чем встроенные функции отличаются от пользовательских? Приведите примеры.
  2. Приведите примеры функций без входных параметров
  3. Приведите примеры функций, не возвращающих значения
  4. Чем статический массив отличается от динамического?
  5. Как найти количество элементов динамического массива?

Упражнения:

  1. Разработайте программу, осуществляющую пузырьковую сортировку массива
  2. Создайте динамический массив, содержащий отрицательные и положительные целые числа. Найдите сумму его положительных элементов. Подсчитайте количество его отрицательных элементов.
  3. Разработайте программу, рассчитывающую объем и площадь правильной четырехугольной пирамиды, если известна ее сторона.
  4. Разработайте программу, перемешивающую в случайном порядке десять заповедей
  5. Банк выдает кредиты сроком на один, два и три года под разные проценты. Разработайте программу, выдающую статистику займов (фамилия клиента, сумма и процент) за каждый период.
< Лекция 7 || Лекция 8: 12 || Лекция 9 >