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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 23:29   #1
viktor 24
 
Регистрация: 24.05.2011
Сообщений: 6
По умолчанию Матрица

Нужно написать программы в консоли на VC++
1) Дана матрица А(n,m).Получить векторный столбец,элементы которого являются наибольшими по модулю элементов строк исходной матрицы

2) Вводится N чисел: Найти разность между наибольшим и наименьшим значением.

Последний раз редактировалось viktor 24; 24.05.2011 в 23:34.
viktor 24 вне форума Ответить с цитированием
Старый 24.05.2011, 23:35   #2
MeTeOpA
Форумчанин
 
Аватар для MeTeOpA
 
Регистрация: 17.02.2010
Сообщений: 194
По умолчанию

ко 2ой задаче :
Код:
float min=<тут минимальное значение double>;// to google
float max=<тут максимальное значение double>;//-//-
int i,n;
int a[];
cout<<"vvedite n";
cin>>n;
for(i=0;i>n;i++)
{
cout<<"vvedite chislo";
cin>>a[i];
if (a[i]>max) max=a[i];
if (a[i]<min) min=a[i];
}
float raznica;
raznica=max-min;
cout<<"Raznica mijdu max i min = "<< raznica;
ЗЫ:Могу ошибаться, глаза слипаются...
MeTeOpA вне форума Ответить с цитированием
Старый 24.05.2011, 23:56   #3
viktor 24
 
Регистрация: 24.05.2011
Сообщений: 6
По умолчанию

спасибо!!!!
viktor 24 вне форума Ответить с цитированием
Старый 25.05.2011, 12:09   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от MeTeOpA Посмотреть сообщение
ко 2ой задаче :
float min=<тут минимальное значение double>;// to google
float max=<тут максимальное значение double>;//-//-
Что за ужасы? Зачем же так находить минимальные и максимальные значения?
Достаточно, просто взять за минимальное\максимальное значение первый элемент последовательности, а потом сравнить его со всеми остальными
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 25.05.2011, 12:23   #5
MeTeOpA
Форумчанин
 
Аватар для MeTeOpA
 
Регистрация: 17.02.2010
Сообщений: 194
По умолчанию

To Blade :

Цитата:
ЗЫ:Могу ошибаться, глаза слипаются...
MeTeOpA вне форума Ответить с цитированием
Старый 25.05.2011, 22:14   #6
viktor 24
 
Регистрация: 24.05.2011
Сообщений: 6
По умолчанию

а можете написать код к первой задаче?????
viktor 24 вне форума Ответить с цитированием
Старый 26.05.2011, 00:16   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

viktor 24

а можете написать код к первой задаче?????

вот, дёшево (бесплатно), но сердито :D

Код:
#include <locale>
#include <iostream>

#include <algorithm>
#include <functional>
#include <iterator>

#include <math.h>
#include <time.h>

#include <boost/spirit/home/phoenix.hpp>
namespace phx = boost::phoenix;
using phx::arg_names::_1;

// Дана матрица А(n,m).
// Получить векторный столбец,элементы которого являются наибольшими по модулю элементов строк исходной матрицы

struct Z
{
	template <typename T>
	bool operator()(const T& v1, const T& v2) const
	{
		return std::abs(v1) < std::abs(v2);
	}
};

template <typename T, size_t Cols, size_t Rows>
void transform(const T (&m)[Cols][Rows], T (&arr)[Cols])
{
	std::transform(m, m + Cols, arr, *phx::max_element(_1, Z()));
}

template <typename T, size_t Cols, size_t Rows, typename F>
void generate(T (&m)[Cols][Rows], F f)
{
	std::generate(&m[0][0], &m[0][0] + Cols * Rows, f);
}

template <typename T, size_t N>
void print(const T (&arr)[N])
{
	typedef std::ostream_iterator<T> O;
	std::copy(arr, arr + N, O(std::cout, "\t"));
}

template <typename T, size_t Cols, size_t Rows>
void print(const T (&m)[Cols][Rows])
{
	for (const T (*it)[Rows] = m; it != m + Cols; ++it)
	{
		print(*it);
		std::cout << std::endl;
	}
}

struct R
{
	int operator()() const
	{
		return rand() % 21 - 10;
	}
};

int main()
{
	setlocale(LC_ALL, "");

	srand((unsigned) time(NULL));
	
	int m[3][4];
	generate(m, R());
	print(m);

	int arr[3];
	transform(m, arr);
	
	std::cout << std::endl;

	print(arr);

	return 0;
}
пример работы: http://liveworkspace.org/code/67d550...7f607f695913f8
Rififi вне форума Ответить с цитированием
Старый 27.05.2011, 17:07   #8
viktor 24
 
Регистрация: 24.05.2011
Сообщений: 6
По умолчанию

Спасибо огромное!!! а можно эту матрицу по другому написать , полегче???
viktor 24 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица С++ Soull Помощь студентам 3 14.11.2010 21:51
Матрица systemv Помощь студентам 2 12.11.2010 20:24
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Матрица Darknes Общие вопросы C/C++ 12 28.06.2010 16:16
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11