Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Создание своих собственных функций



Вы можете создать ваши собственные функции и использовать их, когда необходимо. Определение функции состоит из выражения функции и блока выражений JavaScript.

Функция checkTriplet в следующем примере принимает аргументы: длины сторон треугольника, и подсчитывает на их основании, является ли треугольник прямоугольным при проверке, составляют ли три числа уравнение Пифагора. (Квадрат длины гипотенузы прямоугольного треугольника равен сумме квадратов длин двух других сторон). Функция checkTriplet вызывает одну из двух других функций для выполнения фактической проверки.

Обратите внимание на использование очень маленького числа ("epsilon"), как тестирующей переменной в тесте для плавающей запятой. Из-за неопределенности и накопленных ошибок в расчетах с плавающей точкой, не практично делать прямой тест, так как квадрат гипотенузы равен сумме квадратов двух других сторон, когда все три значения не являются целыми. Так как прямой тест является более точным, код в примере определяет, являются ли числа целыми, и если да, то использует функцию.

Пример:

var epsilon = 0.0000000000001;

// Очень маленькое число для проверки.

var triplet = false;

function integerCheck(a, b, c) {

// Проверочная функция для целых чисел.

if ((a*a) == ((b*b) + (c*c))) {

// Сам тест.

triplet = true;

}

} // Конец функции проверки целых чисел.

function floatCheck(a, b, c) {

// Функция проверки для чисел с плавающей запятой.

var theCheck = ((a*a) - ((b*b) + (c*c)))

// Получение тестируемого числа.

if (theCheck < 0) {

// Проверка требует абсолютного значения, инвертируем theCheck, если она отрицательная.

theCheck *= -1;

}

if (epsilon > theCheck) { // Проверка.

triplet = true;

}

} // Окончание проверяющей функции для чисел с плавающей запятой.

function checkTriplet(a, b, c) {

// Проверка триплета. Сначала, перемещает самую длинную сторону в положение "a".

var d = 0; // Создает временную промежуточную переменную.

if (c > b) { // Если c > b, swap them.

d = c;

c = b;

b = d;

} // If not, ignore them.

if (b > a) { // If b > a, переставить их.

d = b;

b = a;

a = d;

} // Если нет, то игнорировать их.

// Теперь сторона "a" гипотенуза, если она есть.

if (((a%1) == 0) && ((b%1) == 0) && ((c%1) == 0)) {

// Тестируем все 3 значения. Являются ли они целыми?

integerCheck(a, b, c);

// Если это так, то использовать точную проверку.

}

else

floatCheck(a, b, c);

// Если нет, то получить как можно более точный результат.

} // Закончить функцию проверки триплета.

// Следующие три предложения присваивают примерные значения в целях проверки.

var sideA = 5;

var sideB = 5;

var sideC = Math.sqrt(50);

checkTriplet(sideA, sideB, sideC);

// Вызов функции. После вызова, триплет содержит результат.





Дата публикования: 2015-02-28; Прочитано: 349 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...