using System;
class Program
{
static void Main()
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
// Ввод исходных данных
Console.WriteLine("Вычисление значений функции F(x) = tg(2x) - 3");
Console.WriteLine("================================================");
Console.Write("Введите начало отрезка a: ");
double a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите конец отрезка b: ");
double b = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите шаг h: ");
double h = Convert.ToDouble(Console.ReadLine());
// Проверка корректности введенных данных
if (h <= 0)
{
Console.WriteLine("Ошибка: шаг должен быть положительным числом!");
return;
}
if (a > b)
{
Console.WriteLine("Ошибка: начало отрезка должно быть меньше конца!");
return;
}
// Вывод заголовка таблицы
Console.WriteLine("\nРезультаты вычислений:");
Console.WriteLine(new string('-', 50));
Console.WriteLine($"| {"x",-15} | {"F(x)",-25} |");
Console.WriteLine(new string('-', 50));
// Вычисление и вывод значений функции
for (double x = a; x <= b; x += h)
{
double result = CalculateFunction(x);
// Форматированный вывод с обработкой особых случаев
if (double.IsInfinity(result) || double.IsNaN(result))
{
Console.WriteLine($"| {x,-15:F4} | {"не определена",-25} |");
}
else
{
Console.WriteLine($"| {x,-15:F4} | {result,-25:F6} |");
}
}
Console.WriteLine(new string('-', 50));
Console.WriteLine("Программа завершена. Нажмите любую клавишу для выхода...");
Console.ReadKey();
}
/// <summary>
/// Вычисляет значение функции F(x) = tg(2x) - 3
/// </summary>
/// <param name="x">Аргумент функции</param>
/// <returns>Значение функции</returns>
static double CalculateFunction(double x)
{
// tg(2x) = sin(2x) / cos(2x)
return Math.Tan(2 * x) - 3;
}
}