Помогите написать решение уравнения на C#
Есть задание решить на C# уравнение. Попытался сделать самостоятельно, но выдает ошибку. Свой код прилагаю.
using System;
Console.WriteLine("Введите x: ");
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите y: ");
double y = Convert.ToDouble(Console.ReadLine());
double z1n = Math.Pow(Math.Cos(x), 4) + Math.Pow(Math.Sin(y), 2);
double z1v = Math.Pow(Math.Sin(1 / 4), 2) * 2 * x - 1;
double z1 = z1n * z1v;
double z2n = Math.Sin(y + x) * Math.Sin(y - x);
Console.WriteLine(z1);
Console.ReadLine();
Ответы (1 шт):
Итак, давайте по порядку.
- Судя по коду, то что вы пытаетесь сделать это не "решение уравнения на C#". Вам нужно просто вычислить значение двух функций
- Вы не правильно переписали функцию с помощью C#
Вы (честно говоря, без понятия зачем) разбили функцию z1 на 2 части:
z1n вы переписали верно как
Math.Pow(Math.Cos(x), 4) + Math.Pow(Math.Sin(y), 2)
а вот с z1v у вас вышло несколько ошибок.
Вы переписали z1v так:
Math.Pow(Math.Sin(1 / 4), 2) * 2 * x - 1
что представляет на самом деле следующую формулу:
Вы перепутали множитель и аргумент. Давайте поставим их на свои места. Вот что выйдет:
1 / 4 * Math.Pow(Math.Sin(2 * x), 2) - 1
Уже лучше, но и этот код не до конца правильный. Все числа без суффиксов в C# интерпретируются как целые, а в целочисленной математике 1 / 4 = 0. Давайте сделаем их дробными (достаточно одно из них):
1 / 4d * Math.Pow(Math.Sin(2 * x), 2) - 1
С этим разобрались. Далее нам нужно обе части сложить, так как в уравнении плюс:
double z1 = z1n + z1v
у вас же тут, по какой-то причине, стоит знак умножения.
z2 вы рассчитали верно, только, забыли вывести в консоль.
P.S.
Можно добавить сверху
using static System.Math;
и после этого вы сможете использовать методы, по-типу, Pow без Math., что сократит код и сделает его более простым к прочтению.


