Skip to content

IAmBornedHope/Lab_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Работа с квадратными матрицами

Программа предназначена для выполнения различных операций над квадратными матрицами с целочисленными и вещественными значениями


Требования

  • C компилятор
  • Стандартные библиотеки C
  • Make (Опционально, для сборки)

Структура

Матрица

Структура квадратной матрицы содержит 3 поля

Поле Тип поля Описание
size u_int (unsigned int) Размер квадратной матрицы
data void* Указатель на начало блока памяти, хранящего значения матрицы
info Typeinfo* (Тип библиотеки) Определяет тип матрицы (целочисленная / вещественная) и операции над ней (виртуальная таблица)

Информационное поле матрицы

Структура виртуальной таблицы (TypeInfo) имеет 5 полей. Дополнительно описана сигнатура бинарной операции

Поле Тип поля Описание
size u_int (unsigned int) Размер квадратной матрицы
add BinaryOperator Указатель на начало блока памяти, хранящего значения матрицы
multiply BinaryOperator Определяет тип матрицы (целочисленная / вещественная) и операции над ней (виртуальная таблица)
void const void* Указатель на функцию вывода числа
void void* data Указатель на функцию для инициализации числа нулем

Сигнатура бинарной операции
(*BinaryOperator)(const void* arg1, const void* arg2, void* result);


Поддерживаемые функции

Библиотека работает с квадратными матрицами из целых или вещественных чисел. При работе вещественные числа отображаются до трех знаков после запятой. Список поддерживаемых функций:

  • Создание матрицы
  • Вывод матрицы
  • Копирование матрицы
  • Сложение квадратных матриц
  • Умножение квадратных матриц
  • Умножение квадратной матрицы на скаляр
  • Прибавление к строке линейной комбинации других строк

Тестирование

В лабораторной работе реализовано модульное тестирование функционала библиотеки

Группа тестов Количество тестов Тестируемая функция Что делает функция
1 15 create_matrix Создание матрицы
2 13 set_elem Установка значения элементу матрицы
3 11 matrix_add Сложение квадратных матриц
4 15 matrix_multiply Умножение квадратных матриц
5 13 matrix_on_scalar Умножение матрицы на скаляр
6 11 add_linear_combination Прибавление к строке линейной комбинации других строк
7 9 integer_add, integer_multiply Сложение и умножение целых чисел
8 9 double_add, double_multiply Сложение и умножение вещественных чисел

Сборка проекта

Через Makefile
make
В результате выполнения команды собираются библиотека libmatrix.a, в зависимости от нее собирается тестовый файл tests.exe Лабораторная работа с интерфейсом содержится в lab_1.exe

About

Лабораторная работа №1 (2 семестр)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors