Repo for fourth homework on 2019/2020 C++ course
Объявить двумерный массив в куче и заполнить его. После заполнения – показать заполненную матрицу на экран и отдельной функцией посчитать сумму элементов отдельно в каждой строке.
Сигнатура функции суммирования:
void row_sum(int ** m, unsigned rows, unsigned cols)
{ … }
Объявить двумерный массив в куче и заполнить его. После заполнения – показать заполненную матрицу на экран и отдельной функцией посчитать сумму элементов отдельно в каждом столбце. Максимальную сумму вернуть в main().
Сигнатура функции суммирования:
int col_sum(int ** m, unsigned rows, unsigned cols)
{ … }
Создайте класс Rational с конструктором, принимающим числитель и знаменатель в качестве аргументов. Гарантируется, что знаменатель не равен нулю.
Определите для класса Rational операторы:
- сложения (
+
), - вычитания (
-
), - умножения (
*
), - деления (
/
) - инкремент (префиксный и постфиксный)
- декремент (префиксный и постфиксный)
- сравнения (
>, <, ==, !=, <=, =>
)
Арифместические операторы должны быть определены так, чтобы экземпляры класса Rational могли использоваться вместе с переменными типа double
без ограничений.
Операторы сравнения должны быть определены так, чтобы экземпляры класса Rational могли использоваться вместе с переменными типа int
без ограничений.
Rational в памяти должен храниться в приведенном виде: 10 / 2 => 5 / 1
.
class Rational
{
...
private:
int numerator_;
int denominator_;
}
Подумайте, что можно сделать, чтобы не переопределять все виды арифметических операторов несколько раз (сначала с двумя Rational, потом с Rational и double, потом с double и Rational).