1. Основные понятия алгоритмизации и программирования


Результат работы программы


Download 1.01 Mb.
bet46/78
Sana03.02.2023
Hajmi1.01 Mb.
#1148576
TuriЗадача
1   ...   42   43   44   45   46   47   48   49   ...   78
Bog'liq
c# qo\'llanma

4. Результат работы программы

x = -3.6 y = -0.161865
x = -3.4 y = -0.185016

x = -2.2 y = -0.373639

Задание II. Для x = 0.47 найти сумму ряда

с точностью до члена ряда, меньшего (по абсолютной величине) eps = 0.0001, используя оператор цикла с предусловием. Сравнить полученную сумму со значением функции для контроля .
Решение
1. Математическая модель. Обозначим через p1 последовательные произведения нечетных чисел. Через р2 – последовательные произведения четных чисел.
В C#есть функция Math.Arcsin х, поэтому для вычисления контрольной функции воспользуемся соотношением: у = Math.Asin(x).
Аргументы: xпеременная вещественного типа, -1 < x < 1.
Результаты: summa – сумма членов ряда вещественного типа;
y – значение контрольной функции (вещественного типа).
Промежуточные величины:
eps – константа, с которой сравнивается абсолютная величина текущего члена ряда: члены ряда представляют собой убывающую последовательность, поэтому согласно условию вычисление суммы членов ряда будет продолжаться до тех пор пока абсолютное значение текущего члена ряда не окажется меньше eps;
p1 – последовательные произведения нечетных чисел, вещественного типа;
р2 – последовательные произведения четных чисел, вещественного типа;
p – частное, получаемое при делении p1 на p2, вещественного типа;
n – номер члена ряда, целого типа; u – текущий член ряда, вычисляемый по формуле , вещ. типа;



2. Алгоритм

3. Программа




using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{// описание и инициализация заданной точности
double eps = 0.0001;
// описание переменных, ввод х, начальные
// установки
double x, u, p1, p2, p;
Console.WriteLine("Введите значение x: ");
x=Convert.ToDouble(Console.ReadLine());
int n = 1;
double summa = 0;
u = x;
p1 = 1;
p2 = 2;
// организация вычисления суммы членов ряда
while (Math.Abs(u) > eps)
{
summa += u;
p = p1 / p2;
u = p * Math.Pow(x, 2 * n + 1) / (2 * n + 1);
n++;
p1 = p1 * (2 * n - 1);
p2 = p2 * 2 * n;
}
// вычисление значения контрольной функции
double y = Math.Asin(x);
// вывод результатов
Console.WriteLine(" Сумма данного ряда при x = " + x + ", c точностью 0.0001, S = " + summa+"\n");
Console.WriteLine("Значение контрольной функции, у = " +y);
Console.ReadKey();
}
}
}




Download 1.01 Mb.

Do'stlaringiz bilan baham:
1   ...   42   43   44   45   46   47   48   49   ...   78




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling