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

Сделать класс двухмерного динамического массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает но компилируется http://www.cyberforum.ru/cpp-beginners/thread290727.html
Прога на Борланде фор ДОС. Компилируется, трассировка проходит удачно, но призапуске вылитает. Подскажите чьо. На ненужности не обращайте внимания. Хотяя. Я понятия не имею как корректно лепить бинарные деревъя. ЭТО то что вышло поотным трудом) А еще нужно поиск и тд. Кстати по Этому поводу можете что-то посоветувать:)
C++ Количество елементов массива Вчера тоже встретился с этой проблемой, но подумал что и так много у вас на форуме спрашиваю, так что не спросил... НО сегодня опять та же проблема. Вот код: ... ... int n; ifs >> n; int m; //здесь ошибка ... ... http://www.cyberforum.ru/cpp-beginners/thread290723.html
Вывести struct через fprint C++
Работает всё кроме функции Show_Rezult. т.к. у меня неразбериха с fprint...подсобите если нетрудно пожалуйста... #include <iostream> #include <stdio.h> #include <iomanip> using namespace std; const int N=10, F=5; struct STUDENT{ // данные о каждом студенте...
C++ Определить частоту появления в тексте каждого слова
#include <conio.h> #include <stdio.h> #include <ctype.h> #include <string.h> main() { char tekst; char buf; char buf2;
C++ Римские числа http://www.cyberforum.ru/cpp-beginners/thread290695.html
Нужна программа, проверающая на правильность введенное римское число В римских числах не силен. Гуглил, толком понял лишь что: допустимы лишь символы I V X L C D M повторение любого символа более 3 раз запрещено больше правил не нашел помогите с кодом программы заранее спасибо
C++ map/set iterator not dereferencable map<string,int> optimized(map<string,int>&dict){ map<string,int>::iterator i=dict.begin(); map<string,int>::iterator j=dict.begin(); while(i!=dict.end()){ for(j;j!=dict.end();j++){ if(is_root(i->first,j->first)) j=dict.erase(j); } i++; } подробнее

Показать сообщение отдельно
Kira-sempai
0 / 0 / 0
Регистрация: 26.07.2010
Сообщений: 6

Сделать класс двухмерного динамического массива - C++

07.05.2011, 19:44. Просмотров 1019. Ответов 4
Метки (Все метки)

Вот такая задачка:
"Написать программу работы с матрицами (матрица представляет собой двумерный массив). Матрица является объектом класса. Память под матрицу должна выделяться динамически (с помощью new). Должны быть определены деструктор и следующие конструкторы:

· Конструктор по умолчанию создает матрицу с размером по умолчанию;

· Копирующий конструктор.

Необходимо перегрузить операцию деления (операция должна выполняться поэлементно с элементами каждой матрицы) и операцию присваивания."

Я написал ее решение изрядно покопав инет, поэтому в программе разные куски возможно вообще не делают то, что должны, но я постарался сделать так, чтобы хоть синтаксис был правильный. Получилось нечто следующее:
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "StdAfx.h"
#include <stdio.h>
#include <assert.h>
#include <iostream>
 
using namespace std;
 
class matrix
{
public:
      matrix(int d1 = 10, int d2 = 10);
     ~matrix();
      int ub1() const{return(s1-1);}
      int ub2() const{return(s2-1);}; 
      int & element(int i, int j);
        
      int getNum() const;
 
      matrix operator/ (const matrix &);
      matrix & operator= (const matrix &);
 
private:
    int s1,s2;
    int** p;
    int k,l;
    int num;
 
 
};
 
int matrix::getNum() const
{
    return num;
}
 
matrix matrix::operator/ (const matrix & rhs)  //как делить матрицу
{
    
    for (int i = 0; i < s1; ++i)
        for (int j = 0; j < s2; ++j)
            p[i][j] /=  rhs.getNum();
    
    return matrix();
}    
 
 
matrix & matrix::operator=(const matrix & rhs) //как матрицы присваивать
{
    if (this == &rhs)
        return *this;
 
    for (int i = 0; i < s1; ++i)
        for (int j = 0; j < s2; ++j)
            p[i][j] = rhs.p[i][j];
 
}
 
matrix::matrix(int d1, int d2): s1(d1), s2(d2) //конструктор
 
{
 
assert(d1 > 0 && d2 > 0);
 
p = new int*[s1];
 
assert(p!=0);
 
 
for ( k = 0, k<s1; ++k;)
{
  p[k] = new int[s2];
 
  assert(p[k] != 0);
 
}   
 
}
 
matrix::~matrix() //деструктор
 
{
for ( k = 0, k < s1; ++k;)
  delete p[k];
delete []p;
}
 
int & matrix::element(int i,int j) //выбор элемента матрицы
{
    assert(i>=0 && i <= ub1() && j >= 0 && j <= ub2());
    return p[i][j];
}
 
void main()
{
    matrix m(10,15);
    matrix n(10,15);
    int sd;
    for (int i = 0;i<10;++i)
        for (int j = 0; j < 15; ++j)
            m.element(i,j) = i + j;  //заполняю ячейки матрицы чем попало
 
    n = m/2;
 
    cout << "Матрица m, 3я строка 4й столбец" << m.element(3,4) << "/n";
    cout << "Матрица n, 3я строка 4й столбец" << n.element(3,4) << "/n";
    cin >> sd;
}
в конце проги просто хотел проверить, работает ли она. Но вижуал студио после запуска проги ругается и не запускает( какие ошибки есть в этой программе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru