Базовые конструкции структурного программирования
В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур: линейной, разветвляющейся и циклической. Эти структуры называются базовыми конструкциями структурного программирования.
Линейной называется конструкция, представляющая собой последовательное соединение двух или более операторов. Ветвление – задает выполнение одного из двух операторов, в зависимости от выполнения какого либо условия. Цикл – задает многократное выполнение оператора.
Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Структурное программирование также называют программированием без 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 Все материалы защищены законодательством РФ.
|