Чтение онлайн

ЖАНРЫ

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

Выход — конечный результат выполнения программы.

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

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

заканчивается по достижении конца блок-схемы. Вы остаетесь с выходными данными: конечным результатом процесса, описанного блок-схемой.

Создание компьютерной программы аналогично разработке блок-схемы. Вы задаете те же вопросы:

С чего я начинаю?

С чего начинается процесс?

Что происходит после этого? А дальше?

Когда процесс заканчивается?

Что я получу, когда процесс закончится?

Блок-схемы описывают ответы на эти вопросы в визуальной форме. Программы описывают то же в виде текста, однако суть от этого не меняется.

Аналогия с блок-схемой полезна также потому, что помогает объяснить и другие важные понятия.

Условные операторы — это выражения такого вида.

Если X истинно/ложно, то делать Y.

Если X не Y, то делать Z.

Когда X истинно/ложно, то делать Y.

Когда X не Y, то делать Z.

Пока X истинно/ложно, делать Y.

Пока X не Y, делать Z.

В данном случае X, Y и Z — это переменные, которые могут обозначать все что угодно. Переменные могут обозначать числа, как в элементарной алгебре, или слова. Иногда переменные — это отдельные буквы или символы, а иногда целые слова. В любом случае они обозначают объекты, с которыми мы работаем.

Условные операторы (ЕСЛИ, ТО, КОГДА И ПОКА — IF, THEN, WHEN и WHILE) подобны стрелкам с вопросами на блок-схеме. Представьте себе, что вы за рулем автомобиля: ЕСЛИ (IF) сигнал светофора красный, ТО (THEN) вы останавливаетесь. КОГДА (WHEN) сигнал светофора сменяется на зеленый, ТО (THEN) вы едете. КОГДА (WHEN) сигнал светофора желтый, ТО (THEN) вы тормозите, готовясь остановиться.

Имеет смысл остановиться на этих условных операторах немного подробнее, поскольку здесь есть несколько общих закономерностей. Условие истинно/ложно встречается довольно часто, а оператор ПОКА (WHILE) указывает не на одно конкретное действие, а на продолжение тех или иных действий.

Во всех случаях условный оператор содержит высказывание, которое определяет, нужно ли предпринимать какие-либо действия. Это высказывание называется условием и может принимать разные формы. Иногда условие представляет собой простое сравнение типа истинно/ложно (Сигнал светофора красный?), иногда математическое сравнение (Х больше 100?), а иногда содержит логическую конструкцию (Сигнал светофора НЕ красный?).

Назначение условия — определить, будет ли выполняться соответствующий процесс. Если условие истинно или достоверно, программа выполняет определенную команду. Если нет, то эта команда пропускается, и программа переходит к следующей.

Переменные типа истинно/ложно называются булевыми переменными — это красивое название обозначает то, что может принимать всего два значения. Да/нет и включено/выключено тоже относятся к булевым переменным. Булевы переменные играют большую роль в программировании, поскольку являются основой как простейших процессов (подобно истинно/ложно в блок-схемах), так и для включения/выключения

крошечных электронных переключателей, из которых состоит компьютер.

В данном случае ПОКА (WHILE) — это особый тип условного оператора, который называется циклическим. Циклический оператор заставляет процесс повторяться до тех пор, пока не будет выполнено условие. Вернемся к аналогии управления автомобилем: ПОКА (WHILE) сигнал светофора красный, ехать нельзя.

Все очень просто, правда? Если провести аналогию между написанием компьютерной программы и составлением блок-схемы, этот процесс будет довольно легко представить.

И еще одно, последнее замечание: что будет, если компьютер зайдет в тупик, не зная, что ему делать, или команды, которые компьютер пытается выполнить в какой-то момент, не работают или не имеют смысла? Что произойдет?

В таком случае программа «вылетает» — останавливается и нередко вместо ожидаемого результата выдает сообщение об ошибке. Мы все знакомы с внушающим страх «синим экраном смерти» Windows или с сообщением «Ошибка 404: веб-страница не найдена» при поиске в интернете. Иногда происходит непредвиденное, компьютер «сходит с ума» и зависает.

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

Эти операторы восстановления после ошибки называются исключениями, и они очень полезны. Их можно считать условными операторами, связанными с ошибкой: ЕСЛИ (IF) программа вылетает по ветке Х, ТО (THEN) делать Y вместо Х.

Исключения немного похожи на резервный генератор для больничного оборудования. Бо2льшую часть времени генератор просто присутствует, но не работает. Но если электроснабжение прервется, генератор включится, и больница будет использовать электроэнергию, вырабатываемую генератором, а не погрузится в полную темноту. Это спасет жизнь пациентам, подключенным к аппаратуре поддержания жизнедеятельности, которой требуется бесперебойное электропитание. Полный отказ опасен, и потому резервные планы очень важны.

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

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

Языки программирования

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

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

Поделиться с друзьями: