Программирование на C++ - Списки
Submitted by prografix on Fri, 2006-12-08 03:24.Класс ShevList - это мой любимый класс. Я использую его давно и часто. Вначале, когда я его создал, у него было мало методов. Мне нравилось то обстоятельство, что оперируя небольшим количеством методов можно было делать довольно разнообразные манипуляции со списками. Но потом я заметил, что из-за этого страдает эффективность и стал добавлять новые методы до тех пор пока класс не принял существующий облик.
- prografix's blog
- 2 comments
- Read more
- 95 reads
Программирование на C++ - Класс Matrix
Submitted by prografix on Fri, 2006-12-08 03:22.Класс Matrix.
class Matrix
{
double ** p;
// Запрет оператора присваивания
void operator = ( const Matrix & );
public:
const int nRow; // к-во строк
const int nCol; // к-во столбцов
Matrix ( int r, int c );
Matrix ( int r, int c, const double * const * a );
Matrix ( const Matrix & );
~Matrix ();
void fill ( double );
Matrix & operator *= ( double );
operator double * const * () { return p; }
operator const double * const * () const { return p; }
};
- prografix's blog
- Add new comment
- Read more
- 6 reads
Программирование на C++ - Класс Complex
Submitted by prografix on Fri, 2006-12-08 03:20.Несмотря на то, что в С++ есть стандартный шаблон complex для представления комплекных чисел, был сделан специальный класс Complex для того, чтобы было проще и понятнее:
- prografix's blog
- Add new comment
- Read more
- 10 reads
Программирование на C++ - Kласс File
Submitted by prografix on Fri, 2006-12-08 03:18.Класс File.
Иногда нужно, чтобы функция одинаковым образом работала, как с файлом на диске, так и с выделенным фрагментом памяти или ещё с чем-нибудь. Т.е. файл должен быть не конкретным, а абстрактным понятием. В этом разделе описаны несколько классов для решения этой задачи.
- prografix's blog
- Add new comment
- Read more
- 4567 reads
Aлгебра - Метод Якоби вычисления собственных значений и векторов
Submitted by prografix on Fri, 2006-12-08 03:11.Метод Якоби предназначен для вычисления собственных значений и векторов симметричных матриц. Этот алгоритм был взят из "Справочника алгоритмов на языке Алгол" ( Уилкинсон, Райнш ) и переписан на С++. В процессе работы наддиагональные элементы будут изменены, но их можно восстановить по поддиагональным. Функция возвращает количество проведённых вращений ( для интереса ).
- prografix's blog
- Add new comment
- Read more
- 13 reads
Алгебраические уравнения - Уравнения четвёртой степени
Submitted by prografix on Fri, 2006-12-08 03:06.Вначале немного теории. Как обычно, будем рассматривать уравнение в котором коэффициент при x3 равен нулю:
x4 + px2 + qx + r = 0 (1)Представим это уравнение в виде произведения двух квадратных:
x4 + px2 + qx + r = ( x2 + ax + b ) ( x2 - ax + c )
- prografix's blog
- Add new comment
- Read more
- 6 reads
Алгебраические уравнения - Кубические уравнения
Submitted by prografix on Sat, 2006-11-11 18:54.Чаще всего кубические уравнения решают "тригонометрическим" методом, но там надо вычислять специальные функции, которые по сути являются подпрограммами, хотя и весьма оптимизированными. Можно поступить по другому - вначале найти один корень методом Ньютона, а затем, используя полученный корень, свести уравнение к квадратному для поиска остальных корней.
- prografix's blog
- Add new comment
- Read more
- 75 reads
Алгебраические уравнения - Уравнения второй степени (квадратные)
Submitted by prografix on Sat, 2006-11-11 18:05.Квадратное уравнение решается по школьной формуле с небольшим изменением. Так находится только один корень ( у которого больше абсолютное значение ), а второй находится, как частное b / x. Таким образом получается больше правильных знаков.
- prografix's blog
- Add new comment
- Read more
- 9 reads
Алгебраические уравнения - Кубический корень
Submitted by prografix on Sat, 2006-11-11 18:03.Иногда в программе нужно вычислить кубический корень. Раньше для этой цели я пользовался парой функций логарифм-экспонента, а потом (13.05.2004) решил сделать отдельную функцию и назвал её cbrt. В результате получилась функция, которая немного быстрей и немного точней, чем exp ( log ( x ) / 3 ).
- prografix's blog
- Add new comment
- Read more
- 10 reads
