А709

Условие:

Дана квадратная матрица [latex]A[/latex], порядка [latex]m[/latex], натуральное число [latex]n[/latex], действительные числа  [latex]p_{n},p_{n-1},\ldots,p_{0}[/latex]. Получить матрицу [latex]p_{n}A^{n}+p_{n-1}A^{n-1}+\ldots p_{1}A+p_{0}E[/latex], где [latex]E[/latex]- единичная матрица порядка [latex]m[/latex].

Тесты:

Ввод количества p Ввод размерности матрицы А и одновременно Е
6 3

 

Ввод коэффициентов 5 4 3 2 1 0

Матрица А:

1 2 3
3 2 1
2 1 3

Результат:

544308 445319 692718
544281 445354 692710
544277 445315 692753

Код:

Программа базируется на классе Matrix. Этот класс необходим для представления алгоритма вычисления полинома в естественной математической форме. Класс реализует следующие операции:

  1. Создание матрицы заданного размера заполненной заданным числом
  2. Умножение матрицы на число
  3. Сложение матриц
  4. Произведение матриц
  5. Возведение матрицы в степень
  6. Вывод содержимого матрицы на консоль

Класс Matrix содержит 3 члена – число строк, колонок и двумерный массив, который создается на куче. Главный модуль содержит две вспомогательный функции для ввода данных.

Основная часть программы состоит из следующих этапов:

  1. Ввод данных: число итераций, размерности матрицы , списка коэфф. P и самой матрицы А
  2. Создание единичной матрицы Е и далее – начального значения суммы E*P_0
  3. Вывод исходных данных: E, A и P
  4. Цикл суммирования, где вычисляется i-й элемент суммы
  5. Вывод результата

Ссылка на ideone.com: http://ideone.com/ZWCf15

Related Images:

2 thoughts on “А709

    • просто мне хотелось сделать более понятный интерфейс, чтоб как-то разнообразить ввод данных хотя бы для самого себя, чтобы не забыть для чего нужен тот или иной параметр. Приходилось выдумывать множество тестовых комбинаций прямо с клавиатуры.
      Что касается начинания строки с запятых и двоеточий – я посмотрел в Интернете, что многие программисты так делают, чтобы можно было добавить новую строчку кода в конец без изменения предыдущей, к примеру:
      class A
      : public B
      , public C
      , public E

Добавить комментарий