Реализация метода CompareTo для сортировки - C#
Формулировка задачи:
Есть задание:
В абстрактном классе
Funtion
реализовать методCompareTo
так, чтобы можно было отсортировать функции по коэффициенту А. Помогите Сам код:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- abstract class Function
- {
- public abstract double Count(double x);
- }
- class Line : Function
- {
- public readonly double A;
- public readonly double B;
- public Line(double a, double b)
- {
- A = a;
- B = b;
- }
- public override double Count(double x)
- {
- return A * x + B;
- }
- }
- class Kub : Function
- {
- public readonly double A;
- public readonly double B;
- public readonly double C;
- public Kub(double a, double b, double c)
- {
- A = a;
- B = b;
- C = c;
- }
- public override double Count(double x)
- {
- return A * x * x + B * x + C;
- }
- }
- class Hyperbola : Function
- {
- public readonly double A;
- public readonly double B;
- public Hyperbola(double a, double b)
- {
- A = a;
- B = b;
- }
- public override double Count(double x)
- {
- return (A / x) + B;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Function[] func = new Function[3];
- func[0] = new Line(1, 2);
- func[1] = new Kub(3, 4, 5);
- func[2] = new Hyperbola(2, 3);
- double x = 11;
- foreach (Function f in func)
- Console.WriteLine("значение функции {0} для x = {1} равно {2}", f.GetType(), x, f.Count(x));
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Реализация метода CompareTo для сортировки»
textual
Листинг программы
- using System;
- namespace ConsoleApplication1
- {
- abstract class Function : IComparable<Function>
- {
- public abstract double A { get; set; }
- public abstract double B { get; set; }
- public abstract double Count(double x);
- public abstract Int32 CompareTo(Function obj);
- }
- class Line : Function
- {
- public sealed override Double A { get; set; }
- public sealed override Double B { get; set; }
- public Line(double a, double b)
- {
- A = a;
- B = b;
- }
- public override double Count(double x)
- {
- return A * x + B;
- }
- public override Int32 CompareTo(Function obj)
- {
- return A.CompareTo(obj.A);
- }
- }
- class Kub : Function
- {
- public sealed override Double A { get; set; }
- public sealed override Double B { get; set; }
- public readonly double C;
- public Kub(double a, double b, double c)
- {
- A = a;
- B = b;
- C = c;
- }
- public override double Count(double x)
- {
- return A * x * x + B * x + C;
- }
- public override Int32 CompareTo(Function obj)
- {
- return A.CompareTo(obj.A);
- }
- }
- class Hyperbola : Function
- {
- public sealed override Double A { get; set; }
- public sealed override Double B { get; set; }
- public Hyperbola(double a, double b)
- {
- A = a;
- B = b;
- }
- public override double Count(double x)
- {
- return (A / x) + B;
- }
- public override Int32 CompareTo(Function obj)
- {
- return A.CompareTo(obj.A);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Function[] func = new Function[3];
- func[0] = new Line(1, 2);
- func[1] = new Kub(3, 4, 5);
- func[2] = new Hyperbola(2, 3);
- double x = 11;
- foreach (Function f in func)
- Console.WriteLine("значение функции {0} для x = {1} равно {2}", f.GetType(), x, f.Count(x));
- Array.Sort(func);
- foreach (Function f in func)
- Console.WriteLine("значение функции {0} для x = {1} равно {2}", f.GetType(), x, f.Count(x));
- Console.ReadLine();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д