лекции программирование / polevoy_cpp_2012_spring_lecture_11
.pdfАТД “матрица”
•создание
•уничтожение
•получение доступа к элементу по индексу (i, j)
•получение размера по измерению
•изменение размера по измерению
21.04.2012 |
cppNewb.ru |
41 |
Матрица (интерфейс класса)
Matrix(const int nRow, const int nCol); Matrix(const Matrix& matr);
~Matrix();
Matrix& operator=(const Matrix& rhs); int nRow() const;
int nCol() const;
T& at(const int iRow, const int iCol); const T& at(const int iRow, const int iCol)
const;
ostream& writeAsTxt(ostream& ostr) const;
21.04.2012 |
cppNewb.ru |
42 |
Алгебраические операции
•умножение на число
•сложение двух матриц
умножение двух матриц
•
21.04.2012 |
cppNewb.ru |
43 |
Дополнительные операции
•транспонирование (для квадратной)
•вставка/удаление столбца/строки
перестановка двух строк столбцов
• /
• умножение на число строки/столбца
21.04.2012 |
cppNewb.ru |
44 |
Способ представления
• приведенный индекс
– размеры
– массив элементов
или
• массив строк/столбцов
|
|
|
21.04.2012 |
cppNewb.ru |
45 |
АТД “полином”
F(x)=a0·x0 + a1·x1 +…+ aN·xN
ai – коэффициент
i – показатель степени (неотрицательное целое)
x – переменная
степень многочлена – максимальный показатель степени (для 0 не определен)
21.04.2012 |
cppNewb.ru |
46 |
Операции с полиномом
•создание (одночлен)
•уничтожение
•сложение полиномов
•умножение полиномов (в т.ч. умножение на число)
•вычисление значения
21.04.2012 |
cppNewb.ru |
47 |
Дополнительные операции
•получение коэффициента при заданном показателе степени
21.04.2012 |
cppNewb.ru |
48 |
Представление полинома
•массив an, n=0,N
•массив пар {n,an}
•список пар {n,an}
21.04.2012 |
cppNewb.ru |
49 |
Оптимизация
•выбор способа хранения в зависимости от разреженности и размерности
•для разреженных – хранение в
упорядоченном виде (поддержание упорядоченности при вставке членов)
21.04.2012 |
cppNewb.ru |
50 |