Boa tarde pessoal, sou novato no Java, gostaria que se alguem pude-se me ajudar estou precisando de um programa para cacular a área do menor retangulo e do maior retangulo de uma matriz quadrada n por n sabendo que a matriz inteira não é o maior retangulo, e a menor celula da matriz também não é um retangulo
[quote]
O retângulo é um quadrilátero, pois possui 4 lados que podem ou não ser iguais. Quando os lados forem diferentes ela continua recebendo o nome de retângulo, agora quando os 4 lados forem iguais o retângulo poderá ser chamado de quadrado.[/quote]
Como o enunciado do problema disse que uma célula só não representa o menor retangulo creio que, fica mais ou menos claro, que um retangulo com 1 de altura e 2 de base seria o menor mas, você pode fazer um programa que adicione valores a altura e a base do retangulo ( não excedendo o limite de linhas e colunas da matriz ) para calcular a área dos retângulos e encontrar o menor nesse caso.
No caso do retangulo maior, o enunciado já disse que o que seria um retangulo de 5x5 ( total de linhas e colunas ) não é o maior. Portanto, o que deve ser feito é ir adicionando valores a base e altura e fazer o calculo de áreas para determinar o maior. Você pode armazenar os valores anteriores em um vetor e comparar o maior depois de todos os cálculos.
Para calcular a área do menor retângulo basta calcular a área de 2 x 1 ou 1 x 2 e para a área do maior retângulo basta calcular a área de n-1 x n ou n x n-1, onde n é a razão da matriz. Isso levando em conta que o tamanho do lado e da base seja em função de 0,0 e n-1,n ou n,n-1.
Quem pode esclarecer isso é o autor do tópico porque se os valores da matriz representam a base e altura de vários retângulos então, esses valores deveriam ser usados para calcular a menor area de um retangulo bem como a maior área do retângulo. Caso contrário, esses valores não servem pois, como o enunciado do problema disse “a menor celula da matriz também não é um retangulo” então deixa a entender que o calculo deve ser feito com a quantidade de célular e não o valor de cada uma.
[quote=ViniGodoy]Por mim isso não deixa claro nada. Esse enunciado está confuso.
Se for levar em consideração só o tamanho da matriz, não seria necessário nem ser uma matriz. Bastaria informar a altura e a largura e pronto.[/quote]
Se for o q eu estou pensando … essa matriz é a representação algébrica da diagonal desse retangulo, assim, seria necessário descobrir a projeção dessa matriz (vetor) em função de X e Y, para descobrir a base e a altura respectivamente…
Dessa forma, seria preciso calcular
Sendo A = matriz
base = Projecao ortogonal de A em x -> (Notação: Projx A)
altura = Projecao ortogonal de A em y -> (Notação: Projy A)
Pessoal deixa eu explicar, preciso desenvolver um programa em java e como sou novato e bem novato, não sei como fazer, mas a o programa é o seguinte dada uma matriz quadrada de ordem N calcular a area do maior retangulo e do menor retangulo dessa matriz, ex se a matriz for de 10 x10 sei que a area do maior retangulo será 9 X 10 e do menor retangulo será sempre 2 X 1, mas não estou sabendo como passar isso para o java . se alguem puder me ajudar agradeço
Foi exatamente isso que eu expliquei… Não tem nenhum mistério nisso!
[code]
import java.util.Scanner;
public class Areas{
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Digite a dimensao da Matriz: ");
int dimensao = entrada.nextInt();
int[][] matriz = new int[dimensao][dimensao]; // Sem uso, nesse contexto...
double area_menor = 1*2;
double area_maior = dimensao*(dimensao-1);
}
}[/code]
Veja se é isso aí… ou se a base e a altura dos retângulos na matriz são em função dos valores contido nos índices, aí sim vai ser mais interessante desenvolver o código.