Оглавление

1. Первая программа на JavaScript.

Программу, написанную на javascript, выполняет обозреватель Интернета. Для того, чтобы передать программу обозревателю на выполнение, ее можно вставить непосредственно в "тело" веб-страницы.

В красной рамочке приводится простейшая страничка с основными обязательными элементами. В самой первой строке приводится ссылка на стандарт W3C. Эта строка, строго говоря, не является обязательной. Веб-документ начинается с инструкции (тег) <html > и заканчивается инструкцией </html >. Сам документ состоит из заголовочной части, выделенной тегами <head >, </head >, и тела документа, которое начинается с тега <body > и заканчивается </body >.

Между тегами <body > и </body > мы и будем помещать наши программы.

<!doctype html public "-//w3c//dtd html 4.0 transitional//en" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Первая программа</title>

</head>

<body>

Здесь размещается полезная информация

Здесь же можно поместить программу на javascript, например,

Скрипт, выводящий модальное окно с классической надписью "Привет, Мир!" внутри браузера:

<script type="text/javascript">
	alert("Привет, Мир!");
</script>

Или программу, которая просто вставляет текст в Веб-страницу:

<script type="text/javascript">
var t;
	t = "<p>";
	t = t + "Привет";
	t = t + "</p>";

	document.write(t);
</script>
</body>
</html>

Последнюю программу можно переписать намного короче:

<script type="text/javascript">
	document.write("<p>Привет</p>");
</script>

Однако, если текст большой, строку вывода лучше подготовить заранее и затем передать функции document.write()

2. Создаем веб-страницу.

  • Выделяем текст в красной рамке и копируем его.
  • Открываем блокнот и вставляем в него скопированный текст.
  • Сохраняем текстовый документ в своем каталоге с именем "Программа на JavaScript.htm". Очень важно не забыть про расширение "htm". Текстовый документ с таким расширением автоматически открывается браузером. Блокнот закрывать не следует: он нам будет нужен на протяжении всей работы над программами.
  • После сохранения веб-страницы ее нужно открыть любым браузером, но лучше Internet Explorer-ом. При открытии страницы, ява-программа будет выполнена и мы увидим приветствие "Привет, Мир".

Каждая программа, которую мы собираемся вставить в веб-документ, должна начинаться с инструкции <script type="text/javascript"> и заканчиваться инструкцией </script >. Когда браузер встречает подобные инструкции, он понимает, что имеет дело с программой и старается ее выполнить. Если программа написана без ошибок, он ее выполняет, если в программе есть ошибки, то скорее всего браузер такую программу просто проигнорирует и ничего не сообщит, что не очень хорошо: лучше бы он хотя бы намекнул, где и какая ошибка. Поиск ошибок в написанной программе, самая трудная часть создания программ.

Так, что если программа ничего не делает, надо внимательно искать ошибку. Прежде всего ищем синтаксические ошибки.

1. Каждое предложение (инструкция, оператор) должно заканчиваться точкой с запятой.

2. Интерпретатор JavaScript различает строчные и прописные буквы, следовательно в названиях функций следует строго соблюдать написание с учетом регистра.

3. Вычисление площади треугольника по формуле Герона.

Формула, которую сейчас принято называть формулой Герона, впервые была предложена Архимедом. Она позволяет вычислить площадь треугольника со сторонами a, b и c S2 = p(p − a)(p − b)(p − c), где p – полупериметр треугольника.

Положим для начала, что a = 3, b = 4 и c = 5. Очевидно, что площадь такого треугольника равна 6. Напишем программу, которая вычисляет эту площадь по формуле Герона.

Но зачем писать программу, если результат уже известен?

Да конечно для этих данных мы результат уже знаем, но мы специально так выбрали значения, чтобы результат можно было легко проверить. Если программа даст тот же результат, значит мы ее правильно написали. Мы проверяем себя. Компьютер все равно что-нибудь посчитает, если в программе нет синтаксических ошибок, но чтобы быть уверенным, что он считает именно то, что нужно, мы должны предвидеть правильный результат. Когда программа будет написана и мы будем уверенны в ее правильности, мы сможем изменить значения сторон и вычислить площадь произвольного треугольника.

<script type="text/javascript">
var p, a, b, c, s;
	a = 3;
	b = 4;
	c = 5;
	p = (a + b + c)/2;
	s = p*(p - a)*(p - b)*(p - c);
	s = Math.sqrt(s);
	t = "Площадь треугольника S = " + s;
	document.write(t);
</script>

Программа начинается с объявления переменных. var – это сокращение от variable, что значит "переменная". Объявлять переменный в начале программы удобно, но не обязательно. Программа будет работать точно также, если строчку var p, a, b, c, s; убрать или "закомментировать".

Здесь надо сказать несколько слов о комментариях. Любая не тривиальная программа должна содержать комментарии, которые помогают человеку понять, что делает тот или иной фрагмент программного кода. Трансляторы, компилляторы и интерпретаторы не обращают внимание на комментарии и поэтому здесь можно писать любую полезную информацию. В конпиллируемых программах, комментарии не попадают в окончательный код программы и могут быть достаточно пространными. Все комментарии, вставленные в JavaScript-программы, передаются через линии связи Интернета вместе с веб-страницей и, чем они меньше, тем лучше. Лучше если их совсем не будет, но в этом случае уже через несколько дней мы можем не вспомнить как работает наша программа. Поэтому лучший вариант состоит в том, чтобы комментарии все-таки писать, но убирать из готовой и отлаженной версии программы.

Комментарии бывают однострочные, они начинаются с // и продолжаются до конца строки. Пример:

//Это комментарий, который будет проигнорирован интерпретатором.

Многострочные комментарии начинаются с /* и заканчиваются */. Пример:

/* Это пример многострочного комментария.
Сколько бы строк он не содержал, браузер все эти строки пропустит пока не встретит символы, являющиеся признаком конца комментария – */

Закомментировать строку программы – это значит сделать строчку программы комментарием, например так: // var p, a, b, c, s;. Этот прием позволяет "выключать" отдельные строки программы из работы, не удаляя их. Это может быть полезно при отладке программы.

 

Все математические функции, такие как sin, cos, ln, exp и другие, находятся в библиотеке математических функций Math. Для того чтобы обратиться к этим функциям необходимо сначала набрать имя библиотеки, а затем через точку имя функции. Например, вот так выглядит вызов функции, вычисляющей квадратный корень из s: Math.sqrt(s);.

 

Для того, чтобы программу заставить работать, мы ее копируем и переходим к блокноту с открытым кодом нашей веб-страницы. В веб-странице стираем все, что содержится между тегами <body > и </body > и вставляем между ними скопированную программу. После этого снова сохраняем нашу веб-страницу с новой программой. Еще раз напоминаю, что блокнот при этом закрывать не надо. После этого возвращаемся к браузеру и выполняем обновление страницы. Если все сделано без ошибок, то мы должны увидеть результат работы программы.

Когда программа выдаст ожидаемый результат, найдите площади треугольников со сторонами

	a = 5;
	b = 6;
	c = 7;

4. Используя имеющуюся программу, написать программу для вычисления площади треугольника с заданными координатами его вершин.

1.	ax = 3;	ay = 0;	2. 	ax = 1;	ay = 2;	az = 0;	3. 	ax = 1;	ay = -1;	az = 2;
	bx = 0;	by = 4;		bx = 3;	by = 0;	bz = -3;		bx = 5;	by = -6;	bz = 2;
	cx = 3;	cy = 4;		cx = 5;	cy = 2;	cz = 6;		cx = 1;	cy = 3;	cz = -1;

5. Вычислить число e, используя ряд: e = 1 + 1/1! + 1/2! + 1/3! + ...

Формула для вычисления числа e содержит бесконечное количество вычислений. Такая работа не под силу даже идеальному компьютеру. В действительности, чтобы получить какой-нибудь результат мы обязаны в какой-то момент остановиться. Чем больше будет проделано вычислений перед остановкой, тем точнее должен получиться результат. К сожалению, связь между точностью результата и количеством учтенных членов ряда сложнее. В данной задаче как раз предлагается экспериментально исследовать реальную зависимость.

<script type="text/javascript">
var e, n, t, s;
	e = 1;
	s = 1;
	for (n = 1; n < 3; n++ ){
		s = s*n;
		e = e + 1/s;
	}

	t = "Число e = " + e;
	document.write(t);
</script>

В этой программе появляется оператор цикла

	for (n = 1; n < 3; n++ ){
		s = s*n;
		e = e + 1/s;
	}

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

В круглых скобках, которые непосредственно следуют после слова for (переводится как "для"), находятся разделенные точкой с запятой три инструкции. Первая инструкция "n = 1" выполняется только один раз при входе в цикл. Она определяет начальное значение переменной n. Следующая инструкция является логическим выражением. Ели это выражение истинно, то только в этом случае выполняются операторы в фигурных скобках. Если выражение ложно, то управление передается той части программы, которая следует за циклом for. Очень важно правильно написать это выражение, если здесь возникает ошибка, то выполнение цикла может никогда не закончиться и программа "повиснет".

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

Посмотрим, как работает цикл.

Вначале мы имеем:

e = 1;

s = 1;

В цикле for присваиваем n = 1;

Проверяем n < 3;

Поскольку выражение n < 3; истинно, выполняются инструкции внутри фигурных скобок

s = s*n = 1*1 = 1;

e = e + 1/s = 1 + 1/1 = 2;

После выполнения операторов тела цикла for (то, что внутри фигурных скобок) выполняется инструкция n++, в результате n увеличивается на 1 и n теперь равно n = 2.

Снова выполняем проверку n < 3;. Снова выражение истинно и поэтому должны выполниться операторы цикла:

s = s*n = 1*2 = 2;

e = e + 1/s = 2 + 1/2 = 2.5;

При этом мы не должны забыть (компьютер не забудет, но, если мы забудем, мы не поймем, что происходит), что теперь s и e имеют другие значения.

Далее снова происходит увеличение n++. n = 3.

Выполняем проверку n < 3;. На этот раз получается ложное выражение и цикл больше не выполняется.

Как мы видим, при условии n < 3; мы получаем сумму всего двух членов ряда. Это очень мало, конечно. Чтобы получить более точный результат попробуйте увеличивать постепенно число в выражении n < 3;. Скажем

n < 5;.

n < 10;.

n < 20;.

n < 100;.

Вычислите число e при различных значениях n и постарайтесь сделать вывод.

6. Вычислить число π, используя ряд: π/4 = 1 − 1/3 + 1/5 − 1/7 + 1/9 − 1/11 + ...

<script type="text/javascript">
var p, n, t, z, s;
	p = 0;
	s = 1;
	for (n = 1; n < 3; n++ ){
		z = 2*n - 1;
		p = p + s/z;
		s = -s;
	}

	t = "Число π = " + p*4;
	document.write(t);
</script>

Обратите внимание на то, как медленно сходится этот ряд.

7. Вычислить число π, используя ряд: π2/12 = 1 − 1/22 + 1/32 − 1/42 + 1/52 − 1/62 + ...

<script type="text/javascript">
var p, n, t, z, s;
	p = 0;
	s = 1;
	for (n = 1; n < 3; n++ ){
		z = n*n;
		p = p + s/z;
		s = -s;
	}
	p = p*12;
	p = Math.sqrt(p);

	t = "Число π = " + p;
	document.write(t);
</script>

8. Задание для самостоятельной работы

  1. Найти площадь, периметр и высоту, опущенную на самую длинную сторону треугольника. Вершины треугольника заданы координатами:

    a)

    ax = 0;

    bx = 1;

    cx = 5;

    ay = 1;

    by = -4;

    cy = 2;

    b)

    ax = -4;

    bx = -2;

    cx = 0;

    ay = 1;

    by = 4;

    cy = 1;

    c)

    ax = 4;

    bx = 12;

    cx = 7;

    ay = 8;

    by = 11;

    cy = 0;

    d)

    ax = 4;

    bx = 12;

    cx = 5;

    ay = 0;

    by = -2;

    cy = 9;

    e)

    ax = 9;

    bx = 2;

    cx = 2;

    ay = 3;

    by = 10;

    cy = 3;

    az = -5;

    bz = -5;

    cz = 2;

    f)

    ax = 9;

    bx = 2;

    cx = 2;

    ay = 3;

    by = 10;

    cy = 3;

    az = -5;

    bz = -5;

    cz = 2;

    g)

    ax = 3;

    bx = 5;

    cx = 1;

    ay = 7;

    by = -3;

    cy = 3;

    az = -4;

    bz = 2;

    cz = -10;

    h)

    ax = 5;

    bx = 5;

    cx = 4;

    ay = -5;

    by = -3;

    cy = -3;

    az = -1;

    bz = -1;

    cz = 0;

    k)

    ax = -5;

    bx = -4;

    cx = -5;

    ay = 2;

    by = 3;

    cy = 2;

    az = 0;

    bz = 0;

    cz = -2;

  2. Вычислить сумму первых N членов ряда:

    a)

    b)

    c)

    d)

    e)


Сайт управляется системой uCoz