Пример 5. Нахождение общего делителя



Напишем программу, которая для двух заданных чисел определяет наибольший общий делитель.
При решении задачи воспользуемся алгоритмом Евклида. Если значениеmравно нулю, то наибольший общий делитель чиселnиmравенn:
НОД(n, 0) = n.
В остальных случаях верно следующее соотношение:
НОД(n, m) = НОД(m, n%m).
В функцииnodпеременнаяриспользуется для получения остатка от деления чиселnиm(листинг 5). Выполнение цикла продолжается до тех пор, пока значениерне станет равным нулю. Последнее вычисленное значениеmравно наибольшему общему делителю.

 

Листинг 5.Наибольший общий делитель двух чисел

<HTML>

<HEAD>

<TITLE>Наибольший общий делитель двух чисел</TITLE>

<script language="JavaScript">

function nod(obj)

{ var n=obj.num1.value

var m=obj.num2.value

var p = n%m

while (p!=0)

{ n=m

m=p

p=n%m

}

obj.res.value=m

}

</script>

</HEAD>

<BODY>

Наибольший общий делитель двух заданных чисел

<FORM name="form1">

Введитечисло<input type="text" name="num1" size="8"><br>

Введитечисло<input type="text" name="num2" size="8"><br>

<input type="button" value="Вычислить" onClick="nod(form1)"><br>

Наибольший общий делитель <input type="text" name="res"

size="8"><hr>

<input type="reset" value="Отменить">

</FORM>

 

</body>

</html>

 

Если число повторений заранее известно, то можно воспользоваться следующим оператором цикла, который часто называют оператором цикла арифметического типа. Синтаксис этого оператора таков:

for (А; В; I){S}

ВыражениеАслужит для инициализации параметра цикла и вычисляется один раз в начале выполнения цикла. ВыражениеB(условие продолжения) управляет работой цикла. Если значение выражения ложно, то выполнение цикла завершается, если истинно, то выполняется операторS, составляющий тело цикла. ВыражениеIслужит для изменения значения параметра цикла. После выполнения тела циклаSвычисляется значение выраженияI, затем опять вычисляется значение выраженияBи т.д. Цикл может прекратить свою работу в результате выполнения оператораbreakв теле цикла.

 

Пример 6. Совершенные числа

Напишем программу, определяющую, является ли заданное числоnсовершенным.
Совершенным называется числоn, равное сумме своих делителей, не считая самого числа. Например, число 6 является совершенным, т. к. верно 6 = 1 + 2 + 3, где 1, 2, 3 - делители числа 6. Число 28 также является совершенным, справедливо равенство 28 = 1 + 2 + 4 + 7 + 14. При решении задачи воспользуемся только функциейsumdei(листинг 2).

 

Листинг 6.Итерационные методы. Совершенные числа

<HTML>

<HEAD>

<TITLE>Итерационные методы. Совершенные числа</TITLE>

<script language="JavaScript">

function sumdel(n)

{ var s=1;

for (var i=2; i<=n/2; i++)

{ if (n % i == 0) s += i }

return s

}

function sov(obj)

{ var n=obj.numb.value;

var s=""

if (n==sumdel(n)) s="совершенное"

else s="не является совершенным"

return s

}

</script>

</HEAD>

<BODY>

<P> Итерационные методы. Совершенные числа</P>

<FORM name="form0">

Введитенатуральноечисло: <input type="text" size=8 name="numb">

<input type="button" value=Выполнить onClick="this.form.res.value=sov(form0)"><hr>

Данноечисло: <input type="text" size=24 name="res"><hr>

<input type="reset" value=Отменить>

</FORM>

 

</body>

</HTML>

 

Обратите внимание на значение параметра обработки события. В данном случае это оператор присваивания, в правой части которого вызов функцииsov.
Операторfor...inиспользуется для анализа свойств объекта. Синтаксис оператора:

for (i in t) {s}

гдеi- переменная цикла;t- объект;s- последовательность операторов.
В результате выполнения оператора цикла производится перебор свойств объекта. Переменная цикла при каждом повторении содержит значение свойства объекта. Количество повторений тела циклаsравно числу свойств, определенных для объектаt.

 

Встроенные объекты JavaScript

 

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

Объект Math

Объект Math представляет математические константы и функции. Константы представлены свойствами объекта, а функции - его методами. Их назначение понятно из названий: Свойства: E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2. Методы: abs, acos, asin, atan, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan. Примерыиспользования:

var r = 1.8, theta = 30, a, x, y, D; var rnd = Math.round(Math.random()*99)+1;

D = Math.PI*r*r; x = Math.max(1,7,5,9); y = Math.pow(2,10);

with (Math) { y = r*sin(theta); x = r*cos(theta); }

Объект string

Встроенный объект string представляет литерал (строку символов), заключенный в одинарные или двойные кавычки или вычислимое выражение, которое может быть интерпретировано как строка.

Для объекта string определены следующие свойства и методы:

 Свойства:

length (длина строки).

Методы (не все):

anchor (якорь), bold (полужирное начертание), charAt (символ в позиции), fixed (преформат), fontcolor (цвет шрифта), fontsize (размер шрифта), indexOf (индекс первого вхождения символа), italics (курсив), link (гиперссылка), substring (подстрока), toLowerCase (строчные), toUpperCase (прописные).

Несколько примеров использования объекта string:

var hello = "Hello, ", w = "World!";

var str = hello + w; // конкатенация строк

document.write(str.bold()); document.write(str.toUpperCase()); document.write(hello.fontsize(6));

document.write(hello.substring(0,3));

document.write(hello.link("http://localhost"));

document.write(w.indexOf("l"));

alert("string lehgth = " + str.length);

Вывод данных в JavaScript

Результаты работы скрипта JavaScript могут быть отображены по меньшей мере двумя способами: в окно текущего веб-документа и в диалоговое окно. Для вывода данных в веб-документ можно использовать метод write объекта document (подробнее о нем лабораторной работе №5).

При интерпретации HTML-страницы браузером создаются объекты JavaScript. Взаимосвязь объектов между собой представляет иерархическую структуру. На самом верхнем уровне иерархии находится объект windows, представляющий окно браузера. Объект windows является предком или родителем" всех остальных объектов. Каждая страница кроме объекта windows имеет объектdocument.

Свойства объекта document определяются содержимым самого документа: цвет фона, цвет шрифта и т. д. Для получения значения основания треугольника, введенного в первом поле формы, должна быть выполнена конструкция

document.forml.stl.value

т.е., говоря русским языком (при этом читаем с конца), используем данные value из поля ввода с именем st1 находящегося на форме form1 объекта document.

Еще несколько примеров:

document.write("Hello, World!"); document.write("<h1>>Hello, World!</h1>"); // внедрение HTML в JavaScript

// обратите внимание на использование вложенных кавычек document.write("<p><a href='http://localhost'>Link to localhost</a></p>");

Для вывода различных информационных сообщений, не относящихся напрямую к содержимому веб-страницы следует использовать метод alert, представляемый объектом window.

Этот метод выводит модальное диалоговое окно (рисунок 1), блокирующее выполнение скрипта до нажатия пользователем кнопки в этом диалоге.

Рисунок 1. Вызов окна сообщения из скрипта JavaScript

 

Пример использования метода alert:

vara, b, s = "=";

with (Math) { a = ceil(random()*100); b = ceil(random()*100); } a > b ? s = ">" : s = "<"; // тернарноесравнение

alert("A = "+a+";\nB = "+b+";\nСледовательно, A "+s+" B"); // "\n" - перевод строки

 


Дата добавления: 2018-04-04; просмотров: 656; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!