как написать такую программу без использования Convert.ToDouble на С#?
Здравствуйте,вот условие: мне нужно разработать программу на языке C# вычисления по приведенной формуле F(x) и вывести на экран результат в указанном формате. Исходные данные вводятся с клавиатуры. Сравнить полученное значение с указанным правильным результатом. Мой вопрос: подскажите пожалйста как мне написать код, на каком сайте найти полезный материал чтобы понять как написать данную программму
видел такой код:
using System;
class Program
{
static void Main(string[] args)
{
// Ввод значений x и a с клавиатуры
Console.WriteLine("Введите значение x:");
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите значение a:");
double a = Convert.ToDouble(Console.ReadLine());
// Эталонное значение F для сравнения
double expectedF = 10.736
// Вычисление F по формуле
double part1 = Math.Exp(-2 * Math.PI * Math.Sqrt(Math.Pow(x, 2) + 1.2));
double part2 = 13 * Math.Pow(x, 1.5);
double part3 = Math.Pow(x * a, 1 / a);
double part4 = Math.Log(Math.Abs(Math.Tan(x / 2)));
double F = part1 + part2 + part3 + part4;
// Вывод результата
Console.WriteLine($"Результат вычисления F(x): {F}");
// Сравнение с эталонным значением
if (Math.Abs(F - expectedF) < 1e-6) // Допустимая погрешность
{
Console.WriteLine("Результат совпадает с эталонным значением.");
}
else
{
Console.WriteLine("Результат отличается от эталонного значения.");
}
}
}
Но для меня он сложный можно ли как-то это написать не используя метод конверт,парс и т.д вообще без этих методов?
С учетом всех рекомендций решил убрать сравнение результата с эталонным значением.Ведь на моем фото проверка с неверными значениями мой итоговый результат :
using System;
class Program
{
static void Main(string[] args)
{
// Ввод значений x и a с клавиатуры
Console.WriteLine("Введите значение x:");
double x = double.Parse(Console.ReadLine());
Console.WriteLine("Введите значение a:");
double a = double.Parse(Console.ReadLine());
// Вычисление F по формуле
double part1 = Math.Exp(-2 * Math.PI * Math.Sqrt(Math.Pow(x, 2) + 1.2));
double part2 = 13 * Math.Pow(x, 1.5);
double part3 = Math.Pow(x * a, 1 / a);
double part4 = Math.Log(Math.Abs(Math.Tan(x / 2)));
double F = part1 + part2 + part3 + part4;
// Вывод результата
Console.WriteLine($"Результат вычисления F(x): {F}");
}
}
это пример кода
Ответы (1 шт):
Convert.ToDouble
- вообще метод с сомнительной полезностью. Единственный случай, когда его надо использовать - это если переменная имеет тип object
и ты хочешь чтобы она привелась в double
потенциально с конвертацией типа. В остальных случаях есть приведение типа (double)x
и парсинг строки double.Parse(s)
. Очевидно, что в твоём случае нужно второе.