Пете так не казалось, но спорить он не стал, а предложил еще раз просмотреть всю блок-схему целиком и на сегодня кончить.
Выловить ошибки в программе нелегко
5. ЯЗЫКИ, ЯЗЫКИ, ЯЗЫКИ
Однако по дороге Петя все еще продолжал говорить об алгоритмах.
Нас ведут наши алгоритмы
Так уж и всегда? Может быть, ты слышал про такое явление природы, как любовь? У тебя имеется уже алгоритм на тот случай, если вдруг, совершенно случайно, тебе придется решать подобные проблемы?
Ну, насчет всегда я преувеличил малость. Это должно было быть ясно. Кроме твоего, можно привести и другие примеры, когда алгоритма нет. Например, вряд ли можно было бы предложить алгоритм мышления.
Да? Но говорят же про мыслящие машины, про искусственный интеллект. Разве ты не читал?
Ой, знаешь, мне кажется, что это сплошное запудривание мозгов!
Правда, я пока мало что знаю по этим вопросам, но одно мне совершенно ясно: мышления ни в одной машине нет и интеллекта тоже. Дело в том, что люди, говорящие про искусственный интеллект, придают этим словам совсем другой смысл, чем ты, и тогда их бывает трудно понять. Хотя бывают и такие, кто этими словами пользуется для обмана простачков.
Чуть подумав, Петя добавил:
Если ЭВМ иногда и в состоянии делать что-то достойное разумного существа, то проявляется при этом совсем не какой-то там мистический искусственный интеллект, а самый что ни на есть естественный интеллект программиста. И первое, где интеллект программиста должен проявиться, это создание алгоритма. Нужно четко описать все, что надо делать, как я уже тебе говорил.
Точность! Точность превыше всего!
Что-то не верю я в эти твои алгоритмы. Вот мучился ты, мучился и создал великий алгоритм прихода Петеньки из школы домой. А что толку? Кому нужен этот алгоритм?
Конечно, так, но я не понимаю, к чему ты все это говоришь?
Хочу сказать, что, во-первых, есть смысл некоторые задачи ясно и точно сформулировать или, другими словами, алгоритмизировать, даже тогда, когда никто не собирается их решать с помощью компьютеров. А во-вторых, в мире имеется жутко много похожих алгоритмов, и, кстати, именно поэтому ЭВМ бывают полезными. Представь себе, например, алгоритм пересечения автомобилями нерегулируемого перекрестка улиц. При приближении к этому перекрестку водитель должен посмотреть направо и налево, совсем как Петенька, но смотреть он должен не на Бармалея или Борьку-хулигана, а на машины, подъезжающие слева и, в особенности, справа, и должен предвидеть дальнейшее их поведение.
Хэ-хэ! «Машины подъезжают», «дальнейшее поведение машин» и это говорит человек, который совсем недавно выступил с пламенной речью о том, что машины сами ничего не могут делать.
Да действительно попался. Могу только добавить, что для составления алгоритма поведения автоводителя совершенно неважно, подъезжают ли другие автомобили к перекрестку сами или ими управляют люди. Важно то, что с какой-то скоростью что-то продвигается в сторону перекрестка. А если же составлять алгоритм для автоматической системы управления уличным движением, то все будет иначе: нужно будет подсчитывать, сколько машин собралось перед красным светофором и сколько времени они там стоят. И в зависимости от этой информации нужно переключать огни светофора.
Кажется, совсем просто.
Именно, что кажется, а когда начнешь делать, то соберется столько мелочей, которых надо учесть, что немудрено запутаться.
Это кому как. Мне иногда труднее всего начать работу, а как начнешь! Сразу все становится легко Странно получается, что я всю жизнь выполняла всякие алгоритмы и даже не подозревала об этом. Как-то и не верится. Единственное, что меня немножко в этом убеждает, так это твои примеры с утренними алгоритмами школьницы, варящей чай Но самого
главного ты все-таки не сказал. Как работает компьютер, как он понимает, что надо делать?
Ничего он не понимает! Я же сказал, что на самом деле он понимает не больше, чем чем телевизор, показывающий очень умную передачу!
Но все-таки, как это получается, что выглядит, будто он понимает?
Если честно, то до конца я этого не постиг. Меня этому не учили, сказали, что тогда надо осваивать машинные команды, двоичную арифметику, математическую логику и бог знает что еще. Все это можно и освоить, науки хоть и непростые, но понятные. Однако совсем необязательно знать, как работает двигатель, чтобы ездить на автомобиле без аварий. Я тебе могу рассказать только ту часть, что нам рассказал Алгоритмыч. Он утверждал, что этого достаточно, чтобы составлять программы для ЭВМ, имеющие смысл и пользу. И похоже, что не обманул, действительно достаточно, но иногда и меня мучает мысль: что же там внутри машины происходит?
Что же делать, раз ты такой недообразованный. Расскажи тогда то, что ты так блестяще усвоил.
Ясно. Но чтобы все выглядело систематично и научно, ты, конечно, не станешь сразу говорить об этом Бейсике, который знаешь, а начнешь рассуждения о языках вообще о языках африканцев и индейцев, о языке птиц, пчел, собак и кошек, о языке цветов, короче, о вещах, в которых ты ни в зуб ногой.