Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Арифметическая прогрессия




Предположим, нам надо узнать и записать на странице сумму всех чисел подряд от 1 до 10.

var i, x = 0; for (i = 1; i <= 10; i++) {x += i} document.write(x)

Результат:

Разберём:

Объявляем переменную счётчика i и переменную, собирающую знчения — x. Назначим ей нулевое значение. Все значения должны куда-то складываться, а неназначенная переменная — это Null («посмотришь на его место, и нет его»).

Начальное значение счётчика — 1. Граница — до 10 включительно, то есть меньше или равно 10. Шаг — 1 (каждое следующее целое число).

Привыкайте к специальным обозначениям. Если не помните, что такое ++ или +=, зайдите в прошлый урок и посмотрите табличку.

В коде x += i каждое новое значение счётчика приплюсовывается к переменной x.

Затем выходим из цикла и публикуем на странице итоговое значение.

А теперь чуть поинтереснее.

Вытащим на страницу все промежуточные значения счётчика. Для этого поместим document.write не выходя из цикла (то есть внутри фигурных скобок). А чтобы числа не печатались сплошной нераздельной строкой, добавим в него разделитель:

var i, x = 0; for (i = 1; i <= 10; i++) {x += i document.write(x + "; ") }

Результат:

1; 3; 6; 10; 15; 21; 28; 36; 45; 55;

А как сделать, чтобы вся строка заканчивалась, скажем, точкойх

Для этого скомбинируем этот оператор с уже известным нам оператором if...else. То есть при последнем значении i (10) у нас должна выпасть точка, при остальных — точка с запятой и пробел:

var i, x = 0; for (i = 1; i <= 10; i++) {x += i if (i == 10) {document.write(x + ". ")} else {document.write(x + "; ")} }

Результат:

1; 3; 6; 10; 15; 21; 28; 36; 45; 55.

Примечание: Кстати, вот оно, реальное различие методов write и writeln. Вместо пробела здесь можно применить метод writeln. Если мы запишем

................ if (i == 10) {document.write(x + ". ")} else {document.writeln(x + "; ")}........

То пробел делать не обязательно, его поставит сам метод.

Поскольку конечное значение счётчика — уже существующее условие, а не назначаемая величина, ставим сдвоенное равенство. И не запутайтесь в фигурных скобках.

Таблица умножения

А сейчас, допустим, нам захотелось вывести таблицу умножения — вот такую:

2х2=4 3х2=6 4х2=8 5х2=10 6х2=12 7х2=14 8х2=16 9х2=18
2х3=6 3х3=9 4х3=12 5х3=15 6х3=18 7х3=21 8х3=24 9х3=27
2х4=8 3х4=12 4х4=16 5х4=20 6х4=24 7х4=28 8х4=32 9х4=36
2х5=10 3х5=15 4х5=20 5х5=25 6х5=30 7х5=35 8х5=40 9х5=45
2х6=12 3х6=18 4х6=24 5х6=30 6х6=36 7х6=42 8х6=48 9х6=54
2х7=14 3х7=21 4х7=28 5х7=35 6х7=42 7х7=49 8х7=56 9х7=63
2х8=16 3х8=24 4х8=32 5х8=40 6х8=48 7х8=56 8х8=64 9х8=72
2х9=18 3х9=27 4х9=36 5х9=45 6х9=54 7х9=63 8х9=72 9х9=81
2х10=20 3х10=30 4х10=40 5х10=50 6х10=60 7х10=70 8х10=80 9х10=90

Да чтобы руками эту таблицу не форматировать и опечаток не наделать.

Давайте найдём алгоритм для составления такой таблицы.

Как мы помним из HTML, таблицы надстраиваются горизонтальными рядами <tr>, которые, в свою очередь, делятся на ячейки <td>.

Рассмотрим содержимое первого горизонтального ряда.

Первый множитель увеличивается на единицу. Второй остаётся без изменений.

А в вертикальных столбцах — наоборот. Первый стоит на месте, а второй приращивается.

Рядов <tr> в нашей таблице девять (от 2 до 10), а колонок в каждом из них по 8 (от 2 до 9).

Попробуем сначала сформировать все <tr> через счётчик i.

var i; for (i = 2; i <= 10; i++) {document.write(" <tr> "); document.write(" </tr> ")}

Почему от 2 до 10, а не от 1 до 9?

Догадайтесь с трёх раз...

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

Наш первый <tr> должен выглядеть вот так (× — это спецсимвол HTML для отображения «школьного» знака умножения):

<tr> <td>2 &times; 2=4</td> <td>3 &times; 2=6</td> <td>4 &times; 2=8</td> <td>5 &times; 2=10</td> <td>6 &times; 2=12</td> <td>7 &times; 2=14</td> <td>8 &times; 2=16</td> <td>9 &times; 2=18</td> </tr>

То есть внутри него ещё один цикл — из </td>.

Эти циклы можно вкладывать, как и операции с if...else. Вложим?

Для второго цикла определим счётчик j.

var i, j; document.write(" <table border=\"1\" cellspacing=\"0\" cellpadding=\"2\" align=\"center\"> ") for (i = 2; i <= 10; i++) {document.write(" <tr> "); for (j = 2; j < 10; j++) {document.write(" <td> " + " </td> ")} document.write(" </tr> ") } document.write(" </table> ")

Обратили внимание? Если i <= 10, то j < 10 (без равенства), так как горизонтальных ячеек на одну меньше.

Пустая таблица свёрстана, осталось заполнить её содержимым. Первый множитель приращивается в каждом </td>, значит, он соответствует значению j. А второй, возрастающий в каждом </tr>, — значению i:

j + "×" + i + "=" + (i*j)

Подставим это в наш код:

var i, j; document.write(" <table border=\"1\" cellspacing=\"0\" cellpadding=\"2\" align=\"center\"> ") for (i = 2; i <= 10; i++) {document.write(" <tr> "); for (j = 2; j < 10; j++) {document.write(" <td> " + j + " &times; " + i + " = " + (i * j) + " </td> ")} document.write(" </tr> ") } document.write(" </table> ")

Таблица умножения готова. Таким же способом можно сделать, например, таблицу символов Unicode. Полезная штука. Подобные алгоритмы используются в скриптах меню или календарей.





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


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 280 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

4248 - | 4162 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.