Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП. ЛЕКЦИИ! Готовимся к экзамену))).docx
Скачиваний:
12
Добавлен:
10.12.2018
Размер:
175.63 Кб
Скачать

Тема 1.3. Программирование алгоритмов различной структуры

Цели изучения темы

  • изучить особенности работы условных и циклических операторов С++

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

Вставить из книги (о структурном программировании)

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

  • следование (линейная структура);

схема

  • ветвление (разветвляющаяся структура);

схема

  • цикл (циклическая структура);

схема

Операторы ветвления

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

Условный оператор используется для разветвления процесса решения задачи на два направления.

Формат условного оператора:

Полная форма

If (условие) оператор_1; else оператор_2;

где условие – это логическое выражение, принимающее значение True или False

оператор_1, оператор_2 – это простые или составные операторы ЯП С++

Если условие истинно (не принимает значение False, т.е. не равно нулю), то выполняется оператор_1. Если условие ложно (принимает значение True, т.е. равно нулю), то выполняется оператор_2.

Неполная форма

If (условие) оператор_1;

где условие – это логическое выражение, принимающее значение True или False

оператор_1 – это простой или составной оператор (т.е. блок) ЯП С++

Если условие истинно (не принимает значение False, т.е. не равно нулю), то выполняется оператор_1.

Пример 1

if (a>b) ans=10; else ans=25;

или

if (a>b)

ans=10;

else

ans=25;

Если а>b, то переменная ans получается значение 10, иначе - значение 0.

Пример 2

if ( age <18)

{

cout <<"Вы несовершеннолетний. \n";

cout <<"Введите ваш возраст";

cin>> grade;

}

Если переменная age<18, то запрашивается возраст и заносится в переменную grade.

Пример 3

if (b>a) max=b; else max=a;

определяется наибольшая из величин А и В.

1.4.2. Оператор выбора switch

Оператор switch (переключатель) предназначен для разветвления процесса решения задачи на несколько направлений.

Формат:

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

{

case метка_1: список операторов_1;

case метка_2: список операторов_2;

..

case метка_N: список операторов_N;

[default: список операторов]

}

где выражение – это любое выражение, константа или переменная типа int или char;

метка_1,…, метка_N – это константы или константные выражения типа int или char;

список операторов_1, …, список операторов_N – это произвольные операторы С++

Выполнение оператора switch:

  1. вычисляется значение выражения (записанного после слова switch);

  2. управление передается первому оператору из списка, помеченного меткой, значение которой совпало с вычисленным выражением;

  3. далее, если выход из переключателя switch явно не указан операторами break или return, то последовательно выполняются все остальные ветви;

  4. если выражение не совпадет ни с одной из меток, то выполняется список операторов, записанных после слова default (а в случае отсутствия строки default происходит переход к следующему за switch оператору).

Замечания:

  • выход из переключателя выполняется с помощью операторов break (выход из оператора switch) или return (выход из функции, в теле которой он записан);

  • в случае синтаксической ошибки в слове default сообщение об ошибке не выдается, т.к. компилятор воспринимает это слово как допустимую метку оператора switch.

Пример

// начисление процентов,

// kat - категория счета, если категория счета =1, то начисляется 20 %,

// если категория счета =2, то - 17.5 %,

// в остальных случаях начисляется 10 %

#include < iostream.h >

main()

{

int kat;

float s, proz;

cout <<"\nВведите категорию счета ";

cin >> kat;

cout <<"\n Введите сумму "

cin >> s;

switch (kat)

{

case 1: s*=1.2; proz = s*.2; break;

case 2: s*=1.175; proz =s*. 175; break;

default: s*=l.l; proz= s*.l; break;

}

cout <<"\n Начислено " << proz ;

cout <<"\n Итого " << s;

return 0;

}