|
Программирование >> Структурное программирование
структуры и один - для точки выхода. Подобные управляющие структуры с одним входом и одним выходом облегчают построение программы - управляющие структуры связываются друг с другом соединением точки выхода одной из них с точкой входа другой. Это подобно тому, как ребенок складывает кубики, и мы назвали это пакетированием управляющих структур (stacking). В дальнейшем мы выясним, что помимо рассмотренного есть только один путь соединения управляющих структур - их вложение. Таким образом, любая программа на С++, которую вы будете создавать, может быть построена всего на семи типах управляющих структур, соединенных всего двумя способами. 2.5. Структура выбора if (ЕСЛИ) Структура выбора используется для выбора среди альтернативных путей обработки информации. Например, предположим, что проходной бал на экзамене - 60. Предложение на псевдокоде ЕСЛИ оценка студента больше или равна 60 Напечатать Зачет определяет, истинно или ложно условие оценка студента больше или равна 60 . Если это условие истинно, то печатается Зачет и выполняется следующее по порядку предложение псевдокода (напомним, что псевдокод - это в действительности не язык программирования). Если же данное условие ложно, то предложение печати игнорируется и сразу выполняется следующее по порядку предложение псевдокода. Заметьте, что вторая строка структуры выбора напечатана с отступом. Подобные отступы не обязательны, но их настоятельно рекомендуется делать, так как они подчеркивают структуры структурированных программ. Компилятор С++ игнорирует такие символы-разделители, как пробелы, символы табуляции, перевода строки, используемые для стрзктурированного расположения текста и его вертикальной разрядки. Хороший стиль программирования 2.1 Неукоснительно соблюдайте правила ступенчатой записи во всех ваших программах, это существенно улучшит их читаемость. Мы советуем делать отступы фиксированного размера примерно 0,5 см или три пробела на отступ. Соответствующий приведенному псевдокоду оператор if может быть записан на языке С++ как if (grade >= 60) cout << Зачет endl; Отметим, что данный код С++ очень близок псевдокоду. Это одно из свойств псевдокода, которое делает его столь удобным для разработки программ. Хороший стиль программирования 2.2 Псевдокод часто используется при обдумывании программ в процессе их разработки. Затем программа на псевдокоде преобразуется в программу на С++. Блок-схема на рис. 2.3 иллюстрирует структуру с единственным выбором if. Эта блок-схема содержит может быть самый важный символ блок-схем - символ ромба, называемый также символом узла проверки условия, который показывает, какой выбор должен быть сделан. Символ узла проверки условия содержит выражение - условие, которое может быть истинным или ложным. Символ имеет две выходящие из него линии связи. Одна показывает направление, которое выбирается, если выражение в символе истинно ( true , да ); другая показывает направление, которое выбирается, если выражение ложно ( false , нет ). В первой главе мы увидели, что выбор может осуществляться на основании условия, содержащего операции отношения или проверки на равенство. В действительности, выбор может основываться на любом выражении - если результат выражения равен нулю, то это трактуется как ложь, а если результат выражения отличен от нуля, то это трактуется как истина. Рис. 2.3. Блок-схема аруктуры с единавенным выбором if Отметим, что структура if, как и другие, является структурой с одним входом и одним выходом. Скоро мы выясним, что блок-схемы остальных управляющих структур также состоят (кроме символов малых окружностей и линий связи) только из символов прямоугольников, указывающих на производимое действие, и символов ромбов, указывающих на проводимый выбор. Это модель программирования действие-выбор, на которую мы хотим обратить особое внимание. Мы можем представить себе семь бункеров, каждый из которых содержит управляющие структуры только одного типа. Эти структуры пустые. Ничего не написано ни в прямоугольниках, ни в ромбах. Задача программиста - собрать программу из множества управляющих структур различных типов в соответствии с требованием алгоритма, соединить эти структуры одним из двух возможных способов (пакетированием или вложением) и затем записать действия и условия выбора, соответствующие алгоритму. Мы рассмотрим позднее различные способы записи действий и условий выбора. 2.6. Структура выбора if/else (ЕСЛИ-ИНАЧЕ) Структура выбора if выполняет указанное в ней действие только, если условие истинно, и пропускает его в ином случае. Структура выбора if/else позволяет программисту определить различные действия, которые должны выполняться в случаях, если условие истинно или ложно. Например, предложение псевдокода ЕСЛИ оценка студента больше или равна 60 Напечатать Зачет ИНАЧЕ Напечатать Незачет печатает Зачет, если оценка студента больше или равна 60, и печатает Незачет, если оценка меньше 60. В обоих случаях после печати выполняется следующее по порядку предложение псевдокода. Отметим, что тело ИНАЧЕ также записывается с отступом. Хороший стиль программирования 2.3 Записывайте с отступом оба предложения структуры ЕСЛИ-ИНАЧЕ (if/else). Какой бы стиль отступов вы ни приняли, необходимо строго придерживаться его во всех программах. Трудно читать программы, в которых в отступах не поддерживается постоянное количество пробелов. Хороший стиль программирования 2.4 Если есть несколько уровней отступов, каждый уровень должен иметь постоянное число пробелов. Рассмотренный псевдокод структуры if/else может быть записан на C-f-+ следующим образом: if (grade >= 60) count << Зачет << endl; else count Незачет << endl; Блок-схема на рис. 2.4 хорошо иллюстрирует управляющую логику структуры if/else. Еще раз отметим, что единственными символами на этой схеме кроме малых окружностей и линий связи являются прямоугольники (для обозначения действий) и ромб (для обозначения выбора). Мы продолжаем подчеркивать модель вычислений действие-выбор. Представим себе снова глубокий бункер, содержащий столько структур с двойным выбором, сколько может потребоваться для построения любой программы на С-Н-. Задача программиста сводится к соединению этих структуры выбора (пакетированием или вложением) с другими управляющими структурами, требуемыми алгоритмом, и к заполнению пустых прямоугольников и ромбов необходимыми действиями и условиями выбора. С++ имеет еще условную операцию (?:), которая близка к структуре if/else. Условная операция - единственная трехчленная (тернарная) операция в С++, имеющая три операнда. Эти операнды вместе с условной операцией формируют условное выражение. Первый операнд является условием, второй операнд содержит значение условного выражения в случае, если условие истинно, а третий операнд равен значению условного выражения, если условие ложно. Например, оператор вывода cout (grade >= 60 ? Зачет : Незачет ) endl;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |