Comparação entre 2 matrizes!

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Comparação entre 2 matrizes!

Mensagempor antonio » 04 Mar 2010 07:11

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
antonio
Byte
 
Mensagens: 209
Registrado em: 15 Out 2006 12:34

Re: Comparação entre 2 matrizes!

Mensagempor barboza » 04 Mar 2010 08:20

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.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor fabim » 04 Mar 2010 08:44

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...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ze » 04 Mar 2010 09:21

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.
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor Milhoci » 04 Mar 2010 11:56

--i , decrementa o valor e depois usa no while,
i-- , usa no while e depois decrementa

Milhoci
Milhoci
Byte
 
Mensagens: 148
Registrado em: 12 Out 2006 18:46

Mensagempor cristian » 06 Mar 2010 22:39

nao sabia q tinha diferença

--A
A--

acheo que tanto faz como A+=10; ´eo mesmo q A=A+10;
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor RobL » 07 Mar 2010 17:13

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.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x