Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

Описать класс "Матрица" - C++

22.09.2010, 17:56. Просмотров 2755. Ответов 19
Метки нет (Все метки)

я как бэ в поиске нашел но мне бы хотелось узнать обязательно ли матрица должна быть динамической и можно написать метод для ввода и вывода матрицы?
а то я пытался сделать но чего-то работает неверно...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 17:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать класс "Матрица" (C++):

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" - C++
Нужно определить класс "матрица" с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

Создать базовый класс "Массив" и класс-наследник "Матрица" - C++
Добрый день! такой вопрос, как задать двумерный массив и заполнить его рандомными числами. и как его реализовать используя абстрактные...

Описать класс "Контейнер" как объект, предназначенный для транспортировки классов "Строительных блоков" - C++
1. Опишите класс "Строительный блок", описывающий габариты и массу блока прямоугольной формы. Данные класса: Габариты, масса. Методы...

Класс "Матрица". Перегрузка оператора "минус" - C++
Помогите дописать программу или исправить ее. Нужно было написать программу, где создать класс матрицы, используя двухмерный динамический...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 17:58 #2
Ну ё-моё, пытался-не пытался... Код покажите, будем ошибки искать.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
22.09.2010, 17:58 #3
Цитата Сообщение от Artishok Посмотреть сообщение
узнать обязательно ли матрица должна быть динамической и можно написать метод для ввода и вывода матрицы?
Это надо узнавать у того, кто задавал задание.
0
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
22.09.2010, 18:08  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream.h>
#include <stdlib.h>
 
class matrix
{
     private:
     int rx, ry, matx[][];
     public:
     void matr();
     matrix(int x,int y);
     ~matrix();
     void sum();
     void prel();
};
 
matrix::matrix(int x,int y)
{
    rx=x;
    ry=y;
    for(int i=0;i<rx;i++)
     for(int j=0;j<ry;j++)
       cin>>matx[i][j];
}
 
void matrix::matr()
{
    for(int i=0;i<rx;i++)
    {
     for(int j=0;i<ry;j++)
      std::cout<<matx[i][j]<<" ";
     std::cout<<endl;
    }
}
 
void matrix::sum()
{
     int summ=0;
    for(int i=0;i<rx;i++)
     for(int j=0;j<ry;j++)
      summ+=matx[i][j];
     std::cout<<summ;
}
 
void matrix::prel()
{
    int prell=1;
    for(int i=0;i<rx;i++)
     for(int j=0;j<ry;j++)
      prell*=matx[i][j];
    std::cout<<prell;
}
 
matrix::~matrix(){};
       
main()
{
    matrix c(4,3);
    c.matr();
    c.sum();
    c.prel();
    return 0;
}
не надо сильно ругать.по книжке с классами знакомился
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
22.09.2010, 18:13 #5
Artishok, в таком случае нужно либо делать двумерный массив статическим, либо выделять под него память динамически (что подразумевает объявление деструктора, который будет высвобождать выделенную память).
Я бы делал по-другому - описал бы класс столбца (или строки) и строил класс матрицы как массив столбцов (или строк)
1
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 18:14 #6
А я бы просто забабахал динамически и всё...
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
22.09.2010, 18:19 #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
А я бы просто забабахал динамически и всё...
одна из причин, по которой я бы сначал определил класс строки - это возможность определить операторы индексации так, чтобы доступ к элементу матрицы происходил так:
C++
1
std::cout << matrix[i][j];
- т.е. так же, как и к встроенным массивам. Ну и еще потому, что для класса строк можно определить вспомогательные функции, которые будет активно использовать класс матрицы - так удобнее, ИМХО.
1
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 18:27 #8
Логично.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
22.09.2010, 18:27 #9
Artishok, какой-то скудный функционал у класса получается - сумма, произведение всех элементов матрицы. Реализуйте хотя бы сложение и умножение матриц, а в идеале - построение обратной матрицы и нахождение определителя.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 18:28 #10
А это разве не лаба по ООП?
0
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
22.09.2010, 18:29  [ТС] #11
вообще-то я сам сидел на лекции по Си и решал.
лабы по ооп начнутся только на 3-м курсе а я на втором.
веселье начнется в след.семестре когда ассемблер начнем проходить....
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 18:30 #12
Artishok,
А вас разве кто-то обвиняет в плагиате? Я просто предположил, что есть чёткое задание, в котором и оговаривается функционал класса.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
22.09.2010, 18:35 #13
Artishok, а попробуй для начала описать класс числового массива, чтобы он поддерживал изменение размера, реализовывал сумму/разность массивов (одинаковых размеров, естественно), умножение/деление на число, скалярное произведение, индексацию с проверкой на выход за пределы массива, ну и всякие другие полезности. Будет тебе тренировка. А потом можно и к матрицам переходить.
P.S. А класс матрицы можно будет построить на основе класса-массива. Так что ты одним выстрелом убиваешь двух зайцев
0
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
22.09.2010, 18:36  [ТС] #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Artishok,
А вас разве кто-то обвиняет в плагиате? Я просто предположил, что есть чёткое задание, в котором и оговаривается функционал класса.
я про плагиат ничего не сказал
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
22.09.2010, 18:37 #15
Меня смутила фраза "я сам сидел и решал..." Читая её, можно подумать, что решал это я и теперь застал вас врасплох... Но хватит оффтопа.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2010, 18:37
Привет! Вот еще темы с ответами:

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Класс "Матрица". "Правило трёх" - C++
Проблема в том, что я не могу вернуть тип данных &quot;Матрица&quot;.Что я делаю не так понял в ООП? // matrica.cpp : Defines the entry point for...

Класс "Матрица", перегрузка оператора "+" - C++
Здравствуйте. Создаю класс матрица, в нём перегружаю оператор &quot;+&quot;. На этапе компиляции всё замечательно, но при запуске программа вылетает....

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.09.2010, 18:37
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru