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

Составить описание класса, обеспечивающего представление матрицы произвольного размера - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Бешенный плай http://www.cyberforum.ru/cpp-beginners/thread622395.html
bool LoadPly (char *FileName , TModel &Model , float Unit ) { std::string Buffer; std::string Buffer1; std::ifstream File; bool VertexFlag; bool ...
C++ Удаление вершины бинарного дерева Как удалять вершины бинарного дерева вместе с потомками? http://www.cyberforum.ru/cpp-beginners/thread622383.html
C++ Ошибки в программе
Мне необходимо реализовать алгоритм сортировки каскадным слиянием со специальным распределением. Я написал программу: #include <stdio.h> #include <conio.h> int main() { int a={12,4,0,47,-32,200,14,7890,-1,33};
iostream C++
пишу в VS 2010 подключаю библиотеку: #include <iostream> в тебе программы подчеркивает cout, cin и endl в ошибках пишет идентификатор неопределен. помогите, в чем дело?
C++ Задача из книги Дейтел Как программировать на C++ http://www.cyberforum.ru/cpp-beginners/thread622333.html
Друзья! Я начал не так давно заниматься программированием. Имелся опыт с паскалем,но решил изучать С++. Начал изучение по книге Дейтелов. Дошел до 5 главы,и тут начались затруднее с решением задач. Задача 5.19 Рассчитайте значение pi как сумму бесконечного ряда
C++ Добавление элементов бинарное дерево Всем добрый день, не выручит кто нибудь алгоритмом который заполняет двоичное дерево поиска подробнее

Показать сообщение отдельно
ehanjaki
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 10
12.07.2012, 08:35     Составить описание класса, обеспечивающего представление матрицы произвольного размера
Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы.
вот код: описание класса есть, только нужно дописать int main! напишите пожалуйста вроде бы это совсем не сложно, но так я с программированием не связан то сам не могу(

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
108
109
110
111
112
113
114
115
#include<iostream>
using namespace std;
class Matrix // целочисленная матрица
{
private:
    int **a; // для хранения информации
    int w,h;// кол-вл строк и столбцов
public:
    Matrix(int H,int W); // конструктор с параметрами
    Matrix(); // пустой конструктор
    ~Matrix();// деструктор
    void SetXY(int Y,int X,int data); // для заполнения ячейки строки y и столбца x
    int GetXY(int Y,int X); // возвращает значение элемента строки y и столбца x
    void Show(); // вывод всей матрицы
    void Show(int Hbeg,int Wbeg,int Hend, int Wend);// вывод начиная со строки HBeg и заканчивая Hend, и столбца с WBeg до Wend
    void SetH(int H); // установка кол-ва строк
    void SetW(int W);// установка кол-ва столбцов
    int GetH() {return h;}
    int GetW() {return w;}
};
Matrix::Matrix()
{
    h=w=0;
}
Matrix::Matrix(int H,int W)
{
    h=H;
    w=W;
    a=new int*[H];// выделение памяти под строки
    for(int i=0;i<H;i++) 
        a[i]=new int[W];// выделение памяти под каждую строку
}
Matrix::~Matrix()
{
    for(int i=0;i<h;i++)
        delete [] a[i];
    delete [] a;
}
void Matrix::SetXY(int Y,int X,int data)
{
    if(Y<h &&Y>=0 && X<w && X>=0)
        a[Y][X]=data;
}
int Matrix::GetXY(int Y,int X)
{
    if (Y<h &&Y>=0 && X<w && X>=0)
        return a[Y][X];
    else 
        return -1;
}
void Matrix::Show()
{
    for(int i=0;i<h; i++, cout<<endl)
        for(int j=0;j<w;j++)
            cout<<a[i][j]<<" ";
}
void Matrix::Show(int Hbeg,int Hend,int Wbeg,int Wend)
{
    if(Hend<h &&Hbeg>=0 && Wend<w && Wbeg>=0)
    {
        for(int i=Hbeg;i<=Hend;i++,cout<<endl)
            for(int j=Wbeg;j<=Wend;j++)
                cout<<a[i][j]<<" ";
    }
}
void Matrix::SetH(int H)
{
    int **b;// новый участок памяти
    b=new int*[H];// выделение памяти под строки
    for(int i=0;i<H;i++) 
    {
        b[i]=new int[w];// выделение памяти под каждую строку
        for(int j=0;j<w;j++)
            b[i][j]=0; // сразу обнуляем строки
    }
 
    for(int i=0;i<H && i<h;i++)
        for(int j=0;j<w; j++)
            b[i][j]=a[i][j]; // копируем информацию
    // устанавливаем новое кол-во строк
 
     for(int i=0;i<h;i++)
        delete [] a[i]; // очистка памяти из под старой информации
    delete [] a;
    h=H; 
    a=b;
 
}
void Matrix::SetW(int W)
{
    int **b;
    b=new int*[h];// выделение памяти под строки
    for(int i=0;i<h;i++) 
    {
        b[i]=new int[W];// выделение памяти под каждую строку
        for(int j=0;j<W;j++)
            b[i][j]=0; // сразу обнуляем строки
    }
 
    for(int i=0;i<h;i++)
        for(int j=0;j<w &&j<W; j++)
            b[i][j]=a[i][j]; // копируем информацию
     
 
     for(int i=0;i<h;i++) // очистка памяти из под старой информации
        delete [] a[i];
    delete [] a;
    w=W; // устанавливаем новое кол-во столбцов
    a=b;
}
[B][B]int main()[/B][/B]
{
    
    return 0 ;
}
Добавлено через 15 часов 15 минут
помогите!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru