Загрузка данных


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}");
        }
    }
}