Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2012, 09:22   #1
ehanjaki
 
Регистрация: 05.07.2012
Сообщений: 6
Печаль int main класса матрицы

Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы.
вот код: описание класса есть, только нужно дописать int main! напишите пожалуйста вроде бы это совсем не сложно, но так я с программированием не связан то сам не могу(

#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;
}
int main()
{





return 0 ;
}
ehanjaki вне форума Ответить с цитированием
Старый 12.07.2012, 09:48   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

О_о. Моногабукав. Ниасилил. Тока за денежку.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 12.07.2012, 09:59   #3
ehanjaki
 
Регистрация: 05.07.2012
Сообщений: 6
По умолчанию

неакак за денежку
ehanjaki вне форума Ответить с цитированием
Старый 12.07.2012, 10:05   #4
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

неакак так неакак.
Отформатируйте код, заключите в тег code. Будет понятнее, о чем речь.
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 12.07.2012 в 10:08.
Krok27 вне форума Ответить с цитированием
Старый 12.07.2012, 10:27   #5
ehanjaki
 
Регистрация: 05.07.2012
Сообщений: 6
По умолчанию

ну помоги плиз кто нить
ehanjaki вне форума Ответить с цитированием
Старый 12.07.2012, 10:29   #6
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Смотрим тут
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция float average(int arrray[],int from,int to) yuliyayuliya Помощь студентам 0 25.04.2011 21:55
error: '::main' must return 'int' Without Soul Общие вопросы C/C++ 9 24.03.2011 07:26
Ошибка`main' must return `int' Hichigo Общие вопросы C/C++ 9 26.02.2011 15:33
Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:9) elpilasgsm Помощь студентам 4 18.01.2011 08:23
Создание собственного класса. Который считает время(нужен секундамер) и имеет массив данных int ciberlex404 Общие вопросы C/C++ 0 04.06.2010 20:12