4864

Условные операторы и операторы цикла

Лекция

Информатика, кибернетика и программирование

Условные операторы и операторы цикла. Условные операторы. Язык С++ располагает несколькими условными операторами, позволяющими организовать ветвление в программе. Оператор if реализует простое ветвление, относительно выполнения условия: if ( условие...

Русский

2012-11-28

40.5 KB

9 чел.

Условные операторы и операторы цикла.

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

Язык С++ располагает несколькими условными операторами, позволяющими организовать ветвление в программе.

Оператор if реализует простое ветвление, относительно выполнения условия:

if ( условие )

 оператор

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

if ( x > 0 )

 x++;

 if ( x < 0 )

{

 x--;

 y++;

}

Кроме того, существует расширенный вариант условного оператора:

if ( условие )

 оператор_1

 else

 оператор_2

 

Если условие истинно (т.е значение выражения условие отлично от 0), выполняется оператор_1, в противном случае  оператор_2. Следующий пример демонстрирует использование условного оператора в программе, реализующей отыскание действительных корней квадратного уравнения:

#include <iostream>

int main()

{

setlocale( 0, "Rus" );

 double a, b, c;

std::cout << "Коэффициенты полинома:" << std::endl;

std::cin >> a >> b >> c;

 double D = b*b - 4*a*c;

 if ( D > 0.0 )

{

 double x1 = ( -b + std::sqrt( D ) ) / ( 2*a );

 double x2 = ( -b - std::sqrt( D ) ) / ( 2*a );

 std::cout << "Два простых корня: " << x1 << " " << x2 << std::endl;

 }

 else if ( D == 0.0 )

{

 double x = -b / ( 2*a );

 std::cout << "Один корень кратности 2: " << x << std::endl;

}

 else

 std::cout << "Действительных корней нет" << std::endl;

system( "pause" );

 return 0;

}

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

условие ? выражение_1 : выражение_2;

В такой форме его действие аналогично оператору ifelse, однако, в отличие от последнего, тернарный оператор возвращает значение. В следующем примере переменная x получит значение a+b или a-b в зависимости от четности переменной y:

double x = ( y % 2 ) ? ( a + b ) : ( a - b );

В случае необходимости реализации множественного ветвления, удобно использовать оператор switch:

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

{

 case ( выражение_1 ):

 блок_из_одного_или_нескольких_операторов_1;

 break;

 case ( выражение_2 ):

 блок_из_одного_или_нескольких_операторов_2;

 break;

 default:

 блок_из_одного_или_нескольких_операторов_n;

 break;

}

Принцип его действия следующий: значение выражение поочередно сравнивается (на равенство) с каждым из значений выражение_i, в случае совпадения с одним из них выполняется соответствующий блок операторов, в противном случае выполняется блок операторов секции default (если она присутствует).

 Операторы цикла.

Циклы позволяют организовать повторное выполнение однотипных действий.

Цикл for имеет следующий синтаксис:

 for ( выражение_1; выражение_2; выражение_3 )

 оператор

Здесь выражение_1 выполняется один раз непосредственно перед входом в цикл, как правило, оно имеет смысл инициализирующего выражения цикла. выражение_2 определяет условие выполнения цикла и проверяется на истинность перед каждой итерацией. выражение_3 выполняется сразу после каждой итерации и обычно имеет смысл действия перехода к следующей итерации. Оператор определяет тело цикла, т.е. действия, выполняемые на каждой итерации. Любое из выражений может быть пустым.

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

 int N = 1234321; // Заданное число

 

 for ( int T = N, i = 2; i <= T; )

 {

 if ( T % i == 0 ) // i - делитель

 {

  std::cout << i << " ";

  T /= i; // Делим T на i

 }

 else  // i не является делителем

  ++i; // переходим к следующему i

}

Цикл while описывается следующим образом:

while ( условие )

 оператор

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

char c = 0;

while( ! isalpha( c )  )

{

 std::cout << "Введите c: ";

 std::cin >> c;

}

Цикл dowhile выглядит так:

do

 оператор

 while ( условие );

и действует подобно while, разница заключается в том, что здесь проверка выражения условие выполняется после каждой итерации цикла, поэтому оператор (тело цикла) dowhile в любом случае будет выполнено, по крайней мере, один раз.


 

А также другие работы, которые могут Вас заинтересовать

34304. Эволюционный путь развития технологических процессов 22.5 KB
  Эволюционный путь развития технологических процессов Использование в производстве рационалистических решений совершенствующих вспомогательные ходы технологического процесса представляет собой эволюционный путь его развития. Сущность технических решений обеспечивающих эволюционный путь развития технологических процессов заключается в замене движений человека на подобные движения механизмов на вспомогательных элементах процесса. На современном этапе развития техники практически любой вид движения возможно осуществить известными механизмами....
34305. Революционный путь развития технологических процессов 29 KB
  Революционный путь развития технологических процессов Использование в производстве эвристических технических решений совершенствующих рабочие ходы технологического процесса представляет собой революционный путь его развития. Во 2ом варианте после перехода на технологию с более высоким уровнем не происходит одновременного снижения затрат живого и прошлого труда на единицу продукции а даже возможно временное повышение их что казалось бы позволяет сделать вывод об отсутствии какоголибо развития но если проследить за дальнейшим эволюционным...
34306. Модели и методы оценки технологических процессов 23.5 KB
  Модели и методы оценки технологических процессов В настоящее время можно выделить три основных подхода к изучению научнотехнического развития прва описанию технологий и их развития: экономический подход технократический или пифагорский подход системный подход. В рамках экономического подхода развивалось направление связанное с решение задач планирования научнотехнического развития прва для обеспечения заданного необходимого прироста объема выпуска продукции использование так называемых балансовых методов планирования. С целью...
34307. Понятие о системах технологических процессов 24 KB
  Понятие о системах технологических процессов. Система это целое составленное из отдельных частей ке находятся в тесном отношении между собой . Технологическая система это совокупность взаимосвязанных предметов производства исполнителей и направлено на выполнение отдельных операций и процессов в целом. Между операцией в технологическом процессе и системах можно считать условленным так как они имеют опред.
34308. Исторические этапы развития систем технологий 27.5 KB
  В своем развитии системы технологических процессов прошли ряд исторических этапов. Однако сознательная организация системы технологических процессов произошла в средневековье. Впервые организованная система технологических процессов проявила себя в цехах ремесленников. По структуре цехи ремесленников представляли собой систему параллельных технологических процессов.
34309. Классификационные признаки систем технологий 23 KB
  Важнейшим признаком характеризующим технологические системы является их структура. Механизированная отличается использованием различных механизмов для осуществления как рабочих так и вспомогательных процессов в элементах системы участок станков машиностроительного предприятия. Жесткая связь подсистем характеризуются немедленным прекращением функционирования технологической системы в целом при отказе хотя бы одной подсистемы. При нежесткой связи между элементами системы возможно непродолжительное функционирование системы в случае...
34310. Структура технологической системы производства 25.5 KB
  Структура технологической системы производства. Свойства элементарных технологических процессов распространяются и на технологические системы более высокого иерархического уровня которые образованы совокупностями технологических процессов. Таким образом технологическую систему производства образуют параллельные последовательные и комбинированные системы технологических процессов. Еще одним важным фактором в формировании технологических систем являются технологические связи между элементами системы а также их характер.
34311. Взаимосвязь технологических и организационных структур производства 26 KB
  Взаимосвязь технологических и организационных структур производства. Характер формирования систем технологических процессов а также связей между ними имеет определяющее значение для формирования управляющих воздействий. Поэтому можно четко проследить взаимосвязь технологических и организационных структур производства. Например ремесленный цех с его ярко выраженной параллельной системой технологических процессов на определенном этапе исторического развития видоизменился в мануфактуру с последовательными технологическими процессами.
34312. Специфика развития параллельных и последовательных технологических систем 26 KB
  Перевод слабых составляющих системы на более высокую ступень позволит улучшить характеристики системы так как в ней ликвидируются звенья которые обуславливали в наибольшей степени неудовлетворительное функционирование системы. Таким образом ориентация на два различных типа развития позволит ставить задачу определения предпочтительности одного из них применительно к составляющим элементам параллельной системы. Такое целенаправленное развитие дает больший эффект чем при одновременном развитии всех составляющих изза различной готовности...