Дмитрий Елисеев Мастер

Можно ли начать программировать за 5 минут? Вполне реально

Тема уроков программирования поднималась уже не один раз, но многие из таких материалов либо слишком сложны для начинающих, либо требуют дополнительной подготовки и установки различных (зачастую дорогостоящих и занимающих много места) программных пакетов. Можно ли обойтись без всего этого? Можно!

Taiga, Shutterstock.com

Постараемся обойтись минимумом дополнительной информации, чтобы уже через 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 году.

На этом мы закончим изучение основ программирования. Если будет интерес, «уроки» можно будет продолжить, ведь тема эта практически безгранична. Впрочем, для выполнения первых шагов и вышеприведенных примеров вполне достаточно.

Желаем читателям интересного знакомства с миром программирования и математики.

Обновлено 27.01.2012
Статья размещена на сайте 15.01.2012

Комментарии (37):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Сергей Михайлов Сергей Михайлов Читатель 9 августа 2012 в 14:31 отредактирован 27 мая 2018 в 15:26

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

    На втором шаге найти прототип идеи

    На третьем шаге довести прототип до ума.

    Как правило, программы состоят из кубиков, которые можно прямо как в лего составлять и получать результат.

  • А какая цель данной статьи? Научить программированию за 5 минут, показав пару начальных строк, которые фигурируют во всех книжных изданиях "для чайников"?
    Если уж начинать писать, то сначала вывести полное содержание курса, чтобы читающие могли понять, к чему конкретно приведет их данный курс и стоит ли на него обращать внимание. Вполне возможно, что все, что необходимо знать на начальном этапе и будет написано, но хотелось бы конкретики.
    Кстати, примеры не очень хорошие. На начальном этапе, имхо, лучше давать короткие в 1-2 действия программы и последовательно их разбирать, а не набросать сразу несколько видов операторов, чтобы загрузить. В общем, вспомнить курсы информатики в школе ))

    • Валерий Журавлев, склонен с Вами не согласиться. Автор - на то и автор, чтобы самому определять стратегию подаваемого материала. Идеальное - враг хорошего)) Пока будешь думать как правильно начать - уже и делать ничего не захочется.
      Еще раз большое спасибо Дмитрию Елисееву за хорошие статьи.

      • Валерий Журавлев Читатель 17 февраля 2012 в 12:34 отредактирован 27 мая 2018 в 11:41

        Да я ничего плохого о статье и не говорю. Написано нормально. Только не видно цели. Либо научить за 5 минут составлять программы на скрипте для тех, кто уже знает азы, либо показать эти самые азы, но тогда 5минут - это не серьезно и сильно сжато.

  • Дмитрий Елисеев Мастер 12 февраля 2012 в 21:47 отредактирован 12 февраля 2012 в 21:47

    Для всех интересующихся, вышла следующая часть статьи:
    https://shkolazhizni.ru/school/articles/52438/

  • Алексей Кузин Читатель 10 февраля 2012 в 12:09 отредактирован 10 февраля 2012 в 12:10

    Друзья, я новичок в этом вопросе и мне была очень интересна данная статья. Я честно вопросизвел все примеры, но код с циклами у меня не заработал Результатом работы является только надпись "Использование циклов: ". пробовал на других браузерах - история одинакова.
    Со своей стороны я внес правку в вариант вывод информации:
    document.write(i);
    document.write(", " + kv);
    document.write(", " + kub + "");
    После этого все стало работать корректно. В чем причина?

  • Владимир Иванович Пресняков Владимир Иванович Пресняков Читатель 29 января 2012 в 11:50 отредактирован 29 января 2012 в 11:53

    Мой фирефокс и не открывает, и не предупреждает
    запускать файл из папки и инета- огромная разница
    Для старых программистов принцип: их произведение должно работать везде, на любом дерьме

    • Владимир Иванович, Вы меня заинтриговали, даже специально проверил.

      Firefox со всеми настройками по умолчанию все открывает и показывает без проблем (см.аттач). Да по-другому вроде и не должно быть, т.к. скрипт не обращается ни к каким системным ресурсам, требующим защиты.

      Так что разбирайтесь со своими настройками, все должно работать.

  • Не все такие храбрые
    Не у все ИЕ
    Не у всех моя страница "на моём компьютере"
    И не все догадаются, Браузер то не предупреждает

    • Владимир Иванович, почему же не предупреждает, в IE появляется надпись и кнопка внизу страницы "Разрешить заблокированное содержимое". Ничего не менял, настройки по умолчанию. Opera вообще сразу открывает без вопросов.
      Ну если пользователь поотключал все скрипты и предупреждения, то естественно ничего не будет.

      "Мой компьютер" тоже непричем, запускать файл можно из любой папки.

    • Владимир Иванович Пресняков,

      > Не все такие храбрые

      Проблемы индейцев.

      > Не у все ИЕ

      Это сообщение выдаёт только IE.

      > Не у всех моя страница "на моём компьютере"

      Фантастика.

      > И не все догадаются, Браузер то не предупреждает

      При нажатии на жёлтую полоску с надписью появляется меню. В меню пункт "Справка" или как-то так. На самой полоске написано "Шёлкните для получения дополнительных сведений".

      Вердикт - неосилятор.

  • Увы, где это применить то?
    10 лет назад написал хтм страничку с днями рождений. Удобно, когда ни открой на первой строке сегодняшнии, на последней вчерашние. И год по китайскому календарю, и принадлежность к зодиаку указана.
    Но!
    Сменилась Вин98 на ВинХРень и страница перестала открыться.
    "По причине безопасности"
    А на Яве Скрипт открывалась.
    Счас и Яву не открывает.

    • Владимир Иванович Пресняков, открываем свойства IE, вкладка "Дополнительно", галочка на "Разрешать запуск активного содержимого файлов на моём компьютере", Ok.

  • Лютый пример для начинающих. Нужно знать (или интуитивно понимать) основы комбинаторики, знать что такое цикл, и формат оператора for(,,).
    Кстати, общее число комбинаций - 9^9=387 420 489

    Помнится писал я подобную программку в далёком детстве, на приставке денди (которая шла с клавой и обучающим картриджем), на бейсике. Мне было интересно узнать общее число счастливых билетов (билетов у которых сумма первой части номера совпадает с суммой второй части, например 492357). Даже для того чтобы проверить все 4-х значные билеты (10000 комбинаций) потребовалось больше часа. Хотя если сейчас подумать, наверно все ресурсы шли на sysout, который выполнялся на каждой итерации ))
    А написано неплохо, понятно и последовательно.

    Оценка статьи: 5

    • Тимур Шакиров, здесь в программе используется упрощенный алгоритм - просто перебираются все числа, поэтому число комбинаций выходит больше.

      Про Денди интересно, не знал что была версия с клавиатурой.

  • Прикольно. Можно было ещё заюзать WSH (файлы JS или VBS выполняемые отдельно) - тоже вполне себе встроенный язык. Да. А во времена Win9x в системе был QBasic (урезанная версия QuickBasic) - вот это было время... ^^