using System;
class Program
{
static void Main()
{
Console.Write("Введите x: ");
if (!double.TryParse(Console.ReadLine(), out double x))
{
Console.WriteLine("Неверный ввод для x.");
return;
}
Console.Write("Введите y: ");
if (!double.TryParse(Console.ReadLine(), out double y))
{
Console.WriteLine("Неверный ввод для y.");
return;
}
Console.Write("Введите z: ");
if (!double.TryParse(Console.ReadLine(), out double z))
{
Console.WriteLine("Неверный ввод для z.");
return;
}
double d = y - x;
// Упрощённая (безопасная) форма
double W_simplified = d * y - z / (1.0 + d * d);
Console.WriteLine($"W (упрощённо) = {W_simplified}");
// Если нужно строго вычислять исходную форму — проверяем деление на ноль
if (Math.Abs(d) < 1e-12)
{
Console.WriteLine("Исходная форма содержит деление на (y - x) = 0 — вычисление не определено.");
}
else
{
double W_original = d * (y - (z / d) / (1.0 + d * d));
Console.WriteLine($"W (исходная форма) = {W_original}");
}
}
}
dXNpbmcgU3lzdGVtOwoKY2xhc3MgUHJvZ3JhbQp7CiAgICBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsKICAgICAgICBDb25zb2xlLldyaXRlKCLQktCy0LXQtNC40YLQtSB4OiAiKTsKICAgICAgICBpZiAoIWRvdWJsZS5UcnlQYXJzZShDb25zb2xlLlJlYWRMaW5lKCksIG91dCBkb3VibGUgeCkpCiAgICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgi0J3QtdCy0LXRgNC90YvQuSDQstCy0L7QtCDQtNC70Y8geC4iKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgQ29uc29sZS5Xcml0ZSgi0JLQstC10LTQuNGC0LUgeTogIik7CiAgICAgICAgaWYgKCFkb3VibGUuVHJ5UGFyc2UoQ29uc29sZS5SZWFkTGluZSgpLCBvdXQgZG91YmxlIHkpKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCd0LXQstC10YDQvdGL0Lkg0LLQstC+0LQg0LTQu9GPIHkuIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIENvbnNvbGUuV3JpdGUoItCS0LLQtdC00LjRgtC1IHo6ICIpOwogICAgICAgIGlmICghZG91YmxlLlRyeVBhcnNlKENvbnNvbGUuUmVhZExpbmUoKSwgb3V0IGRvdWJsZSB6KSkKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCLQndC10LLQtdGA0L3Ri9C5INCy0LLQvtC0INC00LvRjyB6LiIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBkb3VibGUgZCA9IHkgLSB4OwoKICAgICAgICAvLyDQo9C/0YDQvtGJ0ZHQvdC90LDRjyAo0LHQtdC30L7Qv9Cw0YHQvdCw0Y8pINGE0L7RgNC80LAKICAgICAgICBkb3VibGUgV19zaW1wbGlmaWVkID0gZCAqIHkgLSB6IC8gKDEuMCArIGQgKiBkKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIlcgKNGD0L/RgNC+0YnRkdC90L3QvikgPSB7V19zaW1wbGlmaWVkfSIpOwoKICAgICAgICAvLyDQldGB0LvQuCDQvdGD0LbQvdC+INGB0YLRgNC+0LPQviDQstGL0YfQuNGB0LvRj9GC0Ywg0LjRgdGF0L7QtNC90YPRjiDRhNC+0YDQvNGDIOKAlCDQv9GA0L7QstC10YDRj9C10Lwg0LTQtdC70LXQvdC40LUg0L3QsCDQvdC+0LvRjAogICAgICAgIGlmIChNYXRoLkFicyhkKSA8IDFlLTEyKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoItCY0YHRhdC+0LTQvdCw0Y8g0YTQvtGA0LzQsCDRgdC+0LTQtdGA0LbQuNGCINC00LXQu9C10L3QuNC1INC90LAgKHkgLSB4KSA9IDAg4oCUINCy0YvRh9C40YHQu9C10L3QuNC1INC90LUg0L7Qv9GA0LXQtNC10LvQtdC90L4uIik7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGRvdWJsZSBXX29yaWdpbmFsID0gZCAqICh5IC0gKHogLyBkKSAvICgxLjAgKyBkICogZCkpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIlcgKNC40YHRhdC+0LTQvdCw0Y8g0YTQvtGA0LzQsCkgPSB7V19vcmlnaW5hbH0iKTsKICAgICAgICB9CiAgICB9Cn0K