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

на главную - закладки

Жанры

Первые 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 вместо Х.

Поделиться:
Популярные книги

Архил...? 4

Кожевников Павел
4. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
5.50
рейтинг книги
Архил...? 4

Мятежник

Прокофьев Роман Юрьевич
4. Стеллар
Фантастика:
боевая фантастика
7.39
рейтинг книги
Мятежник

Дурашка в столичной академии

Свободина Виктория
Фантастика:
фэнтези
7.80
рейтинг книги
Дурашка в столичной академии

Котенок. Книга 3

Федин Андрей Анатольевич
3. Котенок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Котенок. Книга 3

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Господин следователь. Книга 3

Шалашов Евгений Васильевич
3. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь. Книга 3

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии

Рота Его Величества

Дроздов Анатолий Федорович
Новые герои
Фантастика:
боевая фантастика
8.55
рейтинг книги
Рота Его Величества

Босс Мэн

Киланд Ви
Любовные романы:
современные любовные романы
8.97
рейтинг книги
Босс Мэн

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Идеальный мир для Лекаря 27

Сапфир Олег
27. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 27