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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2014, 16:40   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
про ООП только поверхностное представление имею.
Эт плохо. А судя по заданию придется хотя бы наследование изучить.
Вотъ: http://www.programmersclub.ru/26/
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2014, 21:51   #12
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, теперь все по фэн-шую.Осталось только в
PHP код:
void Matr::newmatr(void
добавить новую матрицу в копию, только я не понял как этот метод индексации работает.То есть если я в предыдущей проге создавал новую матрицу, то как правильно записать в копию?

PHP код:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

class 
Matr
{
    const 
int row;
    const 
int col;
    
int **A;
public:
    
Matr(int 4int 4);
    
Matr(const Matr&);
    ~
Matr();
    
void newmatr(void);
    
void show(void);
};
Matr::Matr(int val1int val2) :row(val1), col(val2)
{
    
= new int*[row];
    for (
int i 0i<rowi++)
        
A[i] = new int[col];
    for (
int i 0i<rowi++)
    {
        for (
int j 0j<colj++)
            
A[i][j] = rand() / 100;
    }
}
Matr::Matr(const Matrfrom) :row(from.row), col(from.col)
{
    for (
int i 0i<rowi++)
    {
        for (
int j 0j<colj++)
            
A[i][j] = from.A[i][j];
    }
}
Matr::~Matr()
{
    for (
int j 0j<rowj++)
        
delete[]A[j];
    
delete[]A;
}
void Matr::show(void)
{
    for (
int i 0i<rowi++)
    {
        for (
int j 0j<colj++)
            
cout<<A[i][j]<<" ";
        
cout<<endl;
    }
}
void Matr::newmatr(void)
{
    
        
tmpObj.A[i][j] = s;
        
A[i][j] = tmpObj.A[i][j];
        
0;
        
    
}
    
int _tmain()
    {
        
Matr Obj;
        
Obj.show();
        
Obj.newmatr();
        
Obj.show();
        return 
0;
    } 

Последний раз редактировалось East Undia Trading; 06.04.2014 в 16:07.
East Undia Trading вне форума Ответить с цитированием
Старый 08.04.2014, 07:04   #13
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Программа компилируется, но при запуске завершает работу без ошибки.Можно вопрос, что не так?Я думаю, проблема либо в show, либо в newmatr.
Код:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

class Matr
{
private:
	const int row;
	const int col;
	int **A, n, cmin, k, *idx;
	double  *avg;
public:
	Matr(int = 4, int = 4);
	Matr(const Matr&);
	~Matr();
	void newmatr(void);
	void show(void);
};
Matr::Matr(int val1, int val2) :row(val1), col(val2)
{
	A = new int*[row];
	for (int i = 0; i<row; i++)
		A[i] = new int[col];
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			A[i][j] = rand() / 100;
	}
}
Matr::Matr(const Matr& from) :row(from.row), col(from.col)
{
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			A[i][j] = from.A[i][j];
	}
}
Matr::~Matr()
{
	for (int j = 0; j<row; j++)
		delete[]A[j];
	delete[]A;
}
void Matr::show(void)
{
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			cout << "  " << A[idx[j]][i];
		cout << endl;
	}
}
void Matr::newmatr(void)
{
	Matr tmpObj;
	int s = 0;
	for (int i = 0; i < row; i++) idx[i] = i;
	for (int i = 0; i < row; i++) for (int j = 0; j < col; j++)
	if (avg[idx[i]]<avg[idx[j]]){ s = idx[j]; idx[j] = idx[i]; idx[i] = k;
    tmpObj.A[i][j] = s;
	A[i][j] = tmpObj.A[i][j];
	s = 0;
    };
	
}
int _tmain()
{
	Matr Obj;
	Obj.show();
	Obj.newmatr();
	Obj.show();
	return 0;
}
East Undia Trading вне форума Ответить с цитированием
Старый 08.04.2014, 10:30   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты пошаговку сделай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.04.2014, 18:15   #15
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, вот.С индексами массива не напутал?
Код:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

class Matr
{
private:
	const int row;
	const int col;
	int **A, n, cmin, k, *idx;
	double  *avg;
public:
	Matr(int = 4, int = 4);
	Matr(const Matr&);
	~Matr();
	void newmatr(void);
	void show(void);
};
Matr::Matr(int val1, int val2) :row(val1), col(val2)
{
	A = new int*[row];
	for (int i = 0; i<row; i++)
		A[i] = new int[col];
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			A[i][j] = rand() / 100;
	}
}
Matr::Matr(const Matr& from) :row(from.row), col(from.col)
{
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			A[i][j] = from.A[i][j];
	}
}
Matr::~Matr()
{
	for (int j = 0; j<row; j++)
		delete[]A[j];
	delete[]A;
}
void Matr::show(void)
{
	for (int i = 0; i<row; i++)
	{
		for (int j = 0; j<col; j++)
			cout << A[i][j] << " ";
		cout << endl;
	}
}
void Matr::newmatr(void)
{
	Matr tmpObj;
	int s = 0, min = 0, cmin = 0, f[5], buf, i, j;
	while (s<row)
	for (int i = 0; i < row; ++i)
	{
		if (i = 0)
		{
			for (int j = 0; j < col; ++j)
			{
				min += A[i][j];
			}
			min = min / s;
			cmin = i;
		}
		if (i > 0 && f[row] == false)
		{
			for (int i = 0; i < row; ++i)
			{
				buf += A[col][row];
			}
			buf = buf / s;
			if (buf <= min)
			{
				min = buf;
				cmin = col;
			}
		}
		if (s == row - 1)
		{
			for (int i = 0; i < row; i++)
			{
				if (f[i] == false)
				{
					cmin = i;
				}
			}
		}
		f[cmin] = true;
		for (int j = 0; j < col; j++)
			{
			tmpObj.A[i][j] = s;
			A[i][j] = tmpObj.A[i][j];
			}
			s = s + 1;
		}
	}
int _tmain()
{
	Matr Obj;
	Obj.show();
	Obj.newmatr();
	Obj.show();
	return 0;
}
East Undia Trading вне форума Ответить с цитированием
Старый 09.04.2014, 22:54   #16
East Undia Trading
Форумчанин
 
Регистрация: 02.10.2013
Сообщений: 231
По умолчанию

Stilet, все, разобрался.
East Undia Trading вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка программы. Nuclear_Razor Фриланс 1 15.08.2013 10:29
Доработка программы на C# iCaesy Фриланс 0 12.01.2013 15:51
Доработка программы. ddlovato Помощь студентам 2 28.12.2011 12:40
Доработка программы zhiva Фриланс 1 30.07.2011 15:56
Доработка программы akialex Помощь студентам 3 24.12.2009 21:09