Условный оператор в Pascal.
Условный оператор в любом языке существует для того, чтобы организовать разветвляющийся алгоритм. Если вы читали мою статью по алгоритмам, то должны знать, что это такое.
В прошлом уроке мы сделали калькулятор, который складывал 2 числа. Мы его усовершенствуем, и сделаем так, чтобы он выполнял 4 арифметических действия. Три из четырех мы сделаем в этой статье, а про деление я расскажу в следующей.
Сначала я объясню, как это будет работать. Идея состоит в том, чтобы пользователь сначала вводил 1-вое число, затем выбирал арифметическое действие, а потом вводил 2-рое число. После нажатия <ENTER> он будет получать ответ.
Для этого мы воспользуемся условным оператором. Он выглядит так: "if" <условие> "then" <действие> else <действие>;
Сейчас объясню: оператор начинается с зарезервированного слова if - оно означает что-то вроде "если". Затем пишется условие. После условия идет слово then - означает примерно "тогда сделать". Потом пишется что именно нужно сделать. После этого, есть необязательная ветка else - означает "иначе сделать". Подведем итог:
Если условие истинно, тогда сделать действие №1, иначе сделать действие №2.
Вот так оно и работает. Так.. теперь я как всегда напишу код за вас, а вы просто перепишите его в редактор. Прошу переписать, потому что без этого не научитесь.
Переписали? Сохранили?
Замечательно!
Теперь приступим к объяснениям. Не буду объяснять каждую строчку, только новое.
Итак, у нас добавилась новая переменная ch. Это переменная типа char. По сути, это знаковая переменная. В нее можно записать 1 символ.
В процессе выполнения программы, мы именно в нее и записываем символ (арифметическое действие). Затем, при вычислении значения "c" мы узнаем с помощью условного оператора что за знак у нас находится в этой переменной.
Согласно тому, что я объяснял суть вот этого:
"if ch='+' then c:=a+b;"
Такая: если в переменной ch находится знак "+", то выполнить сложение. И так с каждым знаком, кроме деления. Я думаю, что самые догадливые уже поняли почему я не сделал такую же строчку для деления, а те кто не понял, я объясню в конце статьи.
В конце мы выводим результат.
Сохраните, если еще не сохранили, и запустите <ctrl+F9>. Должно все работать :)
Вот так. Как видите все работает, как и планировалось. Давайте теперь я покажу использование ветки "else".
Как видите, я здесь вставил один блок "if" в другой, и так несколько раз. Для чего я это сделал? В прошлой версии программы, если мы ввели неправильный знак, или просто букву, то программа никак на это не реагировала. Она просто не работала. То есть, работала, но не правильно. Теперь же, если введенный символ не является ни одним из тех, что мы перечислили, то программа сообщит об "ашипке" :)
Также, еще одна маленькая, но все таки важная деталь. Перед "else" точка с запятой ( ; ) не ставится. Никогда.
Для этого мы воспользуемся условным оператором. Он выглядит так: "if" <условие> "then" <действие> else <действие>;
Сейчас объясню: оператор начинается с зарезервированного слова if - оно означает что-то вроде "если". Затем пишется условие. После условия идет слово then - означает примерно "тогда сделать". Потом пишется что именно нужно сделать. После этого, есть необязательная ветка else - означает "иначе сделать". Подведем итог:
Если условие истинно, тогда сделать действие №1, иначе сделать действие №2.
Вот так оно и работает. Так.. теперь я как всегда напишу код за вас, а вы просто перепишите его в редактор. Прошу переписать, потому что без этого не научитесь.
Переписали? Сохранили?
Замечательно!
Теперь приступим к объяснениям. Не буду объяснять каждую строчку, только новое.
Итак, у нас добавилась новая переменная ch. Это переменная типа char. По сути, это знаковая переменная. В нее можно записать 1 символ.
В процессе выполнения программы, мы именно в нее и записываем символ (арифметическое действие). Затем, при вычислении значения "c" мы узнаем с помощью условного оператора что за знак у нас находится в этой переменной.
Согласно тому, что я объяснял суть вот этого:
"if ch='+' then c:=a+b;"
Такая: если в переменной ch находится знак "+", то выполнить сложение. И так с каждым знаком, кроме деления. Я думаю, что самые догадливые уже поняли почему я не сделал такую же строчку для деления, а те кто не понял, я объясню в конце статьи.
В конце мы выводим результат.
Сохраните, если еще не сохранили, и запустите <ctrl+F9>. Должно все работать :)
Вот так. Как видите все работает, как и планировалось. Давайте теперь я покажу использование ветки "else".
Как видите, я здесь вставил один блок "if" в другой, и так несколько раз. Для чего я это сделал? В прошлой версии программы, если мы ввели неправильный знак, или просто букву, то программа никак на это не реагировала. Она просто не работала. То есть, работала, но не правильно. Теперь же, если введенный символ не является ни одним из тех, что мы перечислили, то программа сообщит об "ашипке" :)
Также, еще одна маленькая, но все таки важная деталь. Перед "else" точка с запятой ( ; ) не ставится. Никогда.
О целочисленном делении...
Как я и говорил, я объясню сейчас почему мы не сделали операцию деления. Дело в том, что в обычной жизни мы сталкиваемся с разными числами: и целыми и дробными, но обычно не видим между ними существенной разницы. Однако, для компьютера это не так. Когда мы объявляем в разделе описания переменных целочисленную переменную (к примеру integer) то мы не можем этой переменной присвоить дробное значение. А так как при делении чисел, частное может быть дробным числом, то при попытке присвоить целочисленной переменной такое значение программа будет выдавать ошибку. И не ту, что мы написали, а настоящую! :) Хотя от таких явных ошибок среда разработки сама нас предостерегает:
Вот Эту ошибку я и выделил, чтоб показать. "несовместимые типы: целочисленный и вещественный". Вообще, конечно вы скорее всего помните в чем различие, но на всякий случай..
Вот собственно и все.. Конечно есть способы делить целые числа. И даже находить остаток от деления. Но об этом в следующей статье. Там я вообще покажу много всяких приятных фишек. Например, как очистить экран. Также рассмотрим более упрощенный и красивый способ сделать в нашей программе варианты выбора знаков с помощью оператора выбора.
А пока что спасибо за прочтение, надеюсь было понятно и вам понравилось. До встречи в следующей статье. Всем удачи и всем пока :)
<<< Предыдущая статья
<<< Предыдущая статья
Комментариев нет:
Отправить комментарий