Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Рус ООП.doc
Скачиваний:
6
Добавлен:
17.08.2019
Размер:
190.98 Кб
Скачать

Тема 3

Программные компоненты для решения задач линейной алгебры

1. Создать динамические классы для работы с числовыми матрицами и векторами. Тип элементов матрицы и вектора - double, матрицы квадратные, размеры матрицы и вектора переменные.

2. Для создания объектов, правильного их удаления, инициализации предусмотреть соответствующие конструкторы и деструкто­ры. Предусмотреть также конструкторы копирования.

3. Создать перегруженные операции:

- динамическое присваивание, символ "=" ;

- сложение и вычитание матриц, символы "+" , "- ";

- сложение и вычитание векторов, символы "+" , "- ";

- умножение матрицы на вектор, символ "*";

- деление числа на матрицу, символ "/";

- деление матрицы на матрицу, символ "/";

- скалярное умножение векторов;

- вывод матрицы, вектора в файл, символ ">>";

- ввод матрицы, вектора из файла, символ "<<".

4. Предусмотреть функции - члены классов:

- вычисление определителя матрицы;

- заполнение матрицы, вектора случайными числами из заданного интервала.

5. Создать внешнюю функцию для решение системы линейных уравнений методом Гаусса.

6. Разработать демонстрационно-тестирующую программу. Выполнить оценку погрешности выполнения следующих операций:

- обращение матрицы;

- решение системы линейных уравнений методом обращения матрицы;

- решение системы линейных уравнений методом Гаусса.

В тестовых примерах при вычислении погрешностей использовать случайные значения коэффициентов системы (случайные числа с равномерным распределением из интервала [0,1]). Указанные погрешности найти для следующих вещественных типов: float, double, long double. Порядок используемых матриц и систем - не менее 1000.

Тема 4

Класс для работы с бинарными кодами произвольной длины

1. Для программирования операций с бинарными кодами произвольной длины создать динамический класс BitVector.

2. Для создания и удаления объектов и их инициализации в создаваемом классе предусмотреть соответствующие конструкторы, деструкто­р и конструктор копирования.

3. Для программирования операций над битовыми векторами перегрузить следующие символы операций:

- побитовые операции:

инверсия, символ "!",

дизъюнкция (операция ИЛИ), символ "|",

конъюнкция (операция И), символ "&" ;

- сравнение двух битовых векторов, символы "==" , "!=" ;

- динамическое присваивание, символ "=" ;

- конкатенация (присоединение одного битового вектора к другому), символ "+" ;

- ввод из файла, символ "<<";

- вывод в файл, символ ">>".

4. Предусмотреть следующие функции - члены класса:

  1. void BitVector::set(bool q) - присвоить всем элементам битового вектора значение q;

  2. bool BitVector::get(int k) - прочитать значение бита номер k;

  3. void BitVector::set(int k) - установить бит с номером k в 1;

  4. void BitVector::clear(int k) - установить бит с номером k в 0;

  5. int BitVector::length() - длина битового вектора;

  6. int BitVector::num_true() - количество битов равных 1;

  7. int BitVector::num_false() - количество битов равных 0;

5. Разработать демонстрационно-тестирующую программу. Вы-полнить тестирование созданных программных средств.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]