П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций





НазваниеП. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций
страница7/18
Дата публикации20.09.2013
Размер0.64 Mb.
ТипКонспект
100-bal.ru > Информатика > Конспект
1   2   3   4   5   6   7   8   9   10   ...   18

Оператор выбора


Условный оператор осуществляет ветвление на два направления. Во многих случаях приходится сталкиваться с ситуацией, когда необходимо выбирать один вариант из нескольких возможных, т.е. осуществлять множественное ветвление. Использование в таких случаях вложенного условного оператора зачастую приводит к весьма громоздким конструкциям. В Паскале для более компактного описания такого множественного ветвления имеется оператор выбора case. Аналогичный оператор множественного ветвления в C++ имеет вид:

switch (<выражение-селектор>)

{

case <константа>: <оператор>; <оператор>; …; break;

case <константа>: <оператор>; <оператор>; …; break;

case <константа>: <оператор>; <оператор>;

default : <оператор>; <оператор>; …;

}

Здесь выражение-селектор (или переменная-селектор) может быть любого скалярного типа, кроме вещественного. Сначала вычисляется выражение-селектор, затем полученное значение этого выражения ищется среди констант целого типа, стоящих после case. Если вычисленное значение найдено, выполняются операторы, начиная с соответствующего case, и до default; в противном случае выполняются операторы, идущие после default.

Оператор break выполняет переход на первый оператор, стоящий после оператора switch. Его присутствие в конструкции не является обязательным, однако, без этого оператора последовательно выполнялись бы все операторы, соответствующие значениям селектора, следующим за выбранным.

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

Пример 1:

switch (x)

{

case 0: y+=h; break;

case 1: y*=3; z++; break;

case 2: y/=2; d=(h+y)/5;

default : y++;

}
Пример 2 (вычисление оценки в четырехбалльной системе по заданному значению стобалльного рейтинга):

int k;

cout <<”\nвведите ваш рейтинг: “; cin >> k;

k/=10;

switch (k)

{

case 0:

case 1:

case 2:

case 3:

case 4: cout <<”\nВаша оценка – неудовлетворительно”; break;

case 5:

case 6: cout <<”\nВаша оценка – удовлетворительно”; break;

case 7:

case 8: cout <<”\nВаша оценка – хорошо”; break;

case 9:

case 10: cout <<”\nВаша оценка – отлично”;

default : cout <<”недопустимое значение рейтинга”;

}

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


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

Как и в Паскале в Си++ можно использовать 3 формы оператора цикла: с предусловием, с постусловием и с параметром (цикл for).

Цикл с предусловием


while (<выражение-условие>)

<оператор>;

Оператор - тело цикла повторяется до тех пор, пока выражение-условие сохраняет значение «истина». Таким образом, выражение-условие формулируется как условие продолжения цикла. При этом каждый шаг цикла начинается с вычисления выражения-условия, поэтому, если уже на первом шаге оно приняло значение «ложь», тело цикла не выполняется ни разу. В теле цикла должны входить конструкции, изменяющие хотя бы одну переменную, входящую в выражение-условие. В противном случае выполнение оператора цикла никогда не закончится (зацикливание).

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

Пример (вычисление суммы последовательности целых чисел с числом нуль в качестве признака конца последовательности):

int S=0;

cout << “\ninput a: ”; cin >> a;

while (a!=0)

{

S+=a;

cout << “input a: ”; cin >> a;

}

Цикл с постусловием


do

<оператор>

while (<выражение-условие>);

Цикл с постусловием отличается от цикла с предусловием только тем, что на каждом шаге сначала выполняется оператор-тело цикла, а затем вычисляется выражение-условие и если оно принимает значение «ложь», выполнение оператора цикла завершается. Таким образом, в отличие от цикла с предусловием здесь оператор-тело цикла всегда выполняется хотя бы один раз.

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

Пример (вычисление суммы последовательности целых чисел, последнее из которых равно нулю):

int S=0;

do

{

cout << “input a: ”; cin >> a;

S+=a;

}

while (a!=0);

Принципиальное отличие этого оператора в C++ от Паскаля состоит в том, что и в цикле с предусловием, и в цикле с постусловием итерации продолжаются до тех пор, пока выражение-условие сохраняет значение «истина», т.е. отлично от нуля. Таким образом, это выражение должно быть сформулировано как условие продолжения цикла.

Цикл с параметром ( цикл for)


for (<инициализация>; <выражение-условие>; <модификатор>)

<оператор>;

Модификатор – это выражение, которое изменяет модифицируемую переменную цикла.

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

Пример (вычисление суммы последовательности n целых чисел):

S=0;

for (i=1; i<=n; i++)

{

cout << “input a: ”; cin >> a;

S+=a;

}

Здесь модификатором является постфиксное выражение i++, согласно которому на каждом шаге значение переменной цикла i увеличивается на 1.

Можно инициализировать в цикле и переменную S:

for (S=0, i=1; i<=n; i++)

{

cout << “input a: ”; cin >> a;

S+=a;

}

Более того, внутри цикла можно и описать тип переменной, необходимо лишь помнить, что это описание будет действовать только в теле цикла.

for (S=0, int i=1; i<=n; i++)

{

cout << “input a: ”; cin >> a;

S+=a;

}

Оператор for может использоваться и без любого из разделов, т.е. может отсутствовать любая из конструкций: инициализатор- условие-модификатор.

Замечание: в отличие от Паскаля в теле цикла разрешается изменять параметр цикла и после завершения цикла значение параметра считается определенным.

Оператор break выполняет выход из цикла (досрочное завершение оператора), а оператор continue - досрочное завершение очередного шага цикла (досрочный переход к следующему шагу).

1   2   3   4   5   6   7   8   9   10   ...   18

Похожие:

П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconПрограмма по формированию навыков безопасного поведения на дорогах...
Мама купила 6 шаров красного и голубого цвета. Красных было больше, чем голубых. Сколько шаров каждого цвета могло быть? (2варианта...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconС. П. Филин Концепции современного естествознания: конспект лекций
Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования РФ и...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект лекций раскрывает содержание и структуру учебной дисциплины...
Налоговое право : конспект лекций / сост доцент Р. В. Бобринев; Кузбасский институт экономики и права. – Кемерово, 2011 – 144 с
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций icon«программирование»
Рабочая программа дисциплины «Программирование» /сост. Хатаева Р. С.– Грозный: чгпи, 2011г
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект лекций по философии Часть 1 Античная философия Новосибирск...
Савостьянов А. Н. Конспект лекций по философии / Новосиб гос ун-т. Новосибирск, 2007. Ч. Античная философия. 68 с
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект лекций по курсу хозяйственного права тема Понятие хозяйственного права
Кафедра Истории, социологии и права Назаров Андрей Александрович конспект лекций по курсу хозяйственного права
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект лекций по высшей математике. В 2 частях. Часть М.: Айрис-пресс,...
Баранова Е. С., Васильева Н. В., Федотов В. Л. Практическое пособие по высшей математике. Типовые расчеты. Учебное пособие. — Спб:...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconОпорный конспект лекций Основные понятия, термины, законы, схемы...
Л. Н. Блинов, Н. Н. Ролле. Экология: опорный конспект лекций. Основные понятия, термины, законы, схемы. Спб.: Изд. Спбгпу. 2005....
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconН. Д. Серова структурное подразделение детский сад Конспект
Универсальные учебные действия: 1 формирование основ социально ценных личностных и нравственных качеств: уважение и вежливое отношение...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций icon12 Достижения компьютерной техники 15 Программирование
Программирование 3
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект урока л. Н. Андреев «Кусака». Сострадание и бессердечие...
«моу шалакушская средняя школа» структурное подразделение «Шожемская основная школа»
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconКонспект лекций Владимира Климентьева по истории философии, отредактированный...
Рекомендовано Министерством общего и профессионального образования Российской федерации в качестве учебника для студентов высших...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconТеория организации Конспект лекций для студентов специальности «Менеджмент организации»
Макарова н. Н. Теория организации. Конспект лекций с практическими заданиями для студентов специальности "Менеджмент организации....
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconЕленевский А. Г., Соловьева М. П., Тихомиров В. Н. Ботаника высших или наземных растений
Он является обязательным для студентов 2 курса очной и заочной форм обучения на биолого-химическом факультете и рассчитан на очном...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconФгбоу впо «агту» Обособленное структурное подразделение «Волго-Каспийский...
Полное наименование: Обособленное структурное подразделение «Волго-Каспийский морской рыбопромышленный колледж» федерального государственного...
П. А. Соловьева в. Г. Шаров структурное программирование на с++ Конспект лекций iconПисьменный Д. Т. Конспект лекций по теории вероятностей, математической...
Письменный Д. Т. Конспект лекций по теории вероятностей, математической статистике и случайным процессам. 3-е изд. М.: Айрис-пресс,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск