Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
J a v a S c r i p t: о с н о в ы п р о г р а м м и р о в а н и я
Программирование алгоритмов циклической структуры
1. Оператор for…
Цикл это повторение блока определённых действий заданное число раз.
В языке JavaScript программирование циклов обеспечивают операторы for… и while….
Синтаксис for (i=A; i<B; i=i+C) { заголовок цикла
блок операторов тело цикла
}
где i счётчик цикла, переменная
А начальное значение счётчика, число
В конечное значение счётчика, число
С шаг изменения счётчика, число.
В заголовке цикла должны быть указаны все параметры цикла. Тело цикла записывается в фигурных скобках, здесь перечислены через «;» операторы.
Механизм управления
Если i<b равно false, то управление передаётся следующей строке за циклом.
Пошаговая обработка цикла
Выполнение тела цикла для какого-либо значения счётчика i называется шагом цикла.
Практическая работа «Каковы значения счётчика цикла?»
Как изменится значение счётчика цикла i для:
Сколько шагов цикла выполнится в каждом случае?
Задача “Вычисление суммы чётных чисел”. Вычислить сумму чётных чисел от 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 с текстом.
Задача «Сумма». Вычислите сумму для заданного числа 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…»
А) 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)
4. Пошаговый ввод данных
В теле цикла возможно применение средства ввода данных с клавиатуры, метода prompt.
Задача «Средний вес». Найти средний вес учеников вашей группы.
Решение. n количество учеников; a вес каждого ученика; s сумма веса; sr средний вес. s=a1 + a2 + … + an ; sr=s/n
Скрипт. n=prompt(“Введи количество учеников”,””);
n=parseInt(n);
s=0;
for (i=1; i<=n; i++) {
a=prompt(“Введи вес ”+i+” ученика”,””); a=parseFloat(a);
s=s+a }
sr=s/n;
alert (“средний вес группы ”+sr+” кг”)
5. Условия в цикле
Задача «Числа в интервале». Среди поочерёдно вводимых с клавиатуры десяти целых чисел найти, сколько из них принадлежит интервалу (0, 25).
Решение. Описание переменных: a вводимое с клавиатуры число; k количество чисел, принадлежащих интервалу (0,25). На каждом шаге цикла выполним следующие действия:
1). ввод числа в переменную а;
2). проверка условия если 0<а<25, то k=k+1
Скрипт. k=0;
for (i=1; i<=10; i++) {
a=prompt(“Введи ”+i+” число”,””); a=parseInt(a);
if (a>0 && a<25) {k=k+1}
}
document.write(“количество чисел в интервале (0,25) ” +k)
Контрольные вопросы
Выводы
Цикл это повторение блока определённых действий заданное число раз.
В языке JavaScript программирование циклов обеспечивают операторы for…(цикл “ДО”) и while…(цикл “ПОКА”). Число шагов цикла (итераций) контролируется с помощью специальной переменной счётчика цикла. Тело цикла записывается в фигурных скобках, здесь перечислены через «;» операторы. Иногда для вычисления сложных сумм (произведений) в цикле применяют дополнительные переменные. В теле цикла можно осуществлять ввод данных и вывод результатов, а также проверку условий.
Практическая работа “Демонстрация обработки циклов”
Задание 1. Продемонстрировать обработку данных в представленных выше примерах: «Средний вес», «Числа в интервале».
Задание 2*. Среди поочерёдно вводимых с клавиатуры 5 имён, выведите ваше имя шрифтом бóльшего размера.
Самостоятельная практическая работа «Обработка циклов for…»
1 вариант
2 вариант
(Цена 1 кг сыра 85 руб.)
3 вариант
10 дюймов с шагом 1 (1 дюйм = 2,54 см).
сколько раз встретится число А, а сколько раз число В?
6. Оператор while…
Оператор while… используется для создания цикла, выполняемого, пока значение логического выражения, указанного в качестве параметра, равно true. Тело цикла заключается в фигурные скобки.
Синтаксис i=A
while(i<B) {
блок операторов; тело цикла
i=i+C
}
где i счётчик цикла, A,B начальное и конечное значения счётчика, С шаг изменения счётчика.
Изменение счётчика i=i+c устанавливается в любом месте тела цикла по смыслу задачи.
Пример распечатки значений счётчика цикла i от 20 до 1:
i=20
while (i<=1) {
document.write ( i )
i--
}
7. Обработка прерываний в циклах
Выход из цикла, оператор break. Оператор break используется в циклах for… и while… для прекращения цикла. Управление передаётся следующему оператору за циклом.
Задача «Поиск нулей». Есть ли нули среди поочерёдно вводимых с клавиатуры десяти целых чисел?
Решение. В теле цикла while… выполняем следующие действия:
1) ввод числа в переменную а;
2) проверка условия (а==0); при истинности условия выполняем выход из цикла
оператором break, так как «ноль найден» и продолжать цикл ни к чему.
Скрипт. i=1
while (i<=10) {
a=prompt(“введи”+i+”число”,””); a=parseInt(a);
if (a==0) { alert (“введено число 0 на ”+i+” шаге”);
break }
i++
}
Переход в цикле, оператор continue. Оператор continue прерывает выполнение блока операторов в теле цикла for… или while… и вызывает переход на следующую итерацию (шаг) цикла. Причём, в цикле while… происходит переход к проверке условия, а в цикле for… переход к приращению счётчика.
Задача “Перешагивание”. Вычислить значение выражения y= 1/x для x, меняющегося от 5 до +5 с шагом 1.
Решение. Так как при х=0 выражение y=1/x не имеет смысла, то в теле цикла выполним прерывание оператором continue для перехода на следующий шаг цикла.
Скрипт.
for (x=-5; x<=5; x++) {
If (x==0) {continue}
y=1/x;
document.write(“1/”+x+” = ”+y+”<br>”)
}
8. Вложенные циклы
Цикл, содержащий в себе один или несколько других циклов, называется вложенным. При этом цикл, охватывающий другие циклы, называется внешним, а содержащиеся внутри внутренними.
Синтаксис
for ( параметры счётчика i ) {
for ( параметры счётчика j ) {
тело внутреннего цикла
}
}
Механизм управления
При каждом значении счётчика внешнего цикла i, счётчик внутреннего цикла j принимает все заданные значения. То есть для каждого значения внешнего счётчика полностью выполняется внутренний цикл.
Практическая работа “Механизм вложенных циклов”
Задание 1. Какие значения переменных i и j распечатаются на каждом шаге цикла?
for (i=2; i<=11; i=i+3 ) {
for ( j=1; j<=9; j=j+4 ) {
document.write ( i, j)
}
}
Задание 2. Каковы значения переменных i, j и s на каждом шаге цикла? Каким будет значение s после выполнения программы?
s=0
for (i=1; i<=3; i++ ) {
for ( j=i; j<=6; j=j+4 ) {
s=s+j
}
}
document.write (s)
Контрольные вопросы
Практическая работа «Вложенные циклы»
Задача «Вывод таблицы HTML».
Используя структуру вложенных циклов for… вывести таблицу
размером 3 столбца на 10 строк.
Задача «Мигание окна броузера».
Осуществить динамическую смену двух цветов в окне броузера,
используя свойство bgColor объекта document в цикле.
9. Условия и циклы
Иногда в задачах требуется выполнить какой-либо цикл в зависимости от поставленного условия.
Задача «Вычисление значения по условию»
Вычислить значение Z для заданного целого числа n:
(a+1) + (a+1)(a+2) + … + (a+1)(a+2) … (a+n), если n≥15
Z = 1∙2∙ … ∙n , если 3≤n≤14
0, в остальных случаях
Решение: Результатом значения переменной Z является один из трёх вариантов после
проверки условия заданного числа n.
Если n≥15, то в цикле вычисляем Z=(a+1) + (a+1)(a+2) + … + (a+1)(a+2) … (a+n),
иначе, если 3≤n≤14, то в цикле вычисляем факториал n!,
иначе Z=0.
Скрипт: n=prompt(“Введи число n”, “”); n=parseInt(n);
if ( n>=15 ) {
Z=0; P=1;
for ( i=1; i<n; i++ ) {
P=P*i; Z=Z+P
}
} else {
if ( n>=3 && n<=14 ) {
Z=1;
for ( i=1; i<n; i++ ) {
Z=Z*i
}
} else { Z=0 }
}
Выводы
Практическая работа «Условия и циклы»
Задача «Выбор таблицы или мигания». Ввести число в переменную n, используя панель prompt. Если введённое число n равно 0, то вывести в окно броузера таблицу html размером 3 столбца на 10 строк. Если введённое число n равно 1, то осуществить мигание окна броузера двумя цветами. Если введено любое число, не равное 0 или 1, то вывести текст «При n =… циклы не выполнялись».
Дополнение 1*. При нажатии кнопки «Отмена» в панели prompt, выведите панель alert с
текстом «Ничего не вычисляете! Обнови! Введи число!».
Дополнение 2*. Заполните ячейки таблицы числами от 1 до 30 по строкам (по
горизонтали).
1 Вариант
Задание 1. Какие значения принимают переменные i, j и k при выполнении цикла:
k=0
for ( i=1; i<13; i=i+6 ) {
for ( j=3; j<=11; j=j+4) {
k=k + (i+j)
}
}
Задание 2. Запишите скрипт для вычисления значения переменной z при заданном n.
z = 1 + 1∙2 +…+ 1∙2…∙n, если 1≤n≤10
n + n∙2 +…+ n∙n, в остальных случаях
Задание 3. Запишите скрипт для вывода на экран чисел по заданному образцу:
1 3 5 7 9
1 3 5 7
1 3 5
1 3
1
2 Вариант
Задание 1. Какие значения принимают переменные i, j и k при выполнении цикла:
k = 0;
for ( i = 3; i<13; i = i+5 ) {
for ( j = 0; j<9; j = j+4) {
k = k + ( i+j )
}
}
Задание 2. Запишите скрипт для вычисления значения переменной z при заданном n.
z = (1 + 2) + (1 + 22) + … + (1 + 2n), если 0<n≤10
n + (n + 1) + … + (n + n), в остальных случаях
Задание 3. Запишите скрипт для вывода на экран чисел по заданному образцу:
2
2 4
2 4 6
2 4 6 8
2 4 6 8 10
11. Операторы JavaScript основных алгоритмических структур: присваивания, условия, циклы, подпрограммы (повторение)
Виды присваиваний. Для решения любой задачи программа линейной структуры должна содержать в себе три части: ввод данных (prompt), их последовательная обработка (вычисление и присваивание), вывод результатов (document.write)
Оператором линейной структуры является оператор присваивания, который записывает значение в переменную.
В языке JavaScript применяются следующие виды оператора присваивания:
Вид: Аналог:
X+=Y X=X+Y
X-=Y X=X-Y
X*=Y X=X*Y
X/=Y X=X/Y
А также применяется присваивание инкрементация (++) и декрементация (--):
Вид: Аналог:
Х++ Х=Х+1
Х-- Х=Х-1
Условный оператор. Часто в задачах требуется выбрать порядок действий в зависимости от условия. Это выполняет условный оператор, и такие программы называются программами разветвляющейся структуры.
Синтаксис
if (условие) {операторы 1} else {операторы 2}
Механизм управления оператора if…
Если значение равно false, то выполняется блок {операторы 2}.
Примечание
Блок else является необязательным, тогда условный оператор имеет вид:
if (условие) {операторы}
Оператор for…
Синтаксис for (i=A; i<B; i=i+C) { - заголовок цикла
блок операторов - тело цикла
}
где i счётчик цикла, переменная
А начальное значение счётчика, число
В конечное значение счётчика, число
С шаг изменения счётчика, число.
В заголовке цикла должны быть указаны все параметры цикла. Тело цикла записывается в фигурных скобках, здесь перечислены через «;» операторы.
Механизм управления
Пошаговая обработка цикла
Выполнение тела цикла для какого-либо значения счётчика i называется шагом цикла.
Оператор while…Оператор while… используется для создания цикла, выполняемого, пока значение логического выражения, указанного в качестве параметра, равно true. Тело цикла заключается в фигурные скобки.
Синтаксис i=A
while (i<B) {
блок операторов; тело цикла
i=i+C
}
где i счётчик цикла,
A, B начальное и конечное значения счётчика
С шаг изменения счётчика цикла.
Изменение счётчика i=i+c устанавливается в любом месте тела цикла по смыслу задачи.
Элемент function
Синтаксис function ИмяФункции ( ) { тело функции }
Сложные программы размещают в тегах заголовка документа
<head><script> function ИмяФункции ( ) { тело функции }</script></head>,
используя для этого элемент function, который играет роль подпрограммы.
Механизм управления
В теле функции записывается алгоритм решения задачи в коде JavaScript. Для выполнения функции необходим её вызов. Вызов функции можно осуществить с помощью обработчика события из тега <body onLoad=”ИмяФункции( )”>, а также с помощью дополнительного скрипта из любого места тела документа <body><script> ИмяФункции( )</script></body>
Таким образом, функция считывается в память во время загрузки документа в броузер, а выполняется после загрузки всего документа.
Контрольные вопросы
28
PAGE 28