Постараемся обойтись минимумом дополнительной информации, чтобы уже через 5 минут заработала наша первая программа. Итак, приступим.
Введение
Согласно энциклопедии, компьютерная программа — это последовательность инструкций для вычислительной машины. Язык программирования — это формализованный способ записи компьютерных программ. Важно заметить, что самому компьютеру «человеческий» язык не нужен, он прекрасно справляется и с машинными кодами в двоичном формате. Эти коды представляют собой простые инструкции типа: «Взять число по адресу 100, сложить с числом по адресу 101, поместить результат в ячейку 102».
Первые компьютеры так и программировались, однако для человека такой способ оказался крайне неудобным, и уже в 50-х годах прошлого века появились языки программирования, позволяющие записывать команды в понятном человеку формате.
Любая программа состоит из, как минимум, двух компонент:
Исходного кода, записанного на языке программирования.
Программы-транслятора, преобразующей код в последовательность действий, выполняемую компьютером.
Для создания и отладки программ существуют большие и сложные среды программирования, занимающие до нескольких гигабайт на жестком диске, но нам не понадобится ни одна из них. Более того, нам вообще ничего не понадобится — для написания простейшей программы достаточно того инструментария, что имеется в операционной системе Windows. Имеющийся в составе системы браузер имеет возможность выполнения программ на языке Javascript, который мы и используем. Плюсом Javascript является и то, что он имеет современный синтаксис, практически совпадающий с языком С, современными языками C++ и C#.
Первая программа
Поскольку мы используем браузер, программа должна храниться в виде HTML-файла. Откроем блокнот и создадим файл, как показано на первом скриншоте.
Как можно видеть, текст представляет собой HTML-файл, интересующий нас код программы находится внутри угловых скобок с названием «script». Сохраним файл под названием 01.html. Первая программа готова! Достаточно открыть «Проводник», найти созданный файл и запустить его двойным кликом. Откроется браузер, в котором будут выведены результаты работы программы, а именно текст Hello world (см. второй скриншот).
Объявления переменных
Очевидно, что программа должна что-то делать, например, обрабатывать и выводить различные данные. Для их хранения мы можем объявлять переменные внутри нашей программы. Рассмотрим пример на скриншоте № 3.
Вряд ли этот код нуждается в комментариях. Мы создали переменную R, присвоив ей значение 10, и вычислили длину окружности по известной формуле. Обратим внимание на использование оператора «+» при выводе, который позволяет объединять строки в одну.
Циклы
Программа, вроде написанной выше, выполняется линейно, от оператора к оператору. Однако часто бывает необходимо повторить фрагмент кода определенное количество раз, для этого существует цикл for.
Для примера выведем таблицу квадратов и кубов чисел от 1 до 10. Код и результаты его выполнения показаны на скриншотах №№ 4 и 5. Внутренняя часть кода, отделенная фигурными скобками, будет выполнена нужное количество раз, определяемое условием цикла. Результат работы показан на скриншоте № 6. Тег BR используется в HTML для перевода строки, что позволяет разбивать таблицу на строки.
Условия
Часто бывает необходимо, чтобы код выполнялся при определенных условиях. Для примера рассмотрим простейший «магический квадрат» — это квадрат размерностью 3×3, сумма чисел в котором по всем строкам и диагоналям одинакова. Выведем такие квадраты с помощью компьютера, для этого нам понадобятся циклы и условие сравнения равенства. Как и в предыдущем случае, код и результаты выполнения можно видеть на скриншотах.
В Javascript, как и в С или С++, для вычисления равенства используется оператор ==, также проверяется дополнительное условие того, что сумма больше 12 (т.к. в диагонали квадрата есть цифра 9 и еще минимум 2 числа, сумма не может быть меньше этой величины). Для выполнения этой программы компьютеру придется «задуматься» на несколько минут, ведь для поиска всех вариантов необходимо перебрать 999999999 значений, что обеспечивается девятью вложенными циклами. Впрочем, именно на таких задачах и проявляется основное преимущества компьютера перед человеческим мозгом — возможность быстрой обработки информации. Хотя надо заметить, что найденный «квадрат» (на скриншоте № 7 обведен красным) был известен в Китае под названием «Ло Шу» еще до нашей эры, так что и древние люди были не лыком шиты… Также можно отметить использование переменной count для подсчета найденных квадратов, как только квадрат найден, мы увеличиваем значение переменной на единицу.
Как можно видеть, не все квадраты в списке являются «правильными», ведь проверка чисел на равенство между собой не выполняется. Читатели могут добавить проверку самостоятельно, в виде домашней работы. Поиск квадрата 4×4 также может быть сделан дополнительно, он по сути ничем не отличается, хотя объем вычислений будет еще больше. Так можно получить квадрат Альбрехта Дюрера, изображенный в 1514 году.
На этом мы закончим изучение основ программирования. Если будет интерес, «уроки» можно будет продолжить, ведь тема эта практически безгранична. Впрочем, для выполнения первых шагов и вышеприведенных примеров вполне достаточно.
Желаем читателям интересного знакомства с миром программирования и математики.