Продолжим изучение основ программирования на примере языка Javascript. Как говорилось в первой части, основной плюс такого подхода – в отсутствии необходимости устанавливать на компьютер какие-либо программы, достаточно Блокнота и браузера Internet Explorer.
Любую из программ, приводимых в тексте, можно набрать в редакторе Блокнот, сохранить в виде файла с расширением HTML, далее нужно запустить браузер двойным кликом по сохраненному файлу. Все, этого достаточно!
Итак, продолжим.
Математические ребусыВ первой части рассматривался «магический квадрат», точнее способ его получения с помощью компьютера.
Рассмотрим пример другой числовой задачи, показанной на первом скриншоте. Нужно решить ребус «МУХА/ХА = УХА», в котором каждая буква соответствует одной цифре. Требуется найти такие цифры, при подстановке которых вместо букв выражение становится верным.
Способ решения с помощью компьютера весьма прост: с помощью циклов for переберем все 9999 вариантов для каждой из 4-х цифр, входящих в слово «МУХА». Используем 4 переменные М, У, Х и А для хранения цифр от 0 до 9, тогда математически первое число можно записать как 1000*М + 100*У + 10*Х + А. Числа ХА и УХА кодируются аналогично, после чего проверить результат достаточно одним сравнением. Код программы показан на рисунке, ответ ребуса приводить не будем, читатели смогут найти его самостоятельно, выполнив программу.
Использование строкВажным аспектом любого языка программирования является работа со строками. В любом языке существуют такие функции, как получение длины строки, поиск подстроки, преобразование строки в число и пр. Рассмотрим простой пример вывода строки в различных вариантах.
Воспользуемся функциями length и charAt, возвращающими длину строки и символ с нужным индексом. Для начала выведем строку посимвольно, для чего используем цикл for, который пройдет диапазон значений от 0 до length (для тех, кто совсем незнаком с программированием, напомним, что как и в языке «С», нумерация многих объектов в Javascript идет с нуля, т.е. str.charAt(0) вернет первый символ в строке). Код для вывода показан на втором рисунке.
Казалось бы, никакой пользы в этом нет, строку можно вывести и обычным, более простым способом. Однако, усложнив код, мы можем сделать вывод более разнообразным, например, раскрасить каждую букву в отдельный цвет. Для этого воспользуемся HTML-кодом «font color=»#aabbcc»», где aabbcc – это компоненты цвета, вычисляемые случайным образом (поскольку Javascript выполняется в браузере, мы можем для оформления текста использовать тэги HTML). Для получения случайного числа мы воспользуемся функцией Math.random, возвращающей значение в диапазоне от 0 до 1. После запуска программы мы увидим строку, в которой каждая буква раскрашена в свой цвет, как показано на следующем скриншоте.
И наконец, третий способ вывода, который мы используем – вывод строки в обратном порядке. Код отличается от первого варианта всего лишь одной строкой, предлагаем читателям понять разницу самостоятельно.
Использование датВозможность работы с датами также есть во всех современных языках программирования. В Javascript для этого существует класс Date, инициализировать который можно двумя способами:
1) var d1 = new Date(1979, 1, 6); – создает объект с указанным годом, днем и месяцем;
2) var d2 = new Date(); – создает объект с текущей датой и временем.
Внутри класс Date хранит время в миллисекундах, воспользуемся этим и напишем простую программу, с помощью которой можно будет узнать количество дней до Нового года. Функция getTime возвращает время в миллисекундах, соответственно, чтобы получить разницу дат, нужно вычесть одно число из другого и результат разделить на 1000*60*60*24 (количество миллисекунд в сутках). Код программы и результаты ее выполнения показаны на рисунке.
В качестве дополнения читателям предлагается модифицировать код так, чтобы он мог работать для любого Нового года, для чего следует в переменную d2 заносить значение года, взятое из переменной d1, справочник по функциям класса javascript:Date можно найти в Интернете.
На этом мы закончим вторую часть. В качестве домашнего задания предлагается решить следующий математический ребус, опубликованный на одном из сайтов – найти числа, спрятанные под символами *, для которых выполняется следующее условие умножения: *** х *2* = **9*2*.
Еще раз напомним, что если при выполнении программы экран браузера пуст, значит, в программе ошибка, и следует проверить текст еще раз.