ВУЗ:
Составители:
Рубрика:
50
// конструктор полинома с указанием степени полинома
// и массива коэффициентов
// вызывает первую версию конструктора для выделения
// памяти, копирует массив коэффициентов и осуществляет
// преобразование степени, если коэффициенты при
// старших степенях равны нулю
public Polynom(int n1, double[] coef): this(n1)
{
coef.CopyTo(a,0);
if(a[n] == 0)
PreobrPolynom();
}
// функция устранения нулевых коэффициентов
// при больших степенях
void PreobrPolynom()
{
// поиск максимальной степени
// с ненулевым коэффициентом
for (int i = n-1; i > 0; i++)
if (a[i] != 0)
{
// полином должен иметь i-ую степень,
// создаем новый массив и меняем
// значения полей текущего объекта
double[] b = new double[i + 1];
a.CopyTo(b, i);
a = b;
n = i;
return;
}
// все коэффициенты нулевые – в любом случае получаем
// полином нулевой степени
n = 0;
double c = a[0];
a = new double[1]; a[0] = c;
}
. . .
}
Ввод и вывод полинома определим через символьные строки. Для
этого в класс Polynom добавим операцию преобразования полинома в тип
string и статическую функцию Parse(), которая создает объект
полинома, получая данные из символьной строки, содержащей его
коэффициенты. Для удобства обращения к коэффициентам полинома
создадим индексатор.
// конструктор полинома с указанием степени полинома
// и массива коэффициентов
// вызывает первую версию конструктора для выделения
// памяти, копирует массив коэффициентов и осуществляет
// преобразование степени, если коэффициенты при
// старших степенях равны нулю
public Polynom(int n1, double[] coef): this(n1)
{
coef.CopyTo(a,0);
if(a[n] == 0)
PreobrPolynom();
}
// функция устранения нулевых коэффициентов
// при больших степенях
void PreobrPolynom()
{
// поиск максимальной степени
// с ненулевым коэффициентом
for (int i = n-1; i > 0; i++)
if (a[i] != 0)
{
// полином должен иметь i-ую степень,
// создаем новый массив и меняем
// значения полей текущего объекта
double[] b = new double[i + 1];
a.CopyTo(b, i);
a = b;
n = i;
return;
}
// все коэффициенты нулевые – в любом случае получаем
// полином нулевой степени
n = 0;
double c = a[0];
a = new double[1]; a[0] = c;
}
. . .
}
Ввод и вывод полинома определим через символьные строки. Для
этого в класс Polynom добавим операцию преобразования полинома в тип
string и статическую функцию Parse(), которая создает объект
полинома, получая данные из символьной строки, содержащей его
коэффициенты. Для удобства обращения к коэффициентам полинома
создадим индексатор.
50
Страницы
- « первая
- ‹ предыдущая
- …
- 49
- 50
- 51
- 52
- 53
- …
- следующая ›
- последняя »
