Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы(С++).doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
385.54 Кб
Скачать

Базовые конструкции структурного программирования

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

Линейной называется конструкция, представляющая собой последовательное соединение двух или более операторов. Ветвление – задает выполнение одного из двух операторов, в зависимости от выполнения какого либо условия. Цикл – задает многократное выполнение оператора.

Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Структурное программирование также называют программированием без go to, т. к. частое использование операторов перехода затрудняет понимание логики работы программы. Но иногда встречаются ситуации, в которых применение операторов перехода, наоборот, упрощает структуру программы.

Условный оператор if

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

Оператор if позволяет проверить нужное условие и в зависимости от результата выполнить тот или иной участок кода.

Первая форма оператора If

if (выражение)

оператор;

следующий оператор;

Выражение в круглых скобках является условием и содержит, как правило, операторы отношения. Если это выражение возвращает false, то следующий за выражением в скобках оператор пропускается (игнорируется) и выполняется следующий оператор. Если же оно возвращает true, то оператор выполняется, а за ним выполняется следующий оператор.

Пример 1.

#include <iostream>

int main( ) {

using namespace std;

int a,b;

cout<<"Enter meaning variable a:";

cin>>a;

cout<<"Enter meaning variable b:";

cin>>b;

if (a>b)

a=a+b;

cout<<"Variable a is: "<<a<<endl;

cout<<"Variable b is: "<<b<<endl;

return 0; }

Здесь вводимые значения переменных a и b определяют возвращаемое выражением значение. Результаты работы программы при различных значениях переменных:

Enter meaning variable a: 5

Enter meaning variable b: 3

Variable a is: 8

Variable b is: 3

Enter meaning variable a: 5

Enter meaning variable b: 8

Variable a is: 5

Variable b is: 8

Вторая форма оператора If

Довольно часто в программах требуется, чтобы при выполнении условия (т.е., когда оно возвратит true) программа выполняла один блок кода, а при его невыполнении – другой.

if (выражение)

оператор1;

else

оператор2;

следующий оператор;

Если выражение возвращает true, то выполняется оператор1, в противном случае выполняется оператор2, затем программа переходит к следующему оператору.

Пример 2.

#include <iostream>

int main( ) {

using namespace std;

int a,b;

cout<<"Enter meaning variable a:";

cin>>a;

cout<<"Enter meaning variable b:";

cin>>b;

if (a>b)

a=a+b;

else

a=a*b;

cout<<"Variable a is: "<<a<<endl;

return 0;}

Результаты работы программы:

Enter meaning variable a: 5

Enter meaning variable b: 3

Variable a is: 8

Enter meaning variable a: 5

Enter meaning variable b: 7

Variable a is: 35

В случае, когда число операторов, следующих за условием больше одного, используется блочная форма записи оператора if. Блоком называется составной оператор, начинающийся открывающей фигурной скобкой «{» и заканчивающийся закрывающей скобкой «}». Каждый оператор отделяется в блоке от другого точкой с запятой, сам же блок ею не заканчивается – после закрывающей фигурной скобки точка с запятой не ставится:

{

оператор1;

оператор2;

операторN;

}

Т.е. вместо одиночного оператора в приведенных выше двух форматах записи условного оператора может стоять блок операторов.

Третья форма оператора If

В операторе If может находиться любой оператор, в том числе и If …Else. Тогда форма записи условного оператора примет вид:

if (выражение1)

{

if (выражение2)

оператор1;

else

{

if (выражение3)

оператор2;

else

оператор3;

}

}

else

оператор4;

Порядок работы этого оператора:

  • если выражение1 истинно и истинно выражение2, то следует выполнять оператор1;

  • если выражение1 истинно, но выражение2 ложно, то в случае истинности выражения3, следует выполнять оператор2;

  • если выражение1 истинно, но выражение2 и выражение3 ложны, то выполняется оператор3;

  • если выражение1 ложно, выполняется оператор4.

Пример. Решим систему уравнений:

#include <iostream>

int main( ) {

using namespace std;

float x, y;

cout<<"Enter number: \n";

cin>>x;

cout<<"\n";

if (x>1)

y=x*x+x*x*x;

else

{ if (x>=0 && x<=1)

y=x*x+2*x;

else

y=x*x+2*x*x; }

cout<<"y: "<<y<<endl;

return 0;}

Троичный условный оператор

Троичный условный оператор «? :» – единственный оператор языка С++, который работает с тремя операндами, он получает три выражения и возвращает значение: (выражение1) ? (выражение2) : (выражение3)

Смысл записи: если выражение1 истинно, возвратить значение выражения2, в противном случае возвратить значение выражения3.

Пример. Вот как будет выглядеть решение задачи о нахождении большего из двух значений.

#include <iostream>

int main( ){

using namespace std;

int x, y,z;

cout<<"Enter two number: ";

cin>>x;

cin>>y;

z =(x>y)? x : y;

cout<<"z: "<<z<<endl;

return 0;}