4864

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

Лекция

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

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

Русский

2012-11-28

40.5 KB

7 чел.

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

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

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

Оператор 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 в любом случае будет выполнено, по крайней мере, один раз.


 

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

54347. Етапи розвязування задач за допомогою компютера 1.3 MB
  Для розвязання цих задач компютер озброєний найрізноманітнішим програмним забезпеченням, яке поділяється на чотири великих категорії: операційні системи, системні утиліти, системи програмування, прикладне програмне забезпечення.
54348. Інформаційно-комп’ютерні технології на уроках географії та природознавства 83.5 KB
  Вчителями природознавства опановано такі теми: Створення слайдових презентацій у середовищі програми MS Power Point Пошук та завантаження текстової звукової та відеоінформації з Інтернету Створення потокових презентацій відео кліпів у середовищі програми Movie Mker Створення та обробка графічної інформації засобами растрового графічного редактора dobe Photoshop. № п п Термін Тема заняття 1 Вересень Створення слайдових презентацій у середовищі програми MS Power Point. 3 Лютий Створення потокових презентацій відео кліпів у...
54349. Методика вивчення дробових чисел за курсом Математика у 5-6 класах 334 KB
  Організація самостійної діяльності учнів при вивченні дій ззвичайними дробами. ВСТУП Характеристика обовязкових результатів навчальних досягнень при вивченні дробових чисел Основною метою курсу математики 5-6 класів вважається: систематичний розвиток понять числа та вироблення вмінь усно та письмово робити арифметичні операції над числами формувати вміння переводити практичні задачі на мову математики підготовка учнів до вивчення курсів Алгебра€ та Геометрія€. Форми організації усного рахунку Добре розвинені у учнів навики усної...
54350. Методика организации инновационной деятельности в школе 142.5 KB
  Внутренние мотивы таковы: интерес к процессу деятельности интерес к результату деятельности стремление к саморазвитию развитию какихлибо своих качеств способностей. Мотив придает смысл деятельности для человека. Проведение диагностики: Изучение мотивов трудового поведения Ваш творческий потенциал Личностные ориентации педагога Готовность педагога к работе в инновационном режиме наблюдения за работой учителя индивидуальные собеседования дали возможность заинтересовать 76 педагогов нашей школы в участии в инновационной...
54351. Методика створення ігрових зон для першокласників 225.5 KB
  Сюжети ігор дуже різноманітні й відображають реальні умови життя дитини. Народна педагогіка виділяє дві основні групи ігор. Дидактичні гри різновид ігор за правилами. Успіх дидактичних ігор значною мірою залежить від правильного використання в них ігрового обладнання іграшок геометричних фігур природного матеріалу шишок плодів насіння листків тощо.
54352. Вибір учительських методик відповідно до індивідуальних стилів навчання молодших школярів 159 KB
  Ось декілька методів читання які допомагають організувати ефективну роботу учніввізуалів з друкованими текстами. Вчитель розбиває текст на короткі частини обєднує учнів у пари і дає чіткі пояснення що вони повинні будуть робити. Навчання учніваудіалів Ученьаудіал сприймає світ через призму звуків.
54353. Методика розробки гри-подорожі для молодших школярів у навчальному закладі, як ефективна традиційна форма виховної роботи 106.5 KB
  Місце проведення: ЦДЮТ Дзержинського району Мета: Ознайомити учасників із особливостями форм організації довгострокової гриподорожі для молодшої ланки школярів та сформувати навички проектування їх окремих різновидів. Завдання: Надати учасникам інформацію про різновиди гри подорожі молодших школярів; Сформувати в учасників навички проектування довгострокової гриподорожі; Показати шляхи практичного застосування отриманої інформації. План...
54354. Методика організації лекційно-семінарських залікових занять в системі особистісного зорієнтованого навчання 82.5 KB
  Щоб учень міг успішно освоїти ці етапи діяльності вчитель повинен перш за все підвищити ефективність і результативність уроку. Не завжди виправдовується поділ навчальної теми і вивчення її по частинах на окремих уроках. Помилка в тому що ми хочемо одержати від своєї роботи миттєвий результат: дали сьогодні урок пояснили новий матеріал а наступного дня вже проводимо опитування перевіряючи як засвоєно нове. Саме тому досвід показує що доцільно планувати і проводити уроки в системі з багаторазовою проробкою учнями всієї теми...
54355. Методология Урока здоровья по профилактике табакокурения в средних общеобразовательных школах 36.5 KB
  Предоставить контакты центров здоровья и обратить внимание слушателей на интернет ресурс http: www. Урок здоровья рекомендуем начать с анонимного анкетирования присутствующих. Ваше выступление на уроке здоровья будет состоять из 3х частей после каждой из которых предполагается показ актуальных видеороликов связывающих части вашей лекции в единое целое.