твоёсолнце7
18.06.2021 06:40

Заднаие такое : создать абстрактный класс function с методом вычисления значения функции y=f(x) в заданной точке.
создать производные классы: line (y=ax+b), kub (y=ax2+bx+c), hyperbola ( ) со своими вычисления значения в заданной точке.
создать массив n функций и вывести полную информацию о значении данных функций в точке х. код у меня есть.
напишите комментарии к этому коду
abstract class function
{
protected abstract double func(double x);
public double count(double x)
{
return func(x);
}
}

class line : function
{
public readonly double a;
public readonly double b;

public line(double a, double b)
{
a = a;
b = b;
}

protected override double func(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;
}

protected override double func(double x)
{
return a * x * x + b * x + c;
}
}
class hyperbola : function
{
public readonly double a;

public hyperbola(double a)
{
a = a;
}

protected override double func(double x)
{
return a / x;
}
}
class program
{
static void main(string[] args)
{
function[] func = new function[3];
func[0] = new line(2, 3);
func[1] = new kub(2, 3, 4);
func[2] = new hyperbola(3);
double x = 3.6;
foreach (function f in func)
console.writeline("значение функции {0} для x = {1} равно {2}", f. x, f.count(x));

}
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
TATAP2004
04.05.2021 19:39
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('*** Исходный массив 8x6 ***');
  var c:=MatrRandom(8,6,-99,99);
  c.Println(4); Writeln(4*c.ColCount*'-');
  Writeln('Произведения элементов, больших -7, построчно:');
  foreach var row in c.Rows do
    Writeln(row.Where(x->x>-7).Aggregate(int64(1),(p,q)->p*q));
end.

Пример
*** Исходный массив 8x6 ***
 -50   8 -15  55  91 -53
 -25  82  33  65  19 -63
  99  49 -80  84  -2  68
 -52 -63 -58  23  89  58
  81 -45 -71 -85  34  66
 -35   2  23  26 -33 -56
  74  35 -35  21  15 -77
  40  87 -11  77 -74 -65

Произведения элементов, больших -7, построчно:
40040
3341910
-55417824
118726
181764
1196
815850
267960
0,0(0 оценок)
Ответ:
mictermixa1
04.03.2022 09:19
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=new List<real>;
  a.AddRange(ReadSeqReal('Введите список А:',10));
  var b:=new List<real>;
  b.AddRange(ReadSeqReal('Введите список B:',10));
  var x:=new List<real>;
  x.AddRange(a.Zip(b,(p,q)->q/p));
  Write('A: '); a.Println;
  Write('B: '); b.Println;
  Write('X: '); x.Where(p->Trunc(p) mod 5=0).Println;
end.

Пример
Введите список А: 1 5 -2 3.5 12 16.3 -7 1.3 0.15 10
Введите список B: 10.4 37 -14 6.3 1 -8 -12.94 6.9 18 52
A: 1 5 -2 3.5 12 16.3 -7 1.3 0.15 10
B: 10.4 37 -14 6.3 1 -8 -12.94 6.9 18 52
X: 10.4 0.0833333333333333 -0.49079754601227 5.30769230769231 120 5.2
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота