Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вложенные циклы






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

Вложенные циклы могут быть как арифметическими, так итерационными.

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

При записи программ со структурой сложенных циклов зона действия внутреннего цикла должна располагаться в зоне действия охватывающего цикла.

Рассмотрим пример использования вложенных циклов.

Составить программу вычисления значения функции

подсчитав первые 10 слагаемых.

Для форматирования ввода-вывода с помощью манипуляторов setw и setprecision необходимо подключить библиотеку iomanip.

 

#include " stdafx.h"

#include < iostream>

#include < iomanip>

#include < math.h>

 

using namespace std;

 

void main ()

{

const int N = 10;

 

float a, x, y, y0;

 

cout < < " Input a, x: " < < endl;

cin > > a > > x;

 

y = 1;

 

for (int n = 1; n < = N; n ++)

{

int nf = 1;

 

for (int m = 1; m < = n; m ++)

nf *= m;

 

y += pow ( x * log ( a ), n )/ nf;

}

 

y0 = pow ( a, x );

 

cout < < " Result of iterative calculation: " < < setw ( 9 ) < < \

setprecision ( 5 ) < < y < < endl;

cout < < " Result of direct calculation: " < < setw ( 9 ) < < \

setprecision ( 5 ) < < y0 < < endl;

}

 

Рассмотрим переменные и порядок вычисления данного примера.

Назначение переменных a и x понятно из формулы.

nf – переменная для хранения факториала.

y – переменная для хранения текущего значения суммы ряда.

y0 – переменная для хранения значения функции вычисленного на основе стандартных математических функций.

 

В начале зададим число повторений цикла N и введем значения a и x с клавиатуры.

Затем присваиваем начальное значение функции y (первое слагаемое ряда равное 1).

Организуем внешний цикл для изменения значений n.

Внутри тела цикла задаем начальное значение nf равное 1. При каждой итерации внешнего цикла оно будет сбрасываться обратно в 1.

Далее организуем вложенный (внутренний) цикл для вычисления факториала: будем умножать nf на значение счетчика цикла m. При этом m будет каждый раз увеличиваться на 1 до тех пор, пока m не станет равным n, т.е. получим nf = 1*2*3*…*n.

Затем вычисляем новое значение функции y (суммы ряда) путем добавления нового слагаемого из формулы.

Далее, по завершению цикла, вычисляем значение функции через стандартные функции языка C++ и выводим полученные значения на экран, отформатировав вывод при помощи манипуляторов потокового ввода-вывода.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал