Página 1 de 1

Problema com módulo(% resto da divisão) + mikroC + P16f877

MensagemEnviado: 28 Fev 2009 16:31
por cassiolws
Bom se alguém puder dar uma luz fico grato..

não conssigo pegar o resto correto de uma divisão:

a divisãoé a seguinte

.
.
.
unsigned long VAR[3];
unsigned RESTO;
VAR[1] = (50 * 8330);
VAR[2] = VAR[1] - 900;
VAR[3] = VAR[2] / 4000;
RESTO = VAR[3] % 10;
.
.
.
dai quando eu jogo o resto no lcd aparece 6
mas era pra aparecer 9

ja tentei mudar o tipo da formula tipo assim

;
unsigned long VAR;
unsigned RESTO;

VAR = ((50*8330) - 900 / 4000));
;

e também não deu certo, ja tentei nomear as variaveis com letras minusculas (case sensitive) nao deu sempre da a mesma coisa para diferentes valores também.

alguém pode me ajudar?

desde ja agradeço a coompreenção.

abraço

MensagemEnviado: 28 Fev 2009 16:32
por cassiolws
só corrigindo aparece 3 e era pra parecer 9

MensagemEnviado: 28 Fev 2009 17:17
por cassiolws
pensei aqui agora em uma outra maneir mas tb não deu certo

unsigned long VAR[3];
unsigned RESTO;
VAR[1] = (50 * 8330);
VAR[2] = VAR[1] - 900;
VAR[3] = VAR[2] / 4000;
RESTO = VAR[2]%4000;

Re: Problema com módulo(% resto da divisão) + mikroC + P16f8

MensagemEnviado: 28 Fev 2009 18:51
por Jorge_Francisco
cassiolws escreveu:
unsigned RESTO;

RESTO =(((50 * 8330) - 900)/ 400)% 10;


Divida por 400 ao invés de 4000. Lembre-se que unsigned long guarda apenas inteiros e não reais.

Abraço

MensagemEnviado: 28 Fev 2009 19:59
por cassiolws
Brigado Jorge!

Como eu soh precisava do primeiro numero após a virgula usei a formula do jeito que você passou mas sem o módulo de resto e a partir dai tirei milhar, centena, dezena e unidade sendo que a unidade era o resto da divisão.

VAR =((50 * 8330) - 900)/ 400;
VAR = 1039 a partir daqui tirei milhar, centena, dezena e unidade
lembrando que a unidade eh o meu resto!
:D