Помогите написать решение уравнения на C#

Рейтинг: 0Ответов: 1Опубликовано: 04.03.2023

Есть задание решить на 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();

введите сюда описание изображения

Ответы

▲ 3Принят

Итак, давайте по порядку.

  1. Судя по коду, то что вы пытаетесь сделать это не "решение уравнения на C#". Вам нужно просто вычислить значение двух функций
  2. Вы не правильно переписали функцию с помощью 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., что сократит код и сделает его более простым к прочтению.