|
То есть составить для нее программу действий.
Алгоритм программы поджаривания яичницы
В принципе все мы умеем программировать как свою, так и чужую работу. Понаблюдайте, к примеру, хотя бы за работой шофера, меняющего пробитое колесо. Быть может, сам того не осознавая, он осуществляет свои действия по строго разработанной, последовательной программе. Если вы возьметесь записать действия шофера в качестве инструкции для другого, неопытного водителя, то у вас получится примерно следующее:
1. Поставьте машину на ручной тормоз.
2. Достаньте из багажника домкрат, гаечный ключ.
3. Снимите колпак с пробитого колеса.
4. Ослабьте болты крепления.
5. Поднимите машину на домкрате.
6. Выверните болты, крепящие колесо.
7. Снимите колесо.
8. Достаньте «запаску».
9. Поставьте запасное колесо на место пробитого.
10. Заверните болты.
11. Опустите домкрат.
12. Затяните болты до отказа.
13. Наденьте колпак.
14. Положите домкрат, пробитое колесо и гаечный ключ в багажник.
15. Все, багажник захлопнут, можно ехать дальше.
Собственно говоря, примерно такие же программы составляют и программисты. Только работают по ним не люди, а машины. Чтобы составить такую программу, нужны всего–навсего два качества: во–первых, программист должен cебе хорошо представлять суть описываемого процесса и, во–вторых, быть предельно внимательным, чтобы не пропустить какой–либо частности, не перепутать последовательность операций.
«Всего–то и дел!» – возможно, скажете вы. Действительно, всего–то... Но это не так мало, как может показаться на первый взгляд. Не верите? Вот вам тогда пару вопросов «на засыпку»: как вы думаете, почему болты нужно ослабить до того, как вы поставите машину на домкрат? Почему с ними нужно работать в два приема? Давайте выкрутим их сразу...
Вот тут и скрываются те тонкости, которые знает каждый шофер, но которые не всегда доступны стороннему наблюдателю. Если не ослабить сильно затянутые болты сразу, то потом будет очень нелегко отвернуть их, когда колесо будет поддомкрачено и сможет свободно вращаться. С другой стороны, если вы открутите все болты сразу до конца, есть риск, что при постановке домкрата открученное колесо попросту свалится вам на ноги. И хорошо, если при этом вас еще не придавит сама машина...
Поменять операции местами тоже не удастся – это приведет к тому, что какую–то операцию вам придется делать дважды. К примеру, вы, конечно, можете достать запасное колесо из багажника вместе с домкратом и инструментом, но вам все равно придется временно отставить его в сторону, а потом брать в руки еще раз.
Итак, наглядный пример, возможно, убедил вас, что для составления программы программист должен хорошо представлять себе суть дела. Но это еще не все. Повелители компьютеров имеют ведь дело не с другими людьми, а с машинами. Объяснить же машине что–либо гораздо труднее, чем человеку, хотя бы потому, что ЭВМ гораздо хуже понимают нормальный человеческий язык.
Происходит это по двум причинам. Причина первая: для работы вычислительной машины оказалось удобнее использовать другую систему счисления, чем привычная нам десятичная. В основе работы ЭВМ, как уже говорилось, лежит двоичная система, потому что она очень легко реализуется в электрических цепях: есть импульс или контакт – это соответствует логической «1», нет импульса или контакта – «О».
Причина вторая – из–за несовершенства конструкции ЭВМ их пользователям приходится для общения с машиной использовать и специальные, машинные языки. Поначалу они вообще представляли собой некую «китайскую грамоту»: каждая команда имела свой индекс, который программисту приходилось заучивать наизусть. |