Показать сообщение отдельно
Старый 03.05.2012, 17:34   #13
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Абстрактный класс и наследование

Сообщение от pax Посмотреть сообщение
Тут либо отказаться от такого наследования и делать перегруженные методы, либо наследоваться только от Matrix<T>
Да я бы и рад отказаться от такого, да задание вообще не радует, в рамки зажали не дают развернутся

1. Створити простір імен Algebra.
2. Розробити клас Vector для маніпуляції з векторами дійсних чисел. У
цього класу повинно бути два поля: count (тип int) – кількість елементів у
масиві і data (масив типу double) – масив з даними. Створити конструктори:
public Vector (long n), який резервує пам’ять для масиву з n елементів,
public Vector (long n, double init), який резервує пам’ять для масиву з n
елементів та ініціалізує кожен елемент значенням init, та
public Vector (double []arr), який створює копію масиву arr10. За
допомогою перезавантаження операцій реалізувати операції суми, різниці,
векторного добутку та доступу за індексом. Реалізувати методи: int size(),
який вертає кількість елементів у масиві, double abs(), який вертає корінь з
суми квадратів координат вектору (при реалізації обов’язково використати
оператор foreach), void read() та void write(), які, відповідно, роблять
консольний ввід та вивід масиву.
3. Створити абстрактний клас Matrix, у якому оголосити абстрактні
операції суми, різниці, добутку, доступу за індексом, методи void read() та
void write().
4. Створити клас RectMatrix, який уточнює (є потомком) клас Matrix. У
класі RectMatrix оголосити поля rows (тип int) – кількість строк у матриці,
cols (тип int) – кількість стовпців у матриці та data (масив типу Vector). У
класі RectMatrix необхідно реалізувати всі абстрактні операції і методи класу
Matrix. Запропонувати сигнатури та відповідні конструктори для гнучкості
ініціалізації матриць.
5. Створити клас QuadMatrix, який уточнює (є потомком) клас
RectMatrix, та додає рекурсивний метод обчислення визначника квадратної
матриці.
10 Для визначення кількості елементів у масиві arr можна скористатися операцією arr.GetLength(0)
31
6. Створити клас SymmetricMatrix, який уточнює (є потомком) клас
QuadMatrix. Клас SymmetricMatrix призначений для зберігання симетричних
матриць, тому необхідно створити відповідні конструктори та перезавантажити
операцію доступу за індексом з розрахунку, що поле data – стрічкова матриця,
яка зберігає тільки верхню половини матриці.
7. Розробити клас Cramer, який складається з двох полів: matrix (тип
QuadMatrix) – матриця СЛАР та vector (тип Vector), який призначений для
розв’язку СЛАР методом Крамера.
8. Навести приклади застосування розроблених методів.
В 6 пункте придется делать еще одно наследование от QuadMatrix

Посоветуй как в общем для такого задания лучше организовать наследование, а то каждым способом к разной ошибке прихожу
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием