Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
oniblade

Ajuda com Matriz

Recommended Posts

Eaii galera , to com um problema de logica, alguem poderia me ajudar na logica desse algoritmo abaixo, eu peguei ele de um codigo fonte de uma pagina na net . Grato a quem me ajudar

 <script type="text/javascript">

<!--

a = new Array();



function GerarMatriz() {

// Dada a ordem da matriz, gera os campos de formulário para o preenchimento dos elementos

n = document.calc.ordem.value;

document.getElementById("resultado").innerHTML = "";



if (isNaN(n) || n <= 0) {

alert("A ordem da matriz deve ser um valor numérico positivo")

return false;

}



formMatriz = "<form name=\"calc2\">";



for (i = 1; i <= n; i++) {

for (j = 1; j <= n; j++) {

formMatriz += "<input type=\"text\" size=\"3\" style=\"border: solid 1px #ABABAB; width: 20px; height: 20px; vertical-align: top\" />    ";

}

formMatriz += "<br><br>";

}

formMatriz += "</form>";



document.getElementById("matriz").innerHTML = formMatriz;

document.getElementById("bt").disabled = false;

return false;

}



function ObterElementos() {

// Lê todos os elementos da matriz N x N e armazena num array do tipo a[i][j][id]

// Onde 'i' refere-se à linha, 'j' à coluna e 'n' à enésima matriz gerada, começando por 1

var k = 0;

var matriz = 1;

for (i = 1; i <= n; i++) {

a[i] = new Array();

for (j = 1; j <= n; j++) {

a[i][j] = new Array();

a[i][j][matriz] = document.calc2.elements[k].value;

k++;

}

}

}



function Calcular() {

ObterElementos();

document.getElementById("resultado").innerHTML = "Determinante: " + Determinante(1, n);

}



det = new Array();

u = new Array(); // u é um índice de contagem do tipo array, para que o valor de cada variável não seja perdido após a a chamada de uma nova função



function Determinante(id, tam) {

// Calcula o determinante de uma matriz M, segundo o Teorema de Laplace

if (tam == 1) {

return a[1][1][id]; // Se a matriz tiver ordem 1, o determinante é o único elemento de M

}

else if (tam == 2) {



/*************************************************************************

Se tiver ordem 2, o determinante vale o produto dos elementos

da diagonal principal menos o produto dos elementos da diagonal secundária

*************************************************************************/



return a[1][1][id] * a[2][2][id] - a[2][1][id] * a[1][2][id];

}

else {



/*********************************************************************

Se a ordem >= 3, entra o Teorema de Laplace:

O determinante de uma matriz M é a soma dos produtos dos elementos

de uma fila qualquer (linha ou coluna) pelos respectivos cofatores.

Mas, para este programa, considera-se sempre a primeira linha, porque

se fosse buscar uma fila específica, a aplicação, sem dúvidas,

seria mais lenta e, logo, inviável.

*********************************************************************/



det[id] = 0;

for (u[id] = 1; u[id] <= tam; u[id]++) {

if (a[1][u[id]][id] != 0) {

det[id] += (a[1][u[id]][id] * Cofator(u[id], tam, id));

}

}

return det[id];

}

}



function Cofator(x, n, m) {

// Calcula o cofator dos elementos a(1, i), para todo 1 <= i <= n

var p = 0;

for (i = 2; i <= n; i++) {

p++;

var s = 0;

for (j = 1; j <= n; j++) {

if (i != 1 && j != x) {

s++;

a[p][s][m + 1] = a[i][j][m];

}

}

}

return (Math.pow(-1, 1 + x) * Determinante(m + 1, p));

}

//-->

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×