Чи можна почати програмувати за 5 хвилин? Вчимося на ребусах і датах
Продовжимо вивчення основ програмування на прикладі мови 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 *.
Ще раз нагадаємо, що якщо при виконанні програми екран браузера порожній, значить, у програмі помилка, і слід перевірити текст ще раз.