Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 28 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
// выделение памяти под многочлены-операнды
Polynom p1=CreatePolynom(m);
Polynom p2=CreatePolynom(n);
if(p1.a==NULL || p2.a==NULL)
{
printf("Нет требуемого объема памяти.\n");
return;
}
printf("Введите коэффициенты многочлена A:");
ScanPolynom(p1);
printf("Введите коэффициенты многочлена B:");
ScanPolynom(p2);
Polynom p = SumPolynom(p1,p2);
PrintPolynom(p);
delete [] p1.a; delete [] p2.a; delete [] p.a;
}
// определение функции выделения памяти под многочлен
Polynom CreatePolynom(int n)
{
Polynom p; // создание объекта для хранения многочлена
p.n=n; // определение степени многочлена
p.a=new float[n+1]; // выделение памяти под массив
// коэффициентов
if(p.a==NULL)
{
// памяти недостаточно
p.n=0;
}
return p;
}
// определение функции ввода коэффициентов
// многочлена с клавиатуры
void ScanPolynom(Polynom p)
{
int i;
for(i=p.n;i>=0;i--)
scanf("%f",&p.a[i]);
}
// определение функции вывода многочлена на экран
void PrintPolynom(Polynom p)
28
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова               .
            // выделение памяти под многочлены-операнды
            Polynom p1=CreatePolynom(m);
            Polynom p2=CreatePolynom(n);
            if(p1.a==NULL || p2.a==NULL)
            {
                 printf("Нет требуемого объема памяти.\n");
                 return;
            }

            printf("Введите коэффициенты многочлена A:");
            ScanPolynom(p1);
            printf("Введите коэффициенты многочлена B:");
            ScanPolynom(p2);

            Polynom p = SumPolynom(p1,p2);
            PrintPolynom(p);
            delete [] p1.a; delete [] p2.a; delete [] p.a;
    }

    // определение функции выделения памяти под многочлен
    Polynom CreatePolynom(int n)
    {
          Polynom p; // создание объекта для хранения многочлена
          p.n=n;     // определение степени многочлена
          p.a=new float[n+1];     // выделение памяти под массив
                                  // коэффициентов
          if(p.a==NULL)
          {
               // памяти недостаточно
               p.n=0;
          }
          return p;
    }

      // определение функции ввода коэффициентов
      // многочлена с клавиатуры
    void ScanPolynom(Polynom p)
    {
           int i;
           for(i=p.n;i>=0;i--)
                scanf("%f",&p.a[i]);
    }

    // определение функции вывода многочлена на экран
    void PrintPolynom(Polynom p)

                                            28