Добавлен: 03.04.2023
Просмотров: 861
Скачиваний: 3
Листинг 12
Так как while — цикл с предусловием, то необходимо было сначала считать число перед началом while, а потом уже выполнять проверку продолжения цикла while. В случае с do while не приходится считывать число до начала цикла, так как проверка условия в do while идет в конце цикла. В зависимости от ситуации, используется цикл while или do while, они друг друга дополняют.
Ещё одна программа, которая вычисляет сумму чисел в заданном интервале показана ниже (см. Листинг 13).
- #include <iostream>
- using namespace std;
- int main(int argc, char* argv[])
- {
- int a, b;
- cout<<"Введите начальное значение: ";
- cin>>a;
- cout<<"Введите конечное значение: ";
- cin>>b;
- int sum=0, count=a;
- do
- {
- sum+=count;
- count++;
- }while(count<=b);
- cout<<"Сумма: "<<sum<<endl;
- system("pause");
- return 0;
- }
Листинг 13
После запуска программы необходимо ввести пределы интервала (первый и второй). После этого начинает работать цикл do while, строка 13. переменная sum предназначена для хранения накапливаемой суммы, строка 15. В строке 16 инкрементируется начальное значение предела, после каждого повторения цикла. Результат работы программы показан на Рисунке 11.
Рисунок 11
Интервал указан от -6 до 10 включительно, [-6;10]. Программа суммирует все целые числа из заданного интервала. Сумма формируется следующим образом: -6 -5 -4 -3 -2 -1 + 0 +1 +2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 34. Таким образом, циклически выполняется действие суммирования всех целых чисел из указанного пользователем интервала.
Оператор break
Оператором break уже был упомянут при изучении оператора множественного выбора switch. В теле оператора множественного выбора switch оператор break прерывал исполнение оператора switch. Когда оператор break выполняется в цикле, то досрочно прерывается исполнение оператора цикла, и управление передаётся следующему оператору после цикла. [48] [49] Ниже приведен пример программы с использованием оператора break. Программа печатает таблицу степеней двойки (см. Листинг 14).
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main(int argc, char* argv[])
- {
- for(int i=0; i<=10; i++)
- {
- if( count == 6)
- {
- break;
- }
- cout<<"2^"<<i<<"="<<pow(2.0,i)<<endl;
- }
- system("pause");
- return 0;
- }
Листинг 14
В строке 8 записан заголовок цикла for. В цикле for объявлена переменная-счётчик i, значение которой меняется от 0 до 10 включительно. В строке 10 записан оператор условного выбора if, истинность условия которого запускает оператор break, который, в свою очередь, приводит к выходу из цикла for. В строке 14 запускается функция pow(). Условие продолжения цикла for будет истинно до тех пор, пока значение в переменной i <= 10. Тогда как выход из цикла for произойдёт раньше, чем условие продолжения цикла станет ложным. Выход из цикла for выполнится, когда значение в переменной count станет равным шести. Результат работы программы показан ниже (см. Рисунок 12):
Рисунок 12
Из приведенного выше примера видно, что таблица степеней двойки напечаталась, включительно, до пятой степени. Если убрать оператор условного выбора if, то напечатаются степени двойки до десятой включительно (см. Листинг 15).
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main(int argc, char* argv[])
- {
- for(int i=0; i<=10; i++)
- {
- //if(i == 6)
- //{
- // break;
- //}
- i<<"2^"<<i<<"="<<pow(2.0,i)<<endl;
- }
- system("pause");
- return 0;
- }
Листинг 15
В строках 10-13 мы закомментировали оператор условного выбора if, таким образом, печатается таблица степеней двойки от нулевой до 10-й степени включительно (см. Рисунок 13).
Рисунок 13
Оператор continue
Оператор continue используется только внутри цикла. [50] В операторах for, while, do while, оператор continue выполняет пропуск оставшейся части кода тела цикла и переходит к следующей итерации цикла. [51] [52] Рассмотрим фрагмент кода с оператором continue.
int count = 0;
do
{
continue;
count++;
} while(count<10)
В приведенном выше примере видно, что оператор do while бесконечный, так как каждая итерация цикла приводит к выполнению оператора continue, который пропускает операцию инкремента переменной-счётчика count и переходит на следующую итерацию цикла. Таким образом, значение в переменной count не меняется, а значит и условие всегда будет истинным. Разработаем программу с оператором continue. Программа должна работать циклически. Внутри цикла необходимо организовать ввод чисел. Если введено число от 0 до 10 включительно, то необходимо напечатать квадрат этого числа, в противном случае, используя оператор continue, пропустить оператор возведения в квадрат введенного числа. При введении отрицательного числа осуществляется выход из цикла (см. Листинг 16).
- #include <iostream>
- using namespace std;
- int main(int argc, char* argv[])
- {
- int a;
- do
- {
- cout<<"Введите число: ";
- cin>>a;
- if(a>10 || a<0)
- {
- continue;
- }
- cout<<"Квадрат числа: "<<a*a<<endl;
- } while(a>=0);
- system("pause");
- return 0;
- }
Листинг 16
Цикличность в программе организуется циклом с постусловием — do while. В цикле сначала считывается введённое число в переменную in_number, после чего выполняется проверка условия в операторе if. Условие оператора условного выбора if будет истинным в том случае, если введённое число будет строго меньше нуля или строго больше 10. Заданный интервал — [0;10]; число, взятое из этого интервала, возводится в квадрат. Истинность условия оператора if приводит к выполнению оператора continue в строке 13. А оператор continue пропускает операторы в строке 15 и переходит к проверке условия продолжения цикла do while. Условие в цикле будет истинно, пока вводимые числа будут строго больше 0. Результат работы программы показан ниже (см. Рисунок 14):
Рисунок 14
Сначала вводились числа 15 и 11, эти числа не входят в заданный интервал и поэтому квадрат этих чисел не вычислялся. Числа 5 и 9 принадлежат заданному интервалу, а значит, программа должна вычислить их квадраты. Когда было введено отрицательное число, do while завершил свою работу.
Заключение
В ходе написания курсовой работы была проанализирована литература по заданной тематике. Были изучены и подробно описаны основные понятия, типы управляющих конструкций и их применение на практике.
В первой главе работы были рассмотрены основные управляющие конструкции языка программирования С++, такие как:
- Фигурные скобки;
- Запятая;
- Goto;
- Функции;
- Return;
- Исключения
Во второй главе были рассмотрены основные управляющие конструкции ветвления, такие как:
- If,
- Else,
- If else,
- switch.
В третьей главе были рассмотрены циклы и операторы выхода из цикла и прерывания текущей итерации:
- for
- while
- do while
- continue
- break
Были приведены основные понятия, описаны конструкции и методы их использования. Показаны способы комбинирования конструкций на примерах функций и оператора return, циклов и условий с использованием операторов continue, break и goto. Использование управляющих конструкций было проиллюстрировано конкретными примерами.
Библиография
[1] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 354 с.
[2] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 188 с.
[3] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец.
изд. — М.: Бином, 2003. — 29 с.
[4] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 57 с.
[5] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 208 с.
[6] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 163 с.
[7] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец.
изд. — М.: Бином, 2003. — 54 с.
[8] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец.
изд. — М.: Бином, 2003. — 84 с.
[9] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 159 с.
[10] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 65 с.
[11] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. —197 с.
[12] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 219 с.
[13] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 92 с.
[14] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 68 с.
[15] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 320 с.
[16] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 32 с.
[17] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 106 с.
[18] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 70 с.
[19] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 346 с.
[20] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 109 с.
[21] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 73 с.
[22] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 132 с.
[23] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 521 с.
[24] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 524 с.
[25] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 237 с.
[26] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 528 с.
[27] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 208 с.
[28] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 31 с.
[29] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 192 с.
[30] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 158 с.
[31] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 190 с.
[32] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 195 с.
[33] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 197 с.
[34] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 31 с.
[35] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 90 с.
[36] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 209 с.
[37] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 209 с.
[38] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 31 с.
[39] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 209 с.
[40] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 31 с.
[41] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 72 с.
[42] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 213 с.
[43] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 209 с.
[44] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 209 с.
[45] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 209 с.
[46] Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 216 с.
[47] Керниган Б. В., Ритчи Д. М. Язык программирования Си: Пер. с англ. — 3-е изд. — СПб.: Вильямс, 2016. — 209 с.
[48] Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 31 с.