К книге
Я познаю мир. Компьютеры и интернетЭра ЭВМ. Анатомия компьютера. Как поджарить яичницу?
19%
Эра ЭВМ. Анатомия компьютера. Как поджарить яичницу?
24

«Ну и вопрос, – скажете вы. – Это же все знают. Надо взять яйца, поставить сковородку на огонь, положить на нее масла... И вообще, какое отношение имеет яичница к теме нашего разговора?»

Сама яичница, может быть, и никакого. А вот процесс ее приготовления – самое непосредственное. Взгляните на схему. Видите, столь простая кулинарная операция при полном перечислении возможных вариантов представляет собой довольно длинное и разветвленное описание последовательности действий. То есть, говоря профессиональным языком, перед вами блок–схема программы приготовления яичницы. Именно такая программа понадобилась бы, если бы вы поручили эту операцию некому роботу–повару под управлением ЭВМ.

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

«Универсальное» означает, что машина способна решать широкий круг задач в зависимости от конкретной необходимости. Понятие «программируемое» как раз подсказывает нам путь к осуществлению такой универсальности – нужно всякий раз подсказывать машине, что именно она будет делать. То есть составить для нее программу действий.

Алгоритм программы поджаривания яичницы

В принципе все мы умеем программировать как свою, так и чужую работу. Понаблюдайте, к примеру, хотя бы за работой шофера, меняющего пробитое колесо. Быть может, сам того не осознавая, он осуществляет свои действия по строго разработанной, последовательной программе. Если вы возьметесь записать действия шофера в качестве инструкции для другого, неопытного водителя, то у вас получится примерно следующее:

1. Поставьте машину на ручной тормоз.

2. Достаньте из багажника домкрат, гаечный ключ.

3. Снимите колпак с пробитого колеса.

4. Ослабьте болты крепления.

5. Поднимите машину на домкрате.

6. Выверните болты, крепящие колесо.

7. Снимите колесо.

8. Достаньте «запаску».

9. Поставьте запасное колесо на место пробитого.

10. Заверните болты.

11. Опустите домкрат.

12. Затяните болты до отказа.

13. Наденьте колпак.

14. Положите домкрат, пробитое колесо и гаечный ключ в багажник.

15. Все, багажник захлопнут, можно ехать дальше.

Собственно говоря, примерно такие же программы составляют и программисты. Только работают по ним не люди, а машины. Чтобы составить такую программу, нужны всего–навсего два качества: во–первых, программист должен cебе хорошо представлять суть описываемого процесса и, во–вторых, быть предельно внимательным, чтобы не пропустить какой–либо частности, не перепутать последовательность операций.

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

Вот тут и скрываются те тонкости, которые знает каждый шофер, но которые не всегда доступны стороннему наблюдателю. Если не ослабить сильно затянутые болты сразу, то потом будет очень нелегко отвернуть их, когда колесо будет поддомкрачено и сможет свободно вращаться. С другой стороны, если вы открутите все болты сразу до конца, есть риск, что при постановке домкрата открученное колесо попросту свалится вам на ноги. И хорошо, если при этом вас еще не придавит сама машина...

Поменять операции местами тоже не удастся – это приведет к тому, что какую–то операцию вам придется делать дважды. К примеру, вы, конечно, можете достать запасное колесо из багажника вместе с домкратом и инструментом, но вам все равно придется временно отставить его в сторону, а потом брать в руки еще раз.

Итак, наглядный пример, возможно, убедил вас, что для составления программы программист должен хорошо представлять себе суть дела. Но это еще не все. Повелители компьютеров имеют ведь дело не с другими людьми, а с машинами. Объяснить же машине что–либо гораздо труднее, чем человеку, хотя бы потому, что ЭВМ гораздо хуже понимают нормальный человеческий язык.

Происходит это по двум причинам. Причина первая: для работы вычислительной машины оказалось удобнее использовать другую систему счисления, чем привычная нам десятичная. В основе работы ЭВМ, как уже говорилось, лежит двоичная система, потому что она очень легко реализуется в электрических цепях: есть импульс или контакт – это соответствует логической «1», нет импульса или контакта – «О».

Причина вторая – из–за несовершенства конструкции ЭВМ их пользователям приходится для общения с машиной использовать и специальные, машинные языки. Поначалу они вообще представляли собой некую «китайскую грамоту»: каждая команда имела свой индекс, который программисту приходилось заучивать наизусть. Ныне положение стало несколько проще: машины понимают и некоторые слова обычного языка. Как вы узнали на школьных уроках информатики, в настоящее время в мире ЭВМ имеют хождение несколько специализированных языков, на которых общаются между собой люди и машины.

Поскольку машинные языки начали приходить к нам с Запада, то в их составе чаще всего используют наиболее ходовые слова и выражения английского языка. Например, слово «PRINT», в переводе с английского означающее «печатать», используется в «Бейсике» как команда, заставляющая машину выдать результат исполненных действий. Команда эта осталась с тех времен, когда в качестве выходного устройства использовался телетайп, который действительно печатал все результаты на бумажной ленте. Ныне же, как вы знаете, для этой цели чаще всего используется телеэкран дисплея.

Кроме того, в программах часто используется слово «INPUT» – «вход»; оно обычно используется для обозначения операции по приему информации. «LET» – «позволять», «пускать» – дает разрешение на выполнение заранее запрограммированных действий. «RUN» – «бежать», «двигаться» – обозначает начало выполнения вычислений после введения в какие–то формулы численных значений. И наконец, слово «END» – «конец», понятно, и означает конец действий по данной программе.

В ходу у программистов и наиболее распространенные математические символы. Например, знак «+» обозначает, как обычно, операцию сложения, «–» – вычитания, наклонная черточка « – деления... Ну а знак умножения, чтобы не путать его с буквой «х», решили обозначить звездочкой «*».

В итоге, если вы, например, дадите машине такую команду: PRINT «4+1–5», то она мгновенно отреагирует, высветив на экране «О».

Арифметическая задача, конечно, может быть и значительно сложнее: PRINT «21*(287,35+89)–44,9». ЭВМ все равно ответит практически мгновенно: 7858,45.

Такие вычисления для нее, как говорится, семечки. Но вот если вы, к примеру, отпечатаете на клавиатуре дисплея «HELLO», что в переводе, как известно, означает «привет», то в ответ получите «SINTAX ERROR» – синтаксическая ошибка. Машина считает, что вы попросту ошиблись, ваша вежливость для нее бессмысленна.

Предыдущая главаГлава 24 из 128Следующая глава