Первые 20 часов. Как быстро научиться… чему угодно | страница 60



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

В примере, описывающем поведение водителя за рулем, я использовал псевдокод. Если сесть в машину и вслух произнести: «КОГДА я поверну ключ зажигания, ТО двигатель запустится», — ничего не произойдет. Но это не значит, что мое утверждение бессмысленно. Оно представляет собой способ обдумать шаги, необходимые для разрешения проблемы или получения желаемого результата.

Вы можете использовать основные понятия программирования, которые мы только что рассмотрели, для создания набросков программ, позволяющих решить повседневные задачи.

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


Вы: Возьми хлеб.

Приятель: Я не понимаю, что такое «возьми».

Вы: Протяни руку туда, куда я скажу, и схвати его.

Приятель: Я не понимаю, что такое «рука».

Вы (вздыхая): Вот эта штука. (Вы указываете на руку приятеля.)

Приятель: Понял.

Вы: Протяни руку туда, куда я скажу, и схвати его.

Приятель: Я не понимаю, что такое «схвати».

Вы: Согни пальцы вот так. (Вы демонстрируете, сгибая и разгибая пальцы.)

Приятель: Понял.

Вы: Протяни руку к хлебу и схвати его.

Приятель: Я не понимаю, что такое «хлеб».

Вы: Вот эта штука, вот здесь! (Вы указываете на хлеб.)

Приятель: Понял.

Вы: Протяни руку к хлебу и схвати его.

Приятель: (Протягивает руку к хлебу, сжимает пальцы и разжимает. Хлеб остается на месте.)

Вы: ИДИОТСКАЯ ИГРА!!!


Это глупый пример, но именно так выглядит программирование, особенно в самом начале.

Компьютер, подобно вашему приятелю, не может понять то, что вы в точности не определили. Любой сложный процесс, который вы пытаетесь описать, нуждается в полном и однозначном определении.

Именно в этом и заключается сложность программирования: одна-единственная неточная или ошибочная команда делает всю программу нерабочей. В этом отношении программирование не терпит компромиссов — ваша программа либо корректная, либо некорректная. Точность нужна в каждой детали.

Компьютеру безразлично ваше очарование и чувство юмора. Если программа неполная или плохо написана, то ваше приложение зависнет, и вы потеряете данные. Или вы напишете