
1744
.pdf
|
|
|
Окончание табл. 2 |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
|
|
Округляет число до |
Math.floor(56. |
|
|
floor(число) |
ближайшего меньшего |
56 |
|
|
4678954321) |
|
|||
|
целого |
|
|
|
|
|
|
|
|
round(число) |
Округляет число до |
Math.round(56. |
56 |
|
ближайшего целого |
4678954321) |
|
||
|
|
|
||
min(x,y) и |
Возвращает меньшее и |
|
|
|
большее из аргументов |
Math.min(12,5) |
5 |
|
|
max(x,y) |
|
|||
соответственно |
|
|
|
|
|
|
|
|
|
|
|
|
Выдает |
|
|
|
|
каждый раз |
|
|
Возвращает |
|
разное |
|
|
|
значение, |
|
|
random() |
псевдослучайное число от 0 |
Math.random() |
|
|
например, |
|
|||
|
до 1 |
|
|
|
|
|
значение: |
|
|
|
|
|
|
|
|
|
|
0.348227596253 |
|
|
|
|
22974 |
|
При использовании большого числа свойств и методов объекта Math удобно воспользоваться оператором присоединения with.
Пример
Вводится длина окружности (prompt) и вычисляются радиус и площадь круга с выводом в окно браузера:
<script language="JavaScript"> var L, R, S
L=prompt('Введите длину окружности','') L=parseFloat(L)
with(Math){
R=L/(PI*2)
S=PI*pow(R,2)
}
document.write('L=',L,'<BR>')
document.write('R=',R,'<BR>')
document.write('S=',S,'<BR>')
</script>
На рис.9 показано, как будет выглядеть результат работы сценария.
20

Рис. 9. Вид Web-страницы в окне браузера
Для округления числа до нужной точности используется метод toFixed(Число знаков после запятой). Для нашего примера:
<script language="JavaScript"> var L, R, S
L=prompt('Введите длину окружности','') L=parseFloat(L)
with(Math){
R=L/(PI*2)
S=PI*pow(R,2)
}
document.write('L=',L,'<BR>')
document.write('R=',R.toFixed(2),'<BR>')
document.write('S=',S.toFixed(2),'<BR>')
</script>
На рис.10 показано, как будет выглядеть результат работы сценария.
Рис. 10. Вид Web-страницы в окне браузера
2.9.Условные операторы
Вязыке JavaScript используются следующие конструкции условных операторов:
Сокращенная форма условного оператора If.
21
Полная форма условного оператора If.
Условный оператор ?
Рассмотрим их подробнее.
2.9.1. Сокращенная форма условного оператора If
Структура условного оператора выглядит следующим образом: if (Условие) Оператор
Сначала определяется значение логического выражения (Условие); затем, если оно истинно, выполняется Оператор, следующий непосредственно за условием, взятым в круглые скобки.
Пример
Вводится имя и, если не нажата клавиша «Cancel» и не введено пустое имя, то выдается сообщение «Здравствуйте, имя!».
<script language="JavaScript"> var Name
Name=prompt('Введите Ваше имя',' ')
if (Name != null && Name != ' ') alert('Здравствуйте, '+Name+'!') </script>
Оператор if может содержать несколько операторов действия. В таком случае необходимо заключить эти действия в фигурные скобки.
2.9.2. Полная форма условного оператора If
Структура условного оператора выглядит следующим образом: if (Условие) Оператор1
else
Оператор2 При истинности Условия выполняется Оператор1, в противном
случае (Условие ложно) выполняется Оператор2.
Пример
Пусть осуществляется ввод строки по запросу: “Введите пароль:”. Если введенное значение “СИБАДИ”, то выводится сообщение: “Добро пожаловать!”. При вводе любого другого значения выводится сообщение: “Пароль введен не верно”. Для ввода строки с паролем воспользуемся методом prompt.
<script language=”JavaScript”> var Parol
Parol=prompt('Введите пароль: ', ' ')
22
if(Parol == 'СИБАДИ') alert('Добро пожаловать!') else
alert('Пароль введен не верно') </script>
Оператор if()else может содержать несколько операторов действия по любой из веток. В таком случае необходимо заключить эти действия в фигурные скобки.
2.9.3.Условный оператор ?
Вязыке JavaScript поддерживается довольно удобный оператор создания выражений с проверкой, позаимствованный из языка С. Вот его синтаксис:
(Условие) ? Оператор1: Оператор2 При истинности Условия выполняется Оператор1, в противном
случае (Условие ложно) выполняется Оператор2.
Пример
Вводится фамилия и оценка за зачет. Если введенная оценка меньше или равна 2, то выводится сообщение «Фамилия, пересдача», в противном случае выводится сообщение «Фамилия, зачет».
<script language=”JavaScript”> var Ball, Fam, Otvet
Fam=prompt('Введите фамилию: ', ' ') Ball=prompt('Введите оценку: ', ' ') Ball=parseInt(Ball)
Otvet= (Ball<=2) ? "пересдача": "зачет" alert(Fam+", "+Otvet)
</script>
В программе переменной Otvet присваивается значение "пересдача", если переменная Ball меньше или равна 2, в противном случае переменной Otvet присваивается значение "зачет". Результатом выполнения программы является окно вывода, в котором выводится фамилия и через запятую значение переменной Otvet ("пересдача" или "зачет").
23
2.10. Оператор выбора switch
При проверке в программе большого числа условий вместо использования множества условных операторов удобнее использовать оператор выбора switch.
Структура данного оператора следующая: switch (выражение){
case label1: Оператор1 // если выражение равно label1 break
case label2: Оператор2 //если выражение равно label2 break
. . .
default: ОператорN // выражение не равно ни одной метке
}
Необязательный оператор break, задаваемый в каждом из блоков саsе, выполняет безусловный выход из оператора switch. Если он не задан, то продолжается выполнение операторов в следующих блоках case до первого оператора break или до конца тела оператора switch.
Пример
В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла. Поскольку цикл является двенадцатилетним, поставим название года в соответствие остатку от деления номера этого года на 12.
<script language="JavaScript"> var x=prompt('Введите год',' ')
x=parseInt(x) % 12 // вычисление остатка от деления х на 12 switch(x){
сase 0:alert('Год обезьяны') break
case 1:alert('Год петуха') break
case 2:alert('Год собаки') break
case 3:alert('Год свиньи') break
24
case 4:alert('Год крысы') break
case 5:alert('Год коровы') break
case 6:alert('Год крысы') break
case 7:alert('Год зайца') break
case 8:alert('Год дракона') break
case 9:alert('Год змеи') break
case 10:alert('Год лошади') break
case 11:alert('Год овцы')
}
</script>
2.11. Использование функций в JavaScript
Функция — это именованная последовательность операторов, которая выполняется как одно целое и может возвращать некоторое значение. Функция определяется оператором function, имеющем следующий синтаксис:
function Имя_функции([параметры]) { [операторы JavaScript]
[return значение]
}
Функция может не иметь параметров или иметь параметры. Параметры, перечисляемые в круглых скобках после имени функции, разделяются запятыми. Необязательный оператор return в теле функции определяет возвращаемое функцией значение.
Вызов функции происходит в сценарии по имени с указанием фактических параметров, разделенных запятой.
Следует четко понимать различие между объявлением функции и ее вызовом. Объявление функции только задает ее имя и определяет, что она будет делать при ее вызове. Непосредственное выполнение
25
функции осуществляется, когда в сценарии вызывают ее и передают действительные параметры.
Определение необходимых функций следует осуществлять в теге <HEAD>, так как все определенные в нем операторы сценария интерпретируются до отображения страницы и, таким образом, будут известны в процессе отображения всей страницы.
Пример
С использованием функции без параметров выводится 3 раза окно с сообщением “Внимание!!!”.
<HEAD>
<SCRIPT LANGUAGE="JavaScript"> // Определение функции
function F() { alert("Внимание!!!")
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"> // Вызов функции 3 раза
F()
F()
F()
</SCRIPT>
</BODY>
Пример
С использованием функции с параметрами вычисляются квадраты чисел 5 и 15 и выводятся в окно браузера.
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
// Описание функции с одним параметром function Square(x) {
res=x*x return res
}
</SCRIPT>
</HEAD>
<BODY>
26

<SCRIPT LANGUAGE="JavaScript">
// Вызов функции с параметром 5 и 15 document.write("Квадрат числа 5= "+Square(5)+" <br>") document.write("Квадрат числа 15= "+Square(15)+" <br>")
</SCRIPT>
</BODY>
На рис.11 показано, как будет выглядеть результат работы сценария.
Рис. 11. Вид Web-страницы в окне браузера
2.12.Операторы циклов
ВJavaScript возможно использование следующих разновидностей циклов для организации повторяющихся действий:
Цикл с параметром for.
Цикл с предусловием while.
Цикл с постусловием do … while.
Цикл for (… in …).
Рассмотрим операторы циклов подробнее.
2.12.1. Цикл с параметром
Структура цикла с параметром в JavaScript:
for (инициализация параметра; условие; изменение параметра) { Тело цикла
}
В этом выражении:
инициализация параметра – выражение, которое задает начальное значение параметра (например, I=1);
27

условие – выражение, задающее условие, при истинности которого цикл выполняется; при ложности условия цикла работа цикла завершается (например, I<=10).
изменение параметра – выражение, задающее изменение значения параметра на указанный шаг (например, I=I+2 (шаг 2); I++(шаг 1); I-- (шаг -1)).
Если в теле цикла вы используете только один оператор, то фигурные скобки можно не использовать.
Пример
Требуется три раза отобразить в окно браузера строку: "Это JavaScript! Добро пожаловать!".
<script language="JavaScript"> var i
for (i=1; i<=3; i++){
document.write('Это JavaScript! Добро пожаловать! <br>')
}
</script>
На рис.12 показано, как будет выглядеть результат работы сценария.
Рис. 12. Вид Web-страницы в окне браузера
Пример
Вычислить значение факториала введенного числа (prompt). <script language="JavaScript">
var I
var Fact=1
var N=parseInt(prompt("Введите число:", "10")) for (i=1; i<=N; i++){
Fact=Fact*i
}
28

document.write('<h3>Значение факториала</h3>') document.write('<b><br><font color="green">'+N+'! = </font>'+Fact)
</script>
На рис.13 показано, как будет выглядеть результат работы сценария.
Рис. 13. Вид Web-страницы в окне браузера
Пример
Рассмотрим пример классической задачи табулирования функции
на заданном отрезке: вычислить все значения функции y 5x2 sin x
(x 5)
на отрезке [-1; 1] с шагом 0.2.
<script language="JavaScript"> var x, y
document.write("<b>Табулирование функции</b><br>") for (x=-1; x<=1; x=x+0.2){
y=5*x*x*Math.sin(x)/(x+5) document.write("x="+x.toFixed(2)+" y="+y.toFixed(2)+ "<br>")
}
</script>
На рис.14 показано, как будет выглядеть результат работы сценария.
29