Учебник по программированию.

Учимся программировать вместе с JavaScript.

 

 

Учебник по программированию. Первые шаги. Язык программирования PascalABC.NET.

 


Учебник по программированию. Создание сайтов. Первые шаги.
Предыдущий параграф Назад в содержание Следующий параграф

§05. Функции.

Функция – код, который выделен в отдельный блок и имеет своё собственное уникальное имя (имя функции). Для того, что бы этот код был выполнен, необходимо написать имя функции в нужном месте. Когда имя функции встречается в коде, говорят, что функция была вызвана.

Назначение функции заключается в том, что бы часть кода, которая должна повторяться неоднократно, объединить в один блок. При этом вызов этого блока будет осуществляться по имени функции.

Использование функций позволяет сократить количество кода. Так же существует возможность использовать чужие готовые функции. Так, например, операции Math.random и document.write тоже являются функциями, которыми мы успешно пользуемся, хотя они были написаны не нами.

Определение функции.

Для того, что бы функцию можно было вызвать её нужно определить. Определить – значит написать код, который должен быть выполнен при вызове функции. Определяется функция следующим образом: пишется зарезервированное слово function, после которого указывается имя функции, после чего ставятся круглые скобки. После всего этого в фигурных скобках пишется код функции. Данный код в фигурных скобках, как правило, называют телом функции. Пример:

<script> function my_Function() { document.write('<br>'); document.write('Была вызвана функция my_Function'); document.write('<br>'); }; for (var count = 1;count<6; count = count+1) my_Function(); </script>
Функции.

Как видите, в данном примере функция my_Function была вызвана с помощью цикла счётчика 5 раз. При этом весь код занял 8 строчек. Для сравнения можете записать программу с таким же результатом работы без использования функции и цикла. У вас получится 15 строчек кода.

Обратите внимание на то, что при вызове функции наличие круглых скобок после её имени обязательно.

В отличие от некоторых других языков программирования в JavaScript вызывать функцию можно как после, так и до её определения. Пример:

<script> for (var count = 1;count<6; count = count+1) my_Function(); function my_Function() { document.write('<br>'); document.write('Была вызвана функция my_Function'); document.write('<br>'); }; </script>

Результат работы программы останется прежним.

Передаваемые аргументы.

Для работы функции можно передавать некоторые данные, которые в программировании называются аргументами. Прежде чем описать механизм их передачи, приведём пример, в котором функция bold_write выводит в окно браузера строку жирным шрифтом:

<script> function bold_write(string) { document.write('<b>'); document.write(string); document.write('</b>'); }; bold_write('Привет всем!'); </script>
Передаваемые аргументы.

Для того, что бы функция смогла принимать аргумент, при её определении необходимо в круглых скобках после её имени указать имя переменной, в которую будет записываться значение передаваемого параметра. В данном примере это переменная string. Далее в коде функции этой переменной можно пользоваться как любой другой.

Для того, что бы передать аргумент, необходимо при вызове функции в круглых скобках указать его значение. В данном примере аргументом является строка «Привет всем!».

Для передачи аргумента можно использовать и переменную. В таком случае значение этой переменной и будет передано в качестве аргумента. Пример:

<script> function bold_write(string) { document.write('<b>'); document.write(string); document.write('</b>'); }; var str = 'Привет всем!'; bold_write(str); </script>

Результат работы программы остался прежним.

Передача нескольких аргументов.

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

При вызове функции для передачи нескольких аргументов необходимо указать их значения через запятую в круглых скобках. Пример:

<script> function summ_write(x1,x2) { var summ; summ = x1+x2; document.write(x1,'+',x2,'=',summ); }; summ_write(2,4); </script>
Передача нескольких аргументов.

Обратите внимание на шестую строчку кода:

document.write(x1,'+',x2,'=',summ);

Операция document.write тоже является функцией. Поэтому ей можно так же передавать несколько аргументов через запятую, что и было сделано в этом примере. Теперь в целях сокращения кода вы тоже можете передавать этой операции по несколько аргументов сразу.

Возвращение результата функцией.

Любая функция может возвращать какой-либо результат, точно так же, как и операция Math.random. Для этого существует слово return, которое необходимо указать в коде функции, и после которого указывается возвращаемое значение. Пример:

<script> function summ(x1,x2) { return x1+x2; }; document.write('2+3=',summ(2,3)); </script>
Возвращение результата функцией.

Здесь есть один нюанс: слово return заканчивает работу функции, поэтому если это слово встретится в середине кода функции, то в этом месте она прекратит своё выполнение. Поэтому это слово можно использовать и без возвращаемого значения для досрочного выхода из функции.

Задачи.

1. Написать функцию, выводящую в окно браузера строку в виде заголовка.

2. Написать функции, вычисляющие: суму трёх чисел; разность двух, трёх чисел; произведение двух, трёх чисел; частное двух чисел; квадрат, куб числа.

3. Написать функцию, вычисляющую факториал числа. Примечание: для решения данной задачи можете воспользоваться алгоритмом работы программы из предыдущего параграфа, которая вычисляет факториал числа 5.

4. Написать функцию, которая выдаёт случайное целое число от 0 до 100. Для этого вам потребуется функция Math.random, которая округляет число до целого значения.

5. Написать функцию, которая выдаёт случайное целое число A в диапазоне от X до Y. Воспользуйтесь следующей формулой:

Задание 5. , где Z – случайное число от 0 до 100 (см. предыдущую задачу). Примечание: не забудьте число A округлить.

6. Написать функцию, которая выводит в окно браузера два слова по алфавиту.

Примеры решений.

3.

<script> function Fact(x) { var fact = 1; for (var count = 2; count < (x+1); count = count + 1) { fact = fact*count; } return fact; } document.write('Факториал числа 5 равен ',Fact(5)); </script>
Пример 3.

4.

<script> function int_random() { return Math.round(Math.random()*100); } document.write('Случайное число от 0 до 100: ',int_random()); </script>
Пример 4.

5.

<script> function int_random_range(X,Y) { return Math.round((Math.random()*100)*(Y-X)/100)+X; } document.write('Случайное число от 50 до 70: ',int_random_range(50,70)); </script>
Пример 5.

6.

<script> function write_alph(str_1,str_2) { if (str_1<str_2) document.write(str_1,', ',str_2,'.') else document.write(str_2,', ',str_1,'.'); } document.write('Имеем два слова Лес и Дом. По алфавиту будет так - '); write_alph('Лес','Дом'); </script>
Пример 6.
Предыдущий параграф Назад в содержание Следующий параграф