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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 02:08   #1
torren108
Пользователь
 
Регистрация: 28.09.2011
Сообщений: 17
По умолчанию Объясните смысл задания по матрицам?

"Задана матрица А вещественных чисел размера N x N. Построить по ней матрицу В того же размера, элемент b [с индексами i,j] которой равен минимуму всех тех элементов матрицы А, которые расположены в некоторой ее области (закрашенной), определяемой по номеру строки i и номеру столбца j, так, как показанно на рисунке:
(x - закрашенно, о - пустое. извините за самопальное творчество)

x x x x o o o o o o
x x x x o o o o o o
x x x x o o o o o o
x x x x o o o o o o
x x x x o o o o o o
x x x x o o o o o o
x x x x o o o o o o
o o o o o o o o o o
o o o o o o o o o o
o o o o o o o o o o
"

Будьте любезны, объясните смысл задания элементов матрицы В? я не могу разобраться как это облачить в нормальный код на Си?
И заодно, если не сложно, проверьте способ построения матрицы А (извините что без комментариев и под спойлер убрать не получается):
Код:
#include <stdio.h>
#include <math.h>
#include <locale.h>
#define N 20

void main()
{
	setlocale(LC_ALL, "russian_russia.1251");
	
	int A[N][N], i, j, B[N][N], h, l;

// ЧАСТЬ 1. Ввод данных.

	do{
		printf("Введите количество столбцов матрицы:\n");
			if (scanf("%d", &l) != 1)
			{
				printf("Нужно число!\n");
				continue;
			}
		
			if (l<1)
			{
				printf("Положительное!\n");
				continue;
			}
			
		printf("Введите количество строк матрицы:\n");
			if (scanf("%d", &h) != 1)
			{
				printf("Нужно число!\n");
				continue;
			}
		
			if (h<1)
			{
				printf("Положительное!\n");
				continue;
			}
		
	}while (l<1, h<1);
	
	printf("Построчно введите элементы матрицы:\n");
		for (j=0; j<h; j++)
		{
			for (i=0; i<l; i++)
			{
				scanf("%d", &A[i][j]);
			}
		}
		
	printf("Введена матрица:\n");
		for (j=0; j<h; j++)
		{
			for (i=0; i<l; i++)
				printf(" %d ", A[i][j]);
			printf("\n");
		}
torren108 вне форума Ответить с цитированием
Старый 07.12.2011, 03:18   #2
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Построить по ней матрицу В того же размера, элемент b [i,j] которой равен минимуму всех тех элементов матрицы А, которые расположены в некоторой ее области (закрашенной),

Это как бы подматрица матрицы A. И в этой подматрице надо найти минимальный элемент, так же как и в обычной.

Код:
#include "stdafx.h"
using namespace std;

const int N = 10;	// размер матрицы A

float MinMatrixA(float A[N][N], int row, int col);	// минимальный элемент в матрице A в области от A[0][0] до A[row][col]

int _tmain(int argc, _TCHAR* argv[])
{
	float A[N][N] = {0};
	float B[N][N] = {0};
	int row, col;


	// заполнение матрицы A
	for (row=0; row<N; row++)
		for (col=0; col<N; col++)
		{
			cout << "Enter A[" << row << "][" << col << "]: ";
			cin >> A[row][col];
		}

	// Вычисляем матрицу B
	for (row=0; row<N; row++)
		for (col=0; col<N; col++)
			B[row][col] = MinMatrixA(A, row, col);

	cout << "\n\n";

	// Печатаем матрицу A
	for (row=0; row<N; row++)
	{
		for (col=0; col<N; col++)
			cout << A[row][col] << ' ';

		cout << '\n';
	}

	cout << "\n\n";

	// Матрица B
	for (row=0; row<N; row++)
	{
		for (col=0; col<N; col++)
			cout << B[row][col] << ' ';

		cout << '\n';
	}
	

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

float MinMatrixA(float A[N][N], int row, int col)
{
	float min = A[0][0];

	for (int i=0; i<row; i++)
		for (int j=0; j<col; j++)
			if (A[i][j] < min)
				min = A[i][j];


	return min;
}
viron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните смысл интерфейсов MyLastHit C# (си шарп) 8 22.11.2011 18:43
Небольшие задания по матрицам в паскале Novenkaja Помощь студентам 5 19.05.2011 15:01
Краткий смысл. В чем цель и смысл вашей жизни? grenles Свободное общение 20 13.09.2010 07:13
Задача в Delphi. Объясните смысл! Sianessa Помощь студентам 13 31.03.2009 22:11
Объясните, пожалуйста смысл строки - res=d.year > year ? -1: (d.year < year? 0:1) Fynj Помощь студентам 2 17.12.2007 17:50