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

UptoLike

. Практикум по курсу «Алгоритмизация и программирование». Часть 2
}
Задача 6. Имеется односвязный список, определяющий полином. Требу-
ется вычислить значение полинома в заданной точке.
Используя прием прохода по всем элементам списка, рассмотренный ра-
нее (например, в задаче 1), вычисляем значение каждого слагаемого полинома
и добавляем его к переменной, хранящей сумму.
// определение функции вычисления значения полинома
// в точке x
float CalculatePolynom(Summand* head,float x)
{
float p_x=0;
if(head!=NULL)
{
Summand* current=head;
while(current!=NULL)
{
p_x+= current->a*pow(x, current->n);
current=current->next;
}
}
return p_x;
}
Задача 7. Имеется односвязный список, задающий полином. Требуется
привести подобные слагаемые (предполагается, что полином может состоять
из нескольких слагаемых с одинаковыми показателями степени).
Алгоритм решения данной задачи заключается в следующем. Берется
очередной элемент списка (переменная current), и просматриваются все
элементы, следующие за ним (переменная help). Если показатели степеней у
двух рассматриваемых элементов совпадают, то коэффициенты складываются
и помещаются в поле info узла, на который указывает current, а элемент
help из списка удаляется.
// определение функции приведения подобных слагаемых
// в полиноме
void SimilarSummand(Summand*& head)
{
Summand* current,*help,*prev;
current=head;
while(current!=NULL)
{
// поиск всех подобных слагаемых
65
            .       Практикум по курсу «Алгоритмизация и программирование». Часть 2
   }
    Задача 6. Имеется односвязный список, определяющий полином. Требу-
ется вычислить значение полинома в заданной точке.
    Используя прием прохода по всем элементам списка, рассмотренный ра-
нее (например, в задаче 1), вычисляем значение каждого слагаемого полинома
и добавляем его к переменной, хранящей сумму.

   // определение функции вычисления значения полинома
   // в точке x
   float CalculatePolynom(Summand* head,float x)
   {
         float p_x=0;
         if(head!=NULL)
         {
              Summand* current=head;
              while(current!=NULL)
              {
                   p_x+= current->a*pow(x, current->n);
                   current=current->next;
              }
         }
       return p_x;
   }

    Задача 7. Имеется односвязный список, задающий полином. Требуется
привести подобные слагаемые (предполагается, что полином может состоять
из нескольких слагаемых с одинаковыми показателями степени).
    Алгоритм решения данной задачи заключается в следующем. Берется
очередной элемент списка (переменная current), и просматриваются все
элементы, следующие за ним (переменная help). Если показатели степеней у
двух рассматриваемых элементов совпадают, то коэффициенты складываются
и помещаются в поле info узла, на который указывает current, а элемент
help из списка удаляется.
   // определение функции приведения подобных слагаемых
   // в полиноме
   void SimilarSummand(Summand*& head)
   {
         Summand* current,*help,*prev;
         current=head;
         while(current!=NULL)
         {
              // поиск всех подобных слагаемых

                                      65