ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »