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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 02:45   #1
Daddy.Dandy
Новичок
Джуниор
 
Регистрация: 16.04.2013
Сообщений: 1
Подмигивание Поиск локального минимума С++

Код:
#include<iostream>
using namespace std;

class Massiv2
{public:
int**matr;
int n;
Massiv2();
Massiv2(int n);
Massiv2(Massiv2 &);
~Massiv2();
void Rand(int);
int local_min();
bool operator==(Massiv2&);
Massiv2& operator=(Massiv2&);
Massiv2 operator+(Massiv2&);
friend istream& operator>>(istream&,Massiv2&);
friend ostream& operator<<(ostream&,Massiv2&);
};

int main()
{
	int a;
	int b;
	cout<<"Input number of randomizing: "<<' ';
	cin>>b;
	cout<<"Input size of massiv: "<<' ';
	cin>>a;
	Massiv2 matr(a);
	matr.Rand(b);

	cout<<"Matrica\n"<<matr<<endl;
	cout<<"Loc min col: "<<matr.local_min()<<'\n';

	cin.get();
	cin.get();
	return 0;
}

Massiv2::Massiv2()
{
	this->n=3;
	matr=new int*[n];
	for(int i=0;i<n;++i)
		matr[i]=new int[n];
}

Massiv2::Massiv2(int k)
{
	this->n=k;
	matr=new int*[n];
	for(int i=0;i<n;++i)
		matr[i]=new int[n];
}

Massiv2::~Massiv2()
{
	for(int i=0;i<n;++i)
		delete[]matr[i];
	delete[]matr;
}

void Massiv2::Rand(int k)
{
	for(int i=0;i<n;++i)
		for(int j=0;j<n;++j)
			matr[i][j]=rand()%k;
}

int Massiv2::local_min()
{
	int col_l_min=0;
	for(int i=0;i<n;++i)
		for(int j=0;j<n;++j)
		{	if(n==1){cout<<"error\n"; break;}
			if(i>0 && j>0 && i<n-1 && j<n-1 && matr[i][j] < matr[i-1][j] && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i-1][j+1]){col_l_min++;} 
			if(i==0 && j==0 && matr[i][j]<matr[i+1][j] && matr[i][j]<matr[i+1][j+1] && matr[i][j]<matr[i][j+1]){col_l_min++;}
			if(i==n-1 && j==0 && matr[i][j]<matr[i-1][j] && matr[i][j]<matr[i-1][j+1] && matr[i][j]<matr[i][j+1]){col_l_min++;}
			if(i==0 && j==n-1 && matr[i][j]<matr[i][j-1] && matr[i][j]<matr[i+1][j-1] && matr[i][j]<matr[i+1][j]){col_l_min++;}
			if(j==n-1 && i==n-1 && matr[i][j]<matr[i-1][j] && matr[i][j]<matr[i-1][j-1] && matr[i][j]<matr[i][j-1]){col_l_min++;}
			if(i==0 && j>0 && j<n-1 && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i][j+1]){col_l_min++;}
			if(j==0 && i<n-1 && i>0 && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i+1][j+1] && matr[i][j] < matr[i][j+1] && matr[i][j] < matr[i-1][j+1] && matr[i][j] < matr[i-1][j]){col_l_min++;}
			if(j==n-1 && i>0 && i<n-1 && matr[i][j] < matr[i+1][j] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i+1][j-1] && matr[i][j] < matr[i+1][j]){col_l_min++;}
			if(i==n-1 && j>0 && j<n-1 && matr[i][j] < matr[i][j-1] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i-1][j] && matr[i][j] < matr[i-1][j-1] && matr[i][j] < matr[i][j+1]){col_l_min++;}
		}
	return col_l_min;
}

istream& operator>>(istream& in,Massiv2& obj)
{
	for(int i(0);i<obj.n;i++)
		for(int j(0);j<obj.n;j++)
		in>>obj.matr[i][j];
	return in;
}

ostream& operator<<(ostream& out,Massiv2& obj)
{
	for(int i(0);i<obj.n;out<<'\n',i++)
		for(int j(0);j<obj.n;j++)
		{
			out.width(5);
			out<<obj.matr[i][j];
		}
	out<<'\n';
	return out;
}
это конечно полнейший гавнокод, но вдруг кому-то пригодится ))
Daddy.Dandy вне форума Ответить с цитированием
Старый 16.04.2013, 11:50   #2
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Спасибо за предоставление кода, возможно кому-то действительно он понадобится, но выражаться так я Вам не посоветовал бы
Ghost3 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Примитивный поиск локального минимума AntoJKEe Помощь студентам 0 14.01.2012 21:50
Поиск минимума в массиве. Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 17.09.2009 19:39
Поиск минимума Иринкаа Помощь студентам 1 19.11.2007 22:00
Задача на поиск минимума Stan Паскаль, Turbo Pascal, PascalABC.NET 3 25.06.2007 19:23