using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Функция f(x) = 8/x - 1
Func<double, double> function = x => 8 / x - 1;
// Ввод параметров
Console.Write("Введите начальное значение x (a): ");
double a = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите конечное значение x (b): ");
double b = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите шаг: ");
double step = Convert.ToDouble(Console.ReadLine());
// Проверка: x не должен быть равен 0 (деление на ноль)
if ((a <= 0 && b >= 0) || (a >= 0 && b <= 0))
{
Console.WriteLine("\nВнимание! Область определения функции: x ≠ 0.");
Console.WriteLine("Убедитесь, что отрезок [a, b] не содержит 0.");
return;
}
// Список для хранения значений
List<double> values = new List<double>();
// Вычисление значений функции
for (double x = a; (step > 0 ? x <= b + step / 2 : x >= b + step / 2); x += step)
{
double y = function(x);
values.Add(y);
}
// Нахождение среднего арифметического
double sum = 0;
foreach (double val in values)
{
sum += val;
}
double average = sum / values.Count;
// Вывод результатов
Console.WriteLine($"\nВсего точек: {values.Count}");
Console.WriteLine($"Сумма значений: {sum:F4}");
Console.WriteLine($"Среднее арифметическое: {average:F4}");
// Вывод всех значений
Console.WriteLine("\nВсе значения функции:");
for (int i = 0; i < values.Count; i++)
{
double x = a + i * step;
Console.WriteLine($"x = {x:F4}, f(x) = {values[i]:F4}");
}
}
}