Лекции по дисциплине "Программирование 3" для бакалавров 2-курса направлений 5350200-Телевизионные технологии


} Во-вторых, можно воспользоваться специальной глобальной функцией  isFinite()



Download 5,13 Mb.
Pdf ko'rish
bet98/202
Sana26.05.2022
Hajmi5,13 Mb.
#610351
TuriЛекции
1   ...   94   95   96   97   98   99   100   101   ...   202
Bog'liq
Методичекое пособие Курс лекции по Программирование 3

}
Во-вторых, можно воспользоваться специальной глобальной функцией 
isFinite().
Эта функция возвращает true, если переданное ей число конечно, и 
false, если оно равно бесконечности. Недостатком данной функции является 
то, что значение false она возвращает и тогда, когда аргумент числом не 
является. 
var value = infinity;
if (isFinite(value) =false) {
trace("Недопустимое значение")
// Выводит: Недопустимое 
значение
}
Ограничение имеется не только для положительных значений 
показателя степени числа с плавающей точкой, но и для отрицательных. Это 
означает, что существует число, все числа меньше которого воспринимаются 
как 0. Это число называется машинным нулем и равно


126 
1

2
-1024
≈ 4.94065645841247

10
-324
trace (1e-400);
// Выводит 0
Обратите внимание, что для того, чтобы применить к числу метод 
класса Number, оно совсем не обязательно должно быть объектом этого 
класса. Метод toString() отлично работает и в случае простых чисел. Второй 
из двух существующих методов класса Number(), valueOf(). служит для 
конвертирования объектов этого класса в элементарный тип number. 
Практического значения данный метод не имеет, поэтому подробно 
рассматривать его мы не будем. Класс Number имеет и несколько встроенных 
свойств. Предназначены они для хранения важнейших числовых констант, 
таких как бесконечность, максимальное и минимальное допустимые числа, 
NaN. Так как со всеми этими значениями мы уже сталкивались, просто 
перечислим соответствующие им свойства:
Number.MAX_VALUE 
// 
Максимальное 
допустимое 
число 
(1.79769313486231е+308)
Number.MIN_VALUE 
// 
Минимальное 
допустимое 
число 
(4.940656458412476-324)
Number.NEGATIVE__INFINITY // − ∞ (возвращает -Infinity) 
Number.POSITIVE_INFINITY // + ∞ (возвращает +Infinity) 
Number.NaN // Недопустимое числовое значение" (возвращает NaN) 
Для чего действительно может быть полезен класс Number, так это для 
создания пользовательских математических методов. Например, нет никакой 
сложности в том, чтобы написать функцию, вычисляющую факториал числа 
(это произведение всех целых положительных чисел до данного значения), 
причем работать она будет ничуть не хуже, чем встроенные методы вроде 
toString(). /* Метод класса — это функция, сохраненная в прототипе его 
конструктора. При этом она автоматически попадает в цепочку наследования 
каждого из объектов этого класса, "Адресом" прототипа конструктора класса 
Number будет "Number.prototype". Создаваемый метод назовем factorial.*/ 
Number.prototype.factorial = function() { /*Перед тем как запустить механизм, 
вычисляющий факториал, необходимо проверить, корректно ли вызвавшее 
метод число в рамках данной задачи. Оно должно иметь конечное значение 
(а не NaN или Infinity), быть неотрицательным и целым. Последнее условие 
можно проверить, отняв от аргумента результат его округления методом 
Math.round{). Если число - целое, то округленное значение совпадет с 
исходным, и

следовательно, их разность будет равна 0. В качестве аргумента 
нужно использовать ключевое слово this: оно укажет на тот объект, который 
вызвал метод. */ if (isNaN(this) == false && isFinite (this)==true && this>=0 


127 
&& this-Math.round(this) = 0) { /* Если прописанные ограничения на величину 
числа будут выполнены, то вычисляем факториал. Для этого запускаем цикл 
по целочисленной переменной от 1 до this (число, вызвавшее метод), и на 
каждой его итерации домножаем предыдущее значение переменкой factor на 
нее. Начальной величиной factor должна быть 1. */ var factor = 1, for (var i = 
1; i<=this; i++) { factor *= i; }
// Возвращаем значение факториала при помощи предложения return 
return factor; }
/* Если окажется, что вызвавшее метод число имеет недопустимое 
значение, необходимо возвратить значение NaN*/ else { return NaN; }
};
var a=0, b=5, c=3; trace (a.factorial()); // Выводит: 1 trace (b.factorial()); // 
Выводит: 120 trace (с.factorial()); // Выводит: NaN Как видите, созданный 
нами метод работает точно так же, как если бы он был встроенным методом 
ActionScript. Использование возможностей объектной модели ActionScript 
позволяет решать многие задачи куда изящнее, чем с применением только 
«простого программирования.
Обратите внимание, что методы класса Number можно применять к 
числу непосредственно, не сохраняя его в переменной. Правда, для этого его 
необходимо взять в скобки, иначе точка будет воспринята интерпретатором 
как знак перехода к дробной части, а не как оператор доступа к свойствам и 
методам. Пример:

Download 5,13 Mb.

Do'stlaringiz bilan baham:
1   ...   94   95   96   97   98   99   100   101   ...   202




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish