Применение операторов ветвления и циклов для расчета сумм и алгебраических выражений с заданной точностью
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное
образовательное учреждение Высшего профессионального образования
"Национальный исследовательский
ядерный университет "МИФИ"
ФАКУЛЬТЕТ "Автоматика и
электроника" КАФЕДРА "Автоматика"
Группа: А2-01
Реферат
По контрольному домашнему заданию
дисциплина
Компьютерный практикум
Выполнил: Мясников В.П.
Преподаватель: Лобашев Д.А.
Москва, 2012 г.
Реферат
Реферат ____ с., 1 ч., 5 рис.
ПРОГРАММА, КОМПЬЮТЕРНЫЙ ПРАКТИКУМ, С++, МАССИВ, ЦИКЛ,
БЛОК-СХЕМА, АЛГОРИТМ, ОПЕРАТОР, СУММА, ТОЧНОСТЬ.
Цель работы - ознакомиться с применением операторов ветвления
и циклов для расчета сумм и алгебраических выражений с заданной точностью.
Работа производилась в среде Microsoft Visual Studio с
привлечением программы Microsoft Office Word 2010.
Характеристики: программа работает с рекуррентными формулами
функций данных изначально используя входные данные вводимые пользователем.
Время работы программы для расчета одного значения - несколько
миллисекунд (измерить точно не представляется возможным).
Содержание
Введение
Алгоритм решения
Блок-схема алгоритма
Таблица данных экспериментальных исследований алгоритма
Заключение
Введение
В работе требовалось написать программу на С++ которая:
. Считывает задаваемые значения погрешности и значение
аргумента.
. Находится соответствующее значение функции Z по формуле:
(1.1)
Функции f (x,k), g (k), h (x,k) - заданы в соответствии с
вариантом
. Проводит суммирование вида:
(1.2)
. Суммирование до тех пор пока:
(1.3)
. Организовать табличный вывод значений суммы ряда и номера
последнего элемента суммы.++ - компилируемый статически типизированный язык программирования
общего назначения. Поддерживает такие парадигмы программирования как
процедурное программирование, объектно-ориентированное программирование,
обобщенное программирование, обеспечивает модульность, раздельную компиляцию,
обработку исключений, абстракцию данных, объявление типов (классов) объектов,
виртуальные функции. Стандартная библиотека включает, в том числе,
общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как
высокоуровневых, так и низкоуровневых языков. В сравнении с его
предшественником - языком C, - наибольшее внимание уделено поддержке
объектно-ориентированного и обобщённого программирования.
Название "C++" происходит от названия языка C, в
котором унарный оператор ++ обозначает инкремент переменной.
Алгоритм
решения
. Разработать алгоритм рекуррентного вычисления суммы ряда по
формуле вида:
. Подготовить текст программы, провести отладку программы,
используя возможности встроенного отладчика интегрированной среды
программирования.
. Определить границы динамического диапазона значений входных
переменных x, eps. Объяснить причины найденных ограничений.
. Организовать табличный вывод значений суммы ряда и номера
последнего элемента суммы в зависимости от значений величин входных параметров
x, eps. Для хранения данных использовать массивы.
*. В границах найденных диапазонов величин x, eps построить
графики зависимости величины суммы и номера N-ного элемента от значений входных
параметров.
*. Предусмотреть возможность реализации алгоритма программы
всеми видами циклов.
. Подготовить отчет о проделанной работе.
Блок-схема
алгоритма
(x,k)
да
нет
Вывод: Summa, N
|Z (x,k) |>eps=K+1=N+1=1, Summa=0, N=0
Введение x, eps
Текст программы
#include <math. h>
#include <iostream>namespace std;main ()
{int n=100;p;x [n], eps [n];k, N [n], R, i;f, g, h, s, Summa
[n], z, l=3;<<"Input Number"<<endl;>>R;(p=0;
p<R; p++)
{<<"Input x & eps"<<endl;>>x
[p];>>eps [p];
}(p=0; p<R; p++)
{=1.0/l;=sqrt (1/x [p]);=sin (x [p]);=1;[p] =0;[p] =0;(;;)
{=sqrt (1/x [p] + (1/x [p]) *f);=sin (x [p] *k);=1;(i=pow
(k-1,2.0) +1; i<pow (k,2); i++)
}= (g* (2*k-1)) / ( (2*k+1) *s);=pow (-1.0,k-1) *g*f*h;[p]
=Summa [p] +z;[p] =N [p] +1;=k+1;(abs (z) <eps [p]);
}
{<<"
"<<endl;<<"OTBET"<<endl;<<N [p]
<<endl;<<Summa [p] <<endl;
}
}. get ();. get ();. get ();. get (); }
Экспериментально определено, что адекватный ответ получается
при вводе пользователем числа X порядка. В таком случае ответ получается в виде
одного числа. Порядок числа EPS влияет, в основном, лишь на количество шагов,
которые проделывает цикл для получения ответа.
Таблица
данных экспериментальных исследований алгоритма
Рисунок 1 - Таблица трех значений при X
Рисунок 2 - Таблица трех значений при X
оператор ветвление цикл программа
Заключение
В данной работе требовалось организовать табличный вывод
значений суммы ряда и номера последнего элемента суммы в зависимости от
значений величин входных параметров X, EPS.
В ходе задания были разработаны рекуррентные формулы для
функций g (k) и f (x,k) для упрощения написания алгоритма.
Экспериментально задавая параметры X и EPS установлено, что
сумма получается рациональной при X.
При условии X = 10 и EPS = 0.001 сумма будет равна -
0.0256764 и получена за 3 шага. Причем значение EPS влияет лишь на количество
шагов проходимых циклом.
А при условии X = 10000 и EPS = 0.01 сумма будет выводиться
нерациональным числом 1.25807е-005.