
Другие языки программирования и технологии
Помогите решить задачу c#

using System;
namespace example {
class Program {
static void Main(string[] args) {
double x, a, eps;
do { Console.Write(" Введите x: "); x = IDouble(); } while (x == 0);
do { Console.Write(" Введите a: "); a = IDouble(); } while (a == 0);
do { Console.Write(" Введите eps: "); eps = IDouble(); } while (eps <= 0);
uint k = 1; double sum = 0, member = 0; bool flag = true;
do {
member = Member(k, x, a);
if (member == Double.NaN || member == Double.PositiveInfinity || member == Double.NegativeInfinity) {
Console.WriteLine(" Нет решений! ");
flag = false; break;
}
sum += member; ++k;
} while (Math.Abs(member) > eps);
if (flag) Console.WriteLine(" Сумма = {0}", sum);
Console.ReadLine();
}
private static double Member(uint k, double x, double a) {
int one = -1;
if (k % 2 == 0) one = Math.Abs(one);
return one * Math.Log(Math.Pow(x, k << 1)) / (Math.Pow(a, k) + Fact(k));
}
private static double Fact(uint k) {
double f = 1;
for (uint n = 1; n <= k; ++n) f *= n;
return f;
}
private static double IDouble() {
double n; string v;
do {
v = Console.ReadLine();
if (Double.TryParse(v, out n)) return n;
Console.WriteLine(" Данные не являются вещественным числом! ");
Console.Write(" Повторите попытку: ");
} while (true);
}
}
}
namespace example {
class Program {
static void Main(string[] args) {
double x, a, eps;
do { Console.Write(" Введите x: "); x = IDouble(); } while (x == 0);
do { Console.Write(" Введите a: "); a = IDouble(); } while (a == 0);
do { Console.Write(" Введите eps: "); eps = IDouble(); } while (eps <= 0);
uint k = 1; double sum = 0, member = 0; bool flag = true;
do {
member = Member(k, x, a);
if (member == Double.NaN || member == Double.PositiveInfinity || member == Double.NegativeInfinity) {
Console.WriteLine(" Нет решений! ");
flag = false; break;
}
sum += member; ++k;
} while (Math.Abs(member) > eps);
if (flag) Console.WriteLine(" Сумма = {0}", sum);
Console.ReadLine();
}
private static double Member(uint k, double x, double a) {
int one = -1;
if (k % 2 == 0) one = Math.Abs(one);
return one * Math.Log(Math.Pow(x, k << 1)) / (Math.Pow(a, k) + Fact(k));
}
private static double Fact(uint k) {
double f = 1;
for (uint n = 1; n <= k; ++n) f *= n;
return f;
}
private static double IDouble() {
double n; string v;
do {
v = Console.ReadLine();
if (Double.TryParse(v, out n)) return n;
Console.WriteLine(" Данные не являются вещественным числом! ");
Console.Write(" Повторите попытку: ");
} while (true);
}
}
}
Похожие вопросы
- Помогите решить задачу: C# Создать рандомную матрицу nxn (выполнено) после чего сложить данные выделенные элементы:
- Помогите решить задачу C++. Найти номер строки, для которой среднее арифметическое значение ее элементов максимальна
- Помогите решить задачу c++
- Помогите решить задачи на C#
- Помогите решить задачу (Visual c++)
- Помогите решить задачу в visual studio c++
- Помогите решить задачи по C++
- Помогите решить задачу на C или C++, пожалуйста.
- Помогите решить задачу по C++
- Помогите решить задачу на языке c++. Не понимаю условия в конце кода.