Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник-по-JavaScript_part2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
106.5 Кб
Скачать

J a v a S c r i p t: о с н о в ы п р о г р а м м и р о в а н и я

Программирование алгоритмов циклической структуры

1. Оператор for

Цикл – это повторение блока определённых действий заданное число раз.

В языке JavaScript программирование циклов обеспечивают операторы for… и while….

Синтаксис for (i=A; i<B; i=i+C) { – заголовок цикла

блок операторов – тело цикла

}

где i – счётчик цикла, переменная

А – начальное значение счётчика, число

В – конечное значение счётчика, число

С – шаг изменения счётчика, число.

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

Механизм управления

  1. Проверка логического выражения i в заголовке цикла

  2. Если i<b равно true, то выполняется {тело цикла}, затем происходит изменение (итерация) счётчика i=i+C и переход к пункту 1.

Если i<b равно false, то управление передаётся следующей строке за циклом.

Пошаговая обработка цикла

Выполнение тела цикла для какого-либо значения счётчика i называется шагом цикла.

Практическая работа «Каковы значения счётчика цикла?»

Как изменится значение счётчика цикла i для:

  1. А=10 В=25 С=3 при условии i<B

  2. А= -2 В= -8 С= -0.5 при условии i>=B

  3. А= 1 В=10 С=-2 ( i<B – “зацикливание”, i>B – цикл не выполняется)

Сколько шагов цикла выполнится в каждом случае?

2. Вычисление сумм и произведений

Задача “Вычисление суммы чётных чисел”. Вычислить сумму чётных чисел от 1 до 100. Распечатать сумму каждого шага цикла.

Постановка задачи: S = 2+4+6+…+100

С крипт: <script> function Start( ) {

S=0;

for (i=2; i<=100; i=i+2) {

S=S+i;

document.write (S)

}

} </script>

Пошаговая обработка цикла:

На 1 шаге: На 2 шаге: На 3 шаге:

i = 2 2<=100 (true) i = 4 4<=100 (true) i = 6 6<=100 (true)

S=0+2 S=2+4 S=2+4+6

i =2+2 i =4+2 i =6+2

Задача «Среднее арифметическое нечётных чисел». Вычислить среднее арифметическое нечётных чисел от 1 до N, где N – задано.

Постановка задачи. S=1+3+…+N; K – количество нечётных чисел; SA=S/K.

С крипт. N=prompt (“Введи N”, “”);

N=parseInt(N);

S=0; K=0;

for (i=1; i<=N; i=i+2) {

S=S+i; K=K+1 }

SA=S/K;

document.write (SA) Выполните первые три шага цикла для N=5.

Задача «Факториал». Вычислить значение факториала N! для заданного числа N. Распечатать значение произведения каждого шага цикла по следующему образцу:

Произведение … го шага = …

Постановка задачи. P=1*2*3*…*N

С крипт. N=prompt (“Введи N”, “”);

N=parseInt(N);

P=1;

for (i=1; i<=N; i++) {

P=P*i

document.write (“Произведение”+ i+” го шага =”+ P)

}

При выводе значений произведения используем конкатенацию переменных i и P с текстом.

Контрольные вопросы

  1. Что называется циклом? Каков синтаксис оператора for? Параметры?

  2. Каков механизм управления оператора for? Что называется шагом цикла?

  3. Зачем задаются начальные значения переменных при вычислении сумм и произведений?

  4. Как вычисляются в цикле суммы и произведения?

  5. Что такое пошаговый вывод результатов?

Практическая работа «Оператор for…Пошаговый вывод результатов»

  • Создайте html-файл с именем заголовки.htm

  • Запишите скрипт и отредактируйте работу скрипта в броузере

Задача «Сумма». Вычислите сумму для заданного числа N≥ 4, распечатайте значение суммы на каждом шаге цикла.

S = 4 + 7 + 10 +…+ N.

Отформатируйте вывод результатов по следующему образцу: Сумма … го шага равна …

Задача «Уровни заголовков HTML». Выведите числа от 1 до 6 шрифтами заголовков HTML от <H1> до <H6>. Отредактируйте вывод чисел тестом: Заголовок … уровня

<script> function Start() {

for (i=1; i<=6; i++) {

document.write (“<H”+i+”>Заголовок ”+i+”уровня</H”+i+”>”)

}

} </script>

Задание «Таблица умножения». Составьте таблицу умножения для числа 12 (1*12, 2*12, …, 12*12), используя таблицу HTML по собственному образцу.

Практическая работа «Обработка циклов for…»

  • Каковы значения переменных i и S на каждом шаге цикла?

  • Каким будет значение S после выполнения цикла?

  • Сколько шагов выполнит цикл? Запишите постановку задачи.

А) S=1 Б) S=0

for (i=1;i<=4;i++) { for (i=2;i<=14;i=i+3) {

S=S*2} S=S+ i*i }

document.write(S) document.write(S)

3. Применение дополнительных переменных

Иногда для вычисления сложных сумм (произведений) в цикле применяют дополнительные переменные.

Задача «Сложная сумма». Вычислить z для заданных значений а и n.

z = (a +1) + (a+1)(a+2) +…+ (a+1)(a+2)…(a+n)

Решение. Данная задача требует вычисление произведений и суммы. Обозначим

произведение переменной р. Тогда на первом шаге цикла p = (a+1), а на

последнем шаге p = (a+1)(a+2)…(a+n).

С крипт. n=prompt(“Введи n”,””); n=parseInt(n);

a=prompt(“Введи a”,””); a=parseFloat(a);

z=0; p=1;

for (i=1; i<=n; i++) {

p=p*(a+i); z=z+p}

alert (“сложная сумма =” +z)

Пошаговая обработка цикла: Как изменяются значения переменных i, p, z для n=3?

На 1 шаге: На 2 шаге: На 3 шаге:

i=1 i=2 i=3

p=1*(a+1) p=(a+1)(a+2) p=(a+1)(a+2)(a+3)

z=0 + (a+1) z=(a+1) + (a+1)(a+2) z=(a+1) + (a+1)(a+2) + (a+1)(a+2)(a+3)