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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2015, 17:40   #1
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию Матрица.

Здравствуйте.
Не могу понять как реализовать то , что от меня просят в задании.
Сложность вся в том, что не понимаю как работать с заданной областью.
Помогите пожалуйста.
Язык С++.
Изображения
Тип файла: png Безымянный.png (8.4 Кб, 142 просмотров)
EasyMak вне форума Ответить с цитированием
Старый 20.04.2015, 18:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Бред какой-то...
Ты сможешь сам написать код ввода матрицы "А"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2015, 18:33   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Наверно матрица nxn. Задаются i и j: 0=<j<i<=n-1 которые и определяют подматрицу i1=[j..i] и j1=[j..i]
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.04.2015 в 18:44.
Аватар вне форума Ответить с цитированием
Старый 20.04.2015, 21:19   #4
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Бред какой-то...
Ты сможешь сам написать код ввода матрицы "А"?
Код:
begin:
        int n,m;
	cout << "Введите количество столбцов: ";
	cin >> n;
	cout << "Введите количество строк: ";
	cin >> m;
	if(n<2 || m<2 ){
		cout << "Ошибка! Это не матрица!"<<endl;
		getch();
		goto begin;
	}
	float *matr = new float(n*m);
	cout << "Введите матрицу: "<<endl;
	for(int i(0);i<n;i++){
		for(int j(0);j<m;j++)
		cin >> matr[i][j];
	}
С вводом матрицы проблем нет)

Последний раз редактировалось Stilet; 20.04.2015 в 22:02.
EasyMak вне форума Ответить с цитированием
Старый 20.04.2015, 21:27   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

на паскале так будет имхо
Код:
for i:= 1 to n do begin
for j:=1 to n do
begin
min=a[1,1];
for k:=1 to i do
begin
for m:=1 to j do
if a[k,m]<min then min=a[k,m];
end;
b[i,j]:=min;
end;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.04.2015, 22:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
С вводом матрицы проблем нет)
Э-э-э... Это точно работает? Ну ладно, не важно.
Код:
 int i,j,min; cin>>i>>j;
 int **b=new int*[i];
	for(int q=i;q<j;q++){
                b[q]=new int[j]
		for(int w=j;w<i;w++)
		min =(matr[i][j]<min || (q==i)&&(w==j))?matr[i][j]:min;
	}
	for(int q=i;q<j;q++){
		for(int w=j;w<i;w++)
		b[q][w] =(matr[i][j]==min)?matr[i][j]:0;
	}
Все равно условие задачи какое-то инопланетянское.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.04.2015, 17:35   #7
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию

Согласен, с вводом, что то не так) Вот теперь норм все)
Код:
begin:
	int n,m;
	cout << ""Введите количество столбцов: ";
	cin >> n;
	cout << "Введите количество строк: ";
	cin >> m;
	if(n<2 || m<2 ){
		cout << "Ошибка! Это не матрица!..."<<endl;
		getch();
		goto begin;
	}
	cout << "Введите матрицу: "<<endl;
	int **matr = new int*[n];
	for(int i=0;i<n;i++){
		matr[i]=new int[m];
		for(int j=0;j<m;j++)
		cin >> matr[i][j];
	}
И если перевести условие на русский язык, то... покажу пример:
Допустим, у нас есть матрица 4х4:
2 3 4 5*
6 7 8 9
1 2 3 4
*7 7 7 7
Звездочками я обозначил нужную область.
И по заданию нам нужно получить вторую матрицу с измененными элементами в данной области.
Начнем с элемента 2,1 - число 6. Ищем в данной области минимальный элемент, нашли, 1. И заменяем эту 6 единичкой. И так дальше до конца заданной области. В случае с единичкой, её заменяем на 2, другой минимальный элемент.
И вопрос работы с областью для меня остается актуальным.
EasyMak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица Максикок Помощь студентам 0 08.06.2011 18:11
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Матрица hexx Фриланс 6 04.03.2010 16:32
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11