Постараемся обойтись минимумом дополнительной информации, чтобы уже через 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 году.
На этом мы закончим изучение основ программирования. Если будет интерес, «уроки» можно будет продолжить, ведь тема эта практически безгранична. Впрочем, для выполнения первых шагов и вышеприведенных примеров вполне достаточно.
Желаем читателям интересного знакомства с миром программирования и математики.
На мой взгляд начинать обучение программированию нужно с определения цели.
На втором шаге найти прототип идеи
На третьем шаге довести прототип до ума.
Как правило, программы состоят из кубиков, которые можно прямо как в лего составлять и получать результат.
0 Ответить
А какая цель данной статьи? Научить программированию за 5 минут, показав пару начальных строк, которые фигурируют во всех книжных изданиях "для чайников"?
Если уж начинать писать, то сначала вывести полное содержание курса, чтобы читающие могли понять, к чему конкретно приведет их данный курс и стоит ли на него обращать внимание. Вполне возможно, что все, что необходимо знать на начальном этапе и будет написано, но хотелось бы конкретики.
Кстати, примеры не очень хорошие. На начальном этапе, имхо, лучше давать короткие в 1-2 действия программы и последовательно их разбирать, а не набросать сразу несколько видов операторов, чтобы загрузить. В общем, вспомнить курсы информатики в школе ))
0 Ответить
Валерий Журавлев, склонен с Вами не согласиться. Автор - на то и автор, чтобы самому определять стратегию подаваемого материала. Идеальное - враг хорошего)) Пока будешь думать как правильно начать - уже и делать ничего не захочется.
Еще раз большое спасибо Дмитрию Елисееву за хорошие статьи.
0 Ответить
Да я ничего плохого о статье и не говорю. Написано нормально. Только не видно цели. Либо научить за 5 минут составлять программы на скрипте для тех, кто уже знает азы, либо показать эти самые азы, но тогда 5минут - это не серьезно и сильно сжато.
0 Ответить
Для всех интересующихся, вышла следующая часть статьи:
https://www.shkolazhizni.ru/school/articles/52438/
0 Ответить
Дмитрий Елисеев, Спасибо! Читать такие статьи гораздо интереснее,чем убивать время всякими игрушками)
0 Ответить
Друзья, я новичок в этом вопросе и мне была очень интересна данная статья. Я честно вопросизвел все примеры, но код с циклами у меня не заработал Результатом работы является только надпись "Использование циклов: ". пробовал на других браузерах - история одинакова.
Со своей стороны я внес правку в вариант вывод информации:
document.write(i);
document.write(", " + kv);
document.write(", " + kub + "");
После этого все стало работать корректно. В чем причина?
0 Ответить
Алексей Кузин, если не появляется текст значит в коде ошибка. Выложите картинку с текстом, будет более понятно тогда.
0 Ответить
Алексей Кузин, у меня всё работает.
pastebin.com-JPK37LvP
Кстати, откуда у Вас взялись переменные kv и kub?
0 Ответить
Линда Кайе, привет)
Переменные ввел я, когда "игрался" отлавливая ошибку. Похоже я и правда накосячил в коде, а точнее в строке с выводом, потому что набрав по новой - все заработало.
0 Ответить
Алексей Кузин, в IE можно дважды щёлкнуть по строке состояния - в случае ошибок в скрипте, там появляется жёлтая иконка. Появится окошко с подробностями ошибки.
0 Ответить
Линда Кайе, спасибо за совет) Буду знать и использовать
0 Ответить
Алексей Кузин, у Мозилы есть где-то в Tools пункт Error Console. Тоже полезная вещь, но там сообщения в куче, от всех подсистем, даже от интерфейса.
0 Ответить
Линда Кайе, и снова спасибо за совет)) Я как раз в качестве резерва использую данный браузер...
0 Ответить
Мой фирефокс и не открывает, и не предупреждает
запускать файл из папки и инета- огромная разница
Для старых программистов принцип: их произведение должно работать везде, на любом дерьме
0 Ответить
Владимир Иванович Пресняков, явите скриншот набранного кода.
0 Ответить
Линда Кайе, он очень многостраничный, длинный массив, может быть, в личку?
0 Ответить
Линда Кайе, возможно Вы правы. Если в коде ошибка, то действительно ничего не выведется в любом браузере.
0 Ответить
Дмитрий Елисеев, Об ошибке, 20 лет код проработал без сообщения об ошибке
0 Ответить
Дмитрий Елисеев, да, это так, на старых браузерах сообщал об ошибке, а в новых все молчком
0 Ответить
Владимир Иванович, Вы меня заинтриговали, даже специально проверил.
Firefox со всеми настройками по умолчанию все открывает и показывает без проблем (см.аттач). Да по-другому вроде и не должно быть, т.к. скрипт не обращается ни к каким системным ресурсам, требующим защиты.
Так что разбирайтесь со своими настройками, все должно работать.
0 Ответить
Владимир Иванович Пресняков, сейчас принцип такой - если в момент создания работает на любом дерьме, то при выходе новых версий браузеров нужно дорабатывать так, что должно работать на них обязательно, на старых - как получится, но к наиболее популярным - придется приспосабливать.
0 Ответить
Марианна Власова, KISS принцип ещё не отменяли.
0 Ответить
Линда Кайе, а это вообще ни при чем.
0 Ответить
Марианна Власова, ну почему же? Чем проще конструкция, тем больше шансов, что она не развалится при первой же межбраузерной проблеме. Некоторые верстают так, что там такие конструкции получаются...
0 Ответить
Линда Кайе, ну хорошо, скажем так - чем проще конструкция, тем проще, при необходимости, разобраться в ней и усовершенствовать...
0 Ответить
Марианна Власова, ну, я это и имела в виду.
0 Ответить
Марианна Власова, и тем результат скучнее и неинтереснее
0 Ответить
Владимир Иванович Пресняков, Вы определитесь уже: либо старые программисты с принципами, либо нескучно и интересно.
0 Ответить
Не все такие храбрые
Не у все ИЕ
Не у всех моя страница "на моём компьютере"
И не все догадаются, Браузер то не предупреждает
0 Ответить
Владимир Иванович, почему же не предупреждает, в IE появляется надпись и кнопка внизу страницы "Разрешить заблокированное содержимое". Ничего не менял, настройки по умолчанию. Opera вообще сразу открывает без вопросов.
Ну если пользователь поотключал все скрипты и предупреждения, то естественно ничего не будет.
"Мой компьютер" тоже непричем, запускать файл можно из любой папки.
0 Ответить
Владимир Иванович Пресняков,
> Не все такие храбрые
Проблемы индейцев.
> Не у все ИЕ
Это сообщение выдаёт только IE.
> Не у всех моя страница "на моём компьютере"
Фантастика.
> И не все догадаются, Браузер то не предупреждает
При нажатии на жёлтую полоску с надписью появляется меню. В меню пункт "Справка" или как-то так. На самой полоске написано "Шёлкните для получения дополнительных сведений".
Вердикт - неосилятор.
1 Ответить
Увы, где это применить то?
10 лет назад написал хтм страничку с днями рождений. Удобно, когда ни открой на первой строке сегодняшнии, на последней вчерашние. И год по китайскому календарю, и принадлежность к зодиаку указана.
Но!
Сменилась Вин98 на ВинХРень и страница перестала открыться.
"По причине безопасности"
А на Яве Скрипт открывалась.
Счас и Яву не открывает.
0 Ответить
Владимир Иванович Пресняков, открываем свойства IE, вкладка "Дополнительно", галочка на "Разрешать запуск активного содержимого файлов на моём компьютере", Ok.
0 Ответить
Лютый пример для начинающих. Нужно знать (или интуитивно понимать) основы комбинаторики, знать что такое цикл, и формат оператора for(,,).
Кстати, общее число комбинаций - 9^9=387 420 489
Помнится писал я подобную программку в далёком детстве, на приставке денди (которая шла с клавой и обучающим картриджем), на бейсике. Мне было интересно узнать общее число счастливых билетов (билетов у которых сумма первой части номера совпадает с суммой второй части, например 492357). Даже для того чтобы проверить все 4-х значные билеты (10000 комбинаций) потребовалось больше часа. Хотя если сейчас подумать, наверно все ресурсы шли на sysout, который выполнялся на каждой итерации ))
А написано неплохо, понятно и последовательно.
Оценка статьи: 5
0 Ответить
Тимур Шакиров, здесь в программе используется упрощенный алгоритм - просто перебираются все числа, поэтому число комбинаций выходит больше.
Про Денди интересно, не знал что была версия с клавиатурой.
0 Ответить
Прикольно. Можно было ещё заюзать WSH (файлы JS или VBS выполняемые отдельно) - тоже вполне себе встроенный язык. Да. А во времена Win9x в системе был QBasic (урезанная версия QuickBasic) - вот это было время... ^^
0 Ответить