Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
6
Лабораторная работа № 5
Инструкции цикла
Цель:
Теоретические сведения
Инструкция цикла for
for( [init-expr]; [cond-expr]; [loop-expr] )
statement
Ключевое слово for выполняет инструкцию statement циклически. Сначала выполняется инициализация вычисляется выражение (init-expr). Затем, пока условное выражение (cond-expr) дает в результате ненулевое значение, инструкция statement выполняется и вычисляется выражение (loop-expr). Когда (cond-expr) становится равным 0, управление вычислительным процессом передается на следующую за for инструкцию.
Инструкция цикла while
while( expression )
statement
Ключевое слово while выполняет инструкцию statement циклически до тех пор, пока логическое выражение expression станет равным 0.
Инструкция цикла do-while
do
statement
while( expression );
Ключевое слово do выполняет инструкцию statement циклически до тех пор, пока логическое выражение expression станет равным 0.
Инструкция continue
continue;
Инструкция continue передает контроль следующей итерации ближайшего цикла do, for или while, в котором инструкция continue появляется.
Инструкция break
break;
Инструкция break прекращает ближайший цикл do, for или while, в котором инструкция break появляется.
Постфиксная инкрементная и декрементная инструкции
postfix-expression ++
postfix-expression --
Операнды постфиксного инкрементного ++ и декрементного -- операторов являются переменными скалярного типа (l-values). Результатом постфиксной инкрементной и декрементной операции является значение операнда (postfix-expression) до того, как применен инкрементный или декрементный оператор. Тип результата совпадает с типом postfix-expression. После того, как результат получен, величина операнда увеличивается (или уменьшается) на 1. Например:
int I = 4; // I == 4
int K;
K=I++; // K == 4, I == 5
Префиксная инкрементная и декрементная инструкции
++ unary-expression
-- unary-expression
Унарные операторы (++ и --) называются «префиксными», когда появляются перед операндами (unary-expression). Постфиксный инкрементный и декрементный операторы имеют более высокий приоритет, чем префиксные операторы. Операнд должен быть переменной целого, вещественного типа или указателем (без атрибута const). Операнд сначала увеличивается (или уменьшается) на 1, и его новое значение становится результатом выражения. Например:
int I = 4; // I == 4
int K;
K=++I; // K == 5, I == 5
Расчет коэффициента рекуррентности
Бесконечные зависимости , в которых каждый следующий (i+1)-элемент ряда может быть определен по предыдущему i-му элементу , называются рекуррентными, а коэффициент - коэффициентом рекуррентности.
Постановка задачи
Найти массив сумм S элементов рекуррентного ряда для каждого значения последовательности x, (x меняется в пределах заданного диапазона с шагом ). Каждую сумму искать с точностью до (прекращать суммировать, когда абсолютное значение очередного элемента ряда становится меньше ).
Требования
Пример:
Содержание работы
// lab5.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
const int M=10; // количество элементов массивов
int _tmain(int argc, _TCHAR* argv[])
{
double
Xn, // начальное значение Х
Xk, // конечное значение Х
Hx, // шаг по Х
Eps; // точность вычисления каждой суммы
double
X[M], // формируемый массив Х
Sum[M]; // формируемый массив сумм
int
It[M]={0}; // массив итераций по поиску каждой суммы
int
i, // счетчик по членам суммируемого ряда
k; // счетчик по Х
double
x, // текущий Х, для которого ищется сумма
q, // коэффициент рекурентности
a1, // предыдущий элемент ряда
a2; // следующий элемент ряда (суммируемый)
// Ввод данных с консоли
cout << " Initial data:\n\n" << " Xn Xk Hx Eps = ";
cin >> Xn >> Xk >> Hx >> Eps;
x=Xn; // начальное значение Х
k=0; // начальное значение счетчика сумм
while(x <= Xk) // начало цикла по Х
{
X[k]=x; // формирование массива Х
Sum[k]=1; // начальное значение текущей суммы
a1=1; // первый просуммированный член ряда
i=0; // номер члена ряда
do // начало цикла по суммируемым членам ряда
{
q=-x/(i+1); // текущий коэффициент рекурентности
a2=a1*q; // следующий член ряда
Sum[k]+=a2; // подсчет суммы
i++; // число просуммированных членов ряда
a1=a2; // сохранение просуммированного члена ряда
}while (fabs(a2) > Eps); // проверка точности суммирования
It[k]=i; // сколько членов ряда просуммировано
k++; // увеличение счетчика по Х
x+=Hx; // переход на новый Х
}
// вывод результирующих массивов
cout << "\n ***************** Results *****************\n\n";
for(k=0; k<M; k++)
{
cout << " k=" << k << " x=" << X[k];
cout << " Summa=" << Sum[k] << " Iter= " << It[k] << "\n";
}
return 0;
}
#include <math.h>
using namespace std; // стандартное пространство имен
; x=0.11.0,
; x=12,
Вариант № 3
Вариант № 7