Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции программирование / polevoy_cpp_2012_spring_lecture_11

.pdf
Скачиваний:
27
Добавлен:
20.04.2015
Размер:
204.11 Кб
Скачать

АТД “матрица”

создание

уничтожение

получение доступа к элементу по индексу (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