Página 1 de 1

Comparação entre 2 matrizes!

MensagemEnviado: 04 Mar 2010 07:11
por antonio
Pessoal tudo bem!!

A duvida é o seguinte, eu queria comparar duas matrizes, uma com o valor inicializado , com outra matriz com o valor vindo do teclado!

Ou seja eu vou digitando o valor no teclado4x3 e coloco esse valor numa matriz que se chama "V" e quero comparar esse valor da matriz "V" com outra matriz jà inicializada "T"!

Eu uso linguagemC de CCS e o pic 16F877A
Exemplo:

char T [3]={5,1,7}; //matriz inicializada
char V[4];

Int i,k =0;

while(i<=3)
{
k=kbd_getc();
if(k!=0)
{
V[i]=k;
i++;
}
Agora como fazer a comparação dos valores entre as duas matrizes?
Ou seja se o valor da matriz V for igual ao da matriz T faz uma determinada função senão não faz!

Eu fiz assim e não funciona não!?
If(V[i ]==T[i])
output_high(PIN_A1);
else
output_high(PIN_B1);

desde jà agradeço

Re: Comparação entre 2 matrizes!

MensagemEnviado: 04 Mar 2010 08:20
por barboza
antonio escreveu:
Eu uso linguagemC de CCS e o pic 16F877A




Realmente o CCS tem uma linguagem que é só dele.....


Para resolver isso, assim como você percorreu todo o vetor para preencher, você deve comparar celula por celula.

Outra opção é usar funções nativas do C, como o memcmp.

MensagemEnviado: 04 Mar 2010 08:44
por fabim
short matrizV[10];//alocação de texto, ou numeros para liberação
short matrizT[10]={9,9,9,8,6,6,3,2,1,0};//senha ou valores
short casa,resultado;


main(){

do{
ok = Get_teclas();
}while(!ok);


for(casa =0; casa <10; casa++){//compara matris b TO b...

if(matrizV[casa] == matrizT[casa])
{resultado = true}else{resultado=false}

}


if(resultado){ atraca_relay(); } else {desatraca_relay(); }

XXX
XXX
XXX
XXXX
XXX

} //fim do main...

MensagemEnviado: 04 Mar 2010 09:21
por ze
taquigrafia
Código: Selecionar todos
...
#define n 10
char matrizV[n];//alocação de texto, ou numeros para liberação
const char matrizT[n]={9,9,9,8,6,6,3,2,1,0};//senha ou valores na flash
bit compara()
{
char i=n;
while(--i) {if (matrizT[i]!=matrizV[i]) return 0;}
return 1;
}
...
...
RA1=compara();//esse negóço de output_high(PIN_A1) me estressa!!!


sabe qual a dif de --i e i-- ? nem eu.

MensagemEnviado: 04 Mar 2010 11:56
por Milhoci
--i , decrementa o valor e depois usa no while,
i-- , usa no while e depois decrementa

Milhoci

MensagemEnviado: 06 Mar 2010 22:39
por cristian
nao sabia q tinha diferença

--A
A--

acheo que tanto faz como A+=10; ´eo mesmo q A=A+10;

MensagemEnviado: 07 Mar 2010 17:13
por RobL
Na literatura:
Pre decrement --n
Post decrement n--
idem ++n ou n++

Acrescentando: Comparação de matrizes é como acima colocaram.
Seja por função pronta ou feita, terá que comparar um bloco de memo com outro um a um(byte a byte). Isto está claro no exemplo do fabim, por matriz ou podeira também ser por ponteiros.
Não há como comparar um bloco de memo com outro bloco, de uma só vez, mesmo se este bloco fosse definido(criado um tipo) como um big numero. Ainda assim, a comparação seria como indicaram, byte a byte.