Есть ли другой способ записи решения этой функции при помощи оператора if?
using System;
namespace индивидуальное
{
class Program
{
static void Main(string[] args)
{
// обЪявляем все нам нужные переменные
Console.Write(" введите x = ");
double x = Convert.ToDouble(Console.ReadLine());
Console.Write(" введите y = ");
double y = Convert.ToDouble(Console.ReadLine());
Console.Write(" введите z = ");
double z = Convert.ToDouble(Console.ReadLine());
double max = 0, min = 0;
// используем функцию if чтобы найти min и max
if (Math.Pow(x,2) > Math.Pow(y,2) && Math.Pow(x, 2) > (x * z))
{
max = Math.Pow(x, 2);
if (x < y)
{
min = x;
}
// если if не верно то используется условие else
else
{
min = y;
}
Console.WriteLine($" min = {min} max = {max}");
double F = (max + x) / ((min * min) - y);
Console.WriteLine($" F = {F:F3}");
}
else if (Math.Pow(y,2) > Math.Pow(x,2) && Math.Pow(y,2) > (x * z))
{
max = Math.Pow(y, 2);
if (x < y)
{
min = x;
}
else
{
min = y;
}
Console.WriteLine($" min = {min} max = {max}");
double F = (max + x) / ((min * min) - y);
Console.WriteLine($" F = {F:F3}");
}
else if ((x * z) > Math.Pow(y,2) && (x * z) > Math.Pow(x,2))
{
max = (x * z);
if (x < y)
{
min = x;
}
else
{
min = y;
}
Console.WriteLine($" min = {min} max = {max}");
double F = (max + x) / ((min * min) - y);
Console.WriteLine($" F = {F:F3}");
}
else
{
Console.WriteLine(" Выражение введено некорректно!");
Console.WriteLine(" Так как нам надо найти min и max, переменные (x,y,z) должны быть больше или меньше друг друга...!");
}
Console.ReadKey(true);
}
}
}
Вот функция, надо найти в ней min и max и подставить их в функцию, и естественно решить её.
[1]: https://i.stack.imgur.com/Dpnen.png
Я написал программу которая решает это функцию(все работает), но преподаватель сказал что в ней много каши, и вообще ее можно было написать короче ....
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
А точно нужно писать вот это вот все, если квадраты равны?
Предлагаю вот так:
static void Main(string[] args)
{
// обЪявляем все нам нужные переменные
Console.Write(" введите x = ");
double x = double.Parse(Console.ReadLine());
Console.Write(" введите y = ");
double y = double.Parse(Console.ReadLine());
Console.Write(" введите z = ");
double z = double.Parse(Console.ReadLine());
double max = Math.Max(x * x, Math.Max(y * y, x * z));
double min = Math.Min(x, y);
Console.WriteLine($" min = {min}, max = {max}");
double F = (max + x) / (min * min - y);
if (double.IsInfinity(F) || double.IsNaN(F))
Console.WriteLine(" Деление на ноль");
else
Console.WriteLine($" F = {F:F3}");
Console.ReadKey(true);
}