- •Факультет информатики и вычислительной техники
- •Содержание
- •1 Содержание курсовой РаБоТы и ее оформление
- •2 ТеМы курсовых работ
- •3 Задания к курсовым работам
- •Тема 1
- •Тема 3
- •Тема 4
- •Тема 5
- •Тема 6
- •Тема 7
- •Тема 8
- •Тема 9
- •Тема 10
- •Тема 11
- •Тема 12
- •Тема 13
- •Тема 14
- •Тема 15
- •Тема 16
- •Тема 17
- •Тема 18
- •Тема 19
- •Тема 20
- •Тема 21
- •Тема 22
- •Тема 23
- •Тема 24
- •Тема 25
- •4 Общие методические указания
- •5 Стиль записи программ
- •Void poligon::draw() // Заголовок функции пишем с // 3 позиции
- •Void main() // Функция main такая же, как и другие
- •6 Литература
Тема 3
Программные компоненты для решения задач линейной алгебры
1. Создать динамические классы для работы с числовыми матрицами и векторами. Тип элементов матрицы и вектора - double, матрицы квадратные, размеры матрицы и вектора переменные.
2. Для создания объектов, правильного их удаления, инициализации предусмотреть соответствующие конструкторы и деструкторы. Предусмотреть также конструкторы копирования.
3. Создать перегруженные операции:
- динамическое присваивание, символ "=" ;
- сложение и вычитание матриц, символы "+" , "- ";
- сложение и вычитание векторов, символы "+" , "- ";
- умножение матрицы на вектор, символ "*";
- деление числа на матрицу, символ "/";
- деление матрицы на матрицу, символ "/";
- скалярное умножение векторов;
- вывод матрицы, вектора в файл, символ ">>";
- ввод матрицы, вектора из файла, символ "<<".
4. Предусмотреть функции - члены классов:
- вычисление определителя матрицы;
- заполнение матрицы, вектора случайными числами из заданного интервала.
5. Создать внешнюю функцию для решение системы линейных уравнений методом Гаусса.
6. Разработать демонстрационно-тестирующую программу. Выполнить оценку погрешности выполнения следующих операций:
- обращение матрицы;
- решение системы линейных уравнений методом обращения матрицы;
- решение системы линейных уравнений методом Гаусса.
В тестовых примерах при вычислении погрешностей использовать случайные значения коэффициентов системы (случайные числа с равномерным распределением из интервала [0,1]). Указанные погрешности найти для следующих вещественных типов: float, double, long double. Порядок используемых матриц и систем - не менее 1000.
Тема 4
Класс для работы с бинарными кодами произвольной длины
1. Для программирования операций с бинарными кодами произвольной длины создать динамический класс BitVector.
2. Для создания и удаления объектов и их инициализации в создаваемом классе предусмотреть соответствующие конструкторы, деструктор и конструктор копирования.
3. Для программирования операций над битовыми векторами перегрузить следующие символы операций:
- побитовые операции:
инверсия, символ "!",
дизъюнкция (операция ИЛИ), символ "|",
конъюнкция (операция И), символ "&" ;
- сравнение двух битовых векторов, символы "==" , "!=" ;
- динамическое присваивание, символ "=" ;
- конкатенация (присоединение одного битового вектора к другому), символ "+" ;
- ввод из файла, символ "<<";
- вывод в файл, символ ">>".
4. Предусмотреть следующие функции - члены класса:
void BitVector::set(bool q) - присвоить всем элементам битового вектора значение q;
bool BitVector::get(int k) - прочитать значение бита номер k;
void BitVector::set(int k) - установить бит с номером k в 1;
void BitVector::clear(int k) - установить бит с номером k в 0;
int BitVector::length() - длина битового вектора;
int BitVector::num_true() - количество битов равных 1;
int BitVector::num_false() - количество битов равных 0;
5. Разработать демонстрационно-тестирующую программу. Вы-полнить тестирование созданных программных средств.