Сделай Сам Свою Работу на 5

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





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

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

Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Структурное программирование также называют программированием без 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;}

 

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.