Chrnos 30 Denunciar post Postado Setembro 30, 2009 Bom, pode ter um erro na lógica do seu código nos if's... execute um debug passo a passo no código que montou ai e vai encontrar o erro.... qualquer coisa posta o código todo ai. []'s Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 1, 2009 Bom, pode ter um erro na lógica do seu código nos if's... execute um debug passo a passo no código que montou ai e vai encontrar o erro.... qualquer coisa posta o código todo ai. []'s anem, essa parte do numero 9 ta f***.. ja tentei um monte de coisas mas nada deu certo... seraa que eu vo ter que criar uma condicao pra ver so se eh o numero 9 ??? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 1, 2009 Até onde sei vai sim, porque o 9 romano, pelo que lembro, é IX não é? Ou seja, exige um teste especial para o número neste caso... []'s Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 1, 2009 Até onde sei vai sim, porque o 9 romano, pelo que lembro, é IX não é? Ou seja, exige um teste especial para o número neste caso... []'s isso mesmo... ai teria que colocar ele antes da condicao do 10 ? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 1, 2009 Seria melhor testar na ordem de grandeza, vindo do maior para o menor ... isto é, teste o 10, depois o 9, depois o 5 para ai chegar nos entre 1 e 4. Qualquer coisa posta o código completo ai pra vermos. []'s Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 1, 2009 so que como ta usando mod e div, nao sei se seria. if (resto >=9) and (iresto <10) ... continuacao... Seria no meio desse ai ne . if (iresto >= 10) and (iresto < 50) then begin iqtde := iresto div 10; iresto := iresto mod 10; if iqtde > 0 then begin icontrolelaco := 0; while icontrolelaco < iqtde do begin sromano := sromano + 'X'; icontrolelaco:=icontrolelaco+1; end; end; end; if (iresto >= 5) and (iresto < 10) then begin iqtde := iresto div 5; iresto := iresto mod 5; if iqtde > 0 then begin icontrolelaco := 0; while icontrolelaco < iqtde do begin sromano := sromano + 'V'; icontrolelaco:=icontrolelaco+1; end; end; end; Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 1, 2009 Este trecho está errado.... if (iresto >= 5) and (iresto < 10) then begin iqtde := iresto div 5; iresto := iresto mod 5; if iqtde > 0 then begin icontrolelaco := 0; while icontrolelaco < iqtde do begin sromano := sromano + 'V'; icontrolelaco:=icontrolelaco+1; end; end; end; Você não precisa de um laço de repetição para valores iguais a 5 e 9, visto que eles só podem ser computados uma vez.... então, o certo seria usar if's simples.... if (iresto = 9) then begin iresto := iresto - 9; sromano := sromano + 'IX'; end; if (iresto >= 5) and (iresto < 9) then begin iresto := iresto - 5; sromano := sromano + 'V'; end; Saindo desse bloco, se fosse 9 o valor, o iresto zeraria... se fosse 8, o iresto sairia com valor 3. Você deve avaliar antes de usar comandos a real necessidade dos mesmos. []'s Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 1, 2009 Este trecho está errado.... if (iresto >= 5) and (iresto < 10) then begin iqtde := iresto div 5; iresto := iresto mod 5; if iqtde > 0 then begin icontrolelaco := 0; while icontrolelaco < iqtde do begin sromano := sromano + 'V'; icontrolelaco:=icontrolelaco+1; end; end; end; Você não precisa de um laço de repetição para valores iguais a 5 e 9, visto que eles só podem ser computados uma vez.... então, o certo seria usar if's simples.... if (iresto = 9) then begin iresto := iresto - 9; sromano := sromano + 'IX'; end; if (iresto >= 5) and (iresto < 9) then begin iresto := iresto - 5; sromano := sromano + 'V'; end; Saindo desse bloco, se fosse 9 o valor, o iresto zeraria... se fosse 8, o iresto sairia com valor 3. Você deve avaliar antes de usar comandos a real necessidade dos mesmos. []'s ahh simm, agora entendi . Muito obrigadoo ! Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 2, 2009 [] estava tentando passar de romano pra arabico, mas nao rolou vou ter que usar outras condicoes totalmente diferentes, ne ? -- Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 2, 2009 Vai ter que montar as condições de acordo com as regras para geração do arábico... []'s Compartilhar este post Link para o post Compartilhar em outros sites
infolivee 0 Denunciar post Postado Outubro 2, 2009 Ja montei, obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites