Сделать перегрузку любого метода - C#

Узнай цену своей работы

Формулировка задачи:

необходимо сделать перегрузку любого метода
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Foo = System.Func<float, float>;
 
class Program
{
    const float Eps = 1e-5f;
 
    static float Solve(Foo f, float a, float b, float eps = Eps, int count = 0)
    {
        float fa = f(a), fb = f(b), c, fc;
        if (fa * fb > 0) throw new ArgumentException();
 
        do
        {
            c = (a + b) / 2; fc = f(c);
            if (fc * fa < 0) { b = c; fb = fc; }
            else { a = c; fa = fc; }
        } while (Math.Abs(fc) > eps && --count != 0);
 
        return c;
    }
 
    static float SolveR(Foo f, float x, float dx, float eps = Eps)
    {
        return Math.Abs(f(x)) < eps ? x :
            SolveR(f, f(x + dx / 2) * f(x) < 0 ? x : x + dx / 2, dx / 2, eps);
    }

    static void Main(string[] args)
    {
        // x^4 + 3x^3 + 3x^2 - x - 6 = 0
        float[] a = { 1, 3, 3, -1, -6 };
        Foo f = x => a.Aggregate((s, q) => s * x + q);
        Console.WriteLine("Korni:");
        Console.WriteLine("X1 = {0:0.00}", Solve(f, 0, 10));
        Console.WriteLine("X2 = {0:0.00}", Solve(f, -10, 0));
 
        Console.ReadLine();
    }
}

Решение задачи: «Сделать перегрузку любого метода»

textual
Листинг программы
public int Calculate(int a, int b)
{
    return a + b;
}
 
public int Calculate(params int[] input)
{
    if(input.Length < 2)
        throw new ArgumentException("Мало параметров xD");
    int res = 0;
    foreach(var item in input)
        res += item;
    return intem;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы