Как бы ни была сложна задача, схема алгоритма соответствующей программы всегда может быть представлена с использованием ограниченного набора базовых структур. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Как бы ни была сложна задача, схема алгоритма соответствующей программы всегда может быть представлена с использованием ограниченного набора базовых структур.



 

Примером одного из таких наборов базовых структур являются следующие три конструкции:

 

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; просмотров: 151; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.113.188 (0.014 с.)