Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задачи для решения на тему «сочетание цикла и разветвления»




 

Протабулировать кусочную функцию F на интервале Xstart до Xfinish с шагом dX, где a,b,c, Xstart, Xfinish, dX – действительные числа (вводятся с клавиатуры).

Вариант 1 Вариант 2
Вариант 3 Вариант 4
Вариант 5 Вариант 6
Вариант 7 Вариант 8
Вариант 9 Вариант 10
  Вариант 11   Вариант 12
Вариант 13 Вариант 14
Вариант 15 Вариант 16
Вариант 17 Вариант 18
Вариант 19 Вариант 20

 

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...