Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Анализ ситуации и последовательность выполнения команд Все алгоритмы и программы, которые мы до настоящего момента рассматривали, были линейными, то есть выполнялись последовательно, шаг за шагом, инструкция за инструкцией, независимо от введенных данных. Однако часто бывает необходимо выполнять разные действия в зависимости от того, какое решение было принято. В данной теме мы рассмотрим, как менять порядок выполнения команд по результатам проверки некоторого условия.
Проверка условия и ветвление в алгоритме В предыдущей беседе мы познакомились с логическими выражениями. Именно они используются в Паскале для организации ветвления. Пусть стоит такая задача: Рис. 5.1. Блок-схема алгоритма, выводящего число, если оно больше трех
На языке Паскаль такую схему обрабатывает условный оператор if.
Полная и неполная форма оператора if Формат записи оператора if следующий: Пример: Под условием здесь понимается любое выражение, результат которого имеет тип boolean. В том и другом случае X необходимо увеличить на 1. Здесь используется расширенный условный оператор — полная форма ветвления: if... then .. else .... Формат записи оператора: if <условие> then <оператор-да> else <оператор-нет> (см. блок-схему на рис. 5.2). Рис. 5.2. Блок-схема алгоритма, выводящего число, если оно больше трех, или сообщение «Х<3» в противном случае
В общем случае структурная схема условного оператора выглядит так (рис. 5.3). Рис. 5.3. Структурная схема условного оператора If
ЗАПОМНИТЕ!
Независимо от формы записи условия, после окончания оператора if программа снова «соединяется» и продолжает выполнять операторы, стоящие после структуры if. Это наглядно демонстрирует рис. 5.3.
Рассмотрим задачу определения количества корней квадратного уравнения по дискриминанту (рис. 5.4).
ЗАПОМНИТЕ!
Рис. 5.4. Блок-схема алгоритма, определяющего количество корней квадратного уравнения по дискриминанту
В этой задаче используется вложенный оператор if.
Оформление программ Возможно, вы уже обратили внимание, что во всех приводимых нами примерах мы слегка (на 2-3 позиции) сдвигаем операторы вправо. Таким способом мы выделяем, например, блок описания переменных var, а также операторы основной программы относительно begin и end. Это мы делаем сознательно и хотели бы рекомендовать вам поступать так же. Паскаль прекрасно поймет вашу программу, даже если вы ее всю наберете в одну строку. Однако через несколько дней в ней будет тяжело разобраться даже автору, не говоря уже о других людях. Мы рекомендуем всегда сдвигать вправо вложенные фрагменты программы относительно точки вложения. Так, например, список переменных, определяемых в разделе var, следует сдвигать относительно слова var, список операторов основной программы — относительно begin и end, а операторы, вложенные в структуру if, — относительно if и else. При этом соответствующие пары операторов begin и end рекомендуется располагать друг под другом, на одинаковом расстоянии от левого края. Это позволяет в сложной программе отследить, какому оператору begin какой оператор end соответствует, и, например, найти пропущенный оператор.
Задание 5.1. Задание 5.2.
|
||
Библиотека программиста. 2009. |
|