![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Как бы ни была сложна задача, схема алгоритма соответствующей программы всегда может быть представлена с использованием ограниченного набора базовых структур.
Примером одного из таких наборов базовых структур являются следующие три конструкции:
f THEN g - последовательность: IF p THEN f ELSE g – выбор(ветвление): WHILE p DO f – итерации (цикл с предусловием): Эти базовые структуры могут соединяться между собой по тем же правилам, образуя более сложные структуры. При этом f и g могут представлять собой очень сложные схемы алгоритмов с одним входом и одним выходом. Наборов базовых структур может быть несколько. Например, если заменить последний элемент набора на
DO f WHILE p -итерации (цикл с постусловием):
то получится еще один набор из трех базовых структур. Эти наборы эквивалентны, т.к. от WHILE p DO f легко перейти к DO f WHILE p и наоборот:
Путем эквивалентных преобразований любую неструктурированную схему алгоритма можно привести к структурированному виду. Например: В некоторых случаях структуризация алгоритмов может привести к появлению в них определенной избыточности (в последнем примере дважды осуществляется обращение к g), но такие “накладные расходы” полностью оправдываются достоинствами структурированных алгоритмов. Для более эффективной разработки программ современные языки программирования кроме минимального набора управляющих структур содержат и их модификации. 4.2. Управляющие структуры и инструкции языка C++
Управляющие структуры используются для управления ходом выполнения программы. В языке C++ имеются три категории управляющих инструкций: · инструкции выбора (ветвления): o if - условная инструкция; o switch – инструкция множественного выбора; · итерационные (циклические) инструкции: o while – цикл с предусловием; o do while - цикл с постусловием; o for – итерационный цикл; · инструкции перехода: o break – прекращение выполнения циклических инструкций и инструкции switch; o continue – переход к следующей итерации цикла; o return – прекращение выполнения функции o goto – переход по метке. Условная инструкция (if) Условная инструкция if позволяет выбрать одно из двух направлений выполнения программы. Имеются две формы записи этой инструкции:
if (< Выражение >) < Инструкция 1 >; Else < Инструкция 2 >;
if (< Выражение >) < Инструкция >;
Если под термином <Инструкция> понимаются несколько последовательных инструкций, то формат записи будет таким: Блок инструкций представляет собой последовательность инструкций, каждая из которых заканчивается символом;. Блок можно рассматривать как одну инструкцию (составную инструкцию). Термин < Выражение > представляет собой любое выражение C++, значение которого может трактоваться как значение логического типа (bool). Пример записи:
int K; cin >> K; if (K >= 0) cout << “Вы ввели положительное число.” << endl; Else cout << “Вы ввели отрицательное число.” << endl;
Здесь в качестве выражения использовано логическое выражение, значение которого равно true или false в зависимости от введенного с клавиатуры значения переменной K.
Еще один пример:
int K; cin >> K; if (K) // Здесь использовано арифметическое выражение cout << “Вы ввели число не равное 0.” << endl; Else cout << “Вы ввели 0.” << endl;
В этом примере выражение не является логическим, однако его значение может трактоваться как логическое (помним, что любое числовое значение, отличное от 0, соответствует значению true, а числовое значение 0 – логическому значению false). Этот пример можно было бы переписать так (эквивалент предыдущего примера):
int K; cin >> K; if (K!= 0) // Здесь использовано логическое выражение cout << “Вы ввели число не равное 0.” << endl; Else cout << “Вы ввели 0.” << endl;
Способ записи выражения во втором (из последних двух) примере следует считать менее эффективным и с точки зрения написания текста, и с точки зрения использования ресурсов (расхода памяти и быстродействия). А вот пример с использованием блока инструкций:
int Max, Min, B; cin >> Max >> Min; if (Min > Max) { B = Max; Max = Min; Min = B; }
В этом примере используется “укороченная” (без ветви else) форма инструкции if, и в случае, когда переменная Min содержит значение большее, чем переменная Max, выполняется последовательность инструкций (блок), осуществляющих перераспределение значений этих переменных так, что переменная Max будет содержать большее значение, а переменная Min - меньшее. Выполняемые внутри оператора if инструкции могут быть любыми инструкциями языка C++, в том числе и другими инструкциями if. То есть, другими словами, инструкции if могут вкладываться друг в друга. Количество уровней вложения if – инструкций в языке C++ ограничено 256 уровнями.
Рассмотрим несколько примеров вложений if - инструкций. При анализе текстов подобных программ используют следующее правило:
|
||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.205.192 (0.013 с.) |