Задачи для решения на тему «сочетание цикла и разветвления»
Протабулировать кусочную функцию F на интервале Xstart до Xfinish с шагом dX, где a,b,c, Xstart, Xfinish, dX – действительные числа (вводятся с клавиатуры).
6.4 Операторы передачи управления
В С++ есть четыре оператора, изменяющих естественный порядок выполнения вычислений: - оператор безусловного перехода goto; - оператор выхода из цикла break; - оператор перехода к следующей итерации цикла continue; - оператор возврата из функции return. Оператор goto
Оператор безусловного перехода goto имеет формат: goto метка; В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор; Оператор goto передает управление на помеченный оператор. Метка - это обычный идентификатор, областью видимости которого является функция, в теле которой он задан. Использование оператора безусловного перехода оправдано в двух случаях: - принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей; - переход из нескольких мест функции в одно (например, если перед выходом из функции всегда необходимо выполнять какие-либо действия). В остальных случаях для записи любого алгоритма существуют более подходящие средства, а использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и один выход.
В любом случае не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, расположенные после нее, поскольку в этом случае инициализация не будет выполнена: int k;... goto metka;... {int а = 3, b = 4; k = а + b; metka: int m = k + 1;... } После выполнения этого фрагмента программы значение переменной m не определено. Оператор break
Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break. Пример. Программа вычисляет значение гиперболического синуса вещественного аргумента х с заданной точностью eps с помощью разложения в бесконечный ряд . Вычисление заканчивается, когда абсолютная величина очередного члена ряда, прибавляемого к сумме, станет меньше заданной точности. #include <iostream.h> #include <math.h> int main(){ const int MaxIter = 500; // ограничитель количества итераций double х, eps; cout «"\nВведите аргумент и точность: "; cin» х» eps; bool flag = true; // признак успешного вычисления double у = х, ch = х; // сумма и первый член ряда for (int n = 0; fabs(ch) > eps; n++) { ch *= x * x /(2 * n + 2)/(2 * n + 3); // очередной член ряда у += ch; if (n > MaxIter){ cout «"\nРяд расходится!"; flag = false; break;} } if (flag) cout «"\nЗначение функции: " «у; return 0; } Оператор continue
Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации. Оператор return
Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Вид оператора: return [ выражение ]; Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|