allancarlos123 Posted March 3, 2014 at 03:11 PM Report #547350 Posted March 3, 2014 at 03:11 PM Bom dia 🙂 Alguém me explica como posso separar um número grande (1000000) e deixá-lo assim (1.000.000). Estou a utlizar o Pascalzim
nunopicado Posted March 3, 2014 at 04:36 PM Report #547379 Posted March 3, 2014 at 04:36 PM Com uma variável string de apoio, inicializada a nada (s:=''), usas um ciclo FOR...DOWNTO...DO para percorreres a string onde tens o numero grande do fim para o inicio. Depois vais passando caracter a caracter de uma string para a outra, com o pormenor que: Se i (variável de controlo do FOR) MOD 3 for 0, além do caracter mete também um '.'. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
allancarlos123 Posted March 3, 2014 at 09:31 PM Author Report #547444 Posted March 3, 2014 at 09:31 PM No caso eu teria que deixar +/- assim... Var s:String; begin S:=''; For downto do //não entendi a parte do FOR DOWNTO DO
nunopicado Posted March 3, 2014 at 10:55 PM Report #547452 Posted March 3, 2014 at 10:55 PM Faz assim, esquece o downto. É mais fácil de outra maneira: Analisa este código. Toma atenção aos comentários. var valor,aux:String; i:Integer; begin valor:='12345678'; // Valor de exemplo Aux:=''; // Variável auxiliar inicializada for i:=1 to length(valor) do // Executa o FOR o número de caracteres que tem a string valor begin // Passa para a variável Aux caracter a caracter. // O Length(Valor)+1 - i é para inverter os valores, passando efectivamente do último para o primeiro Aux:=Valor[Length(Valor)+1 - i] + Aux; //Junta cada caracter da string valor à string Aux, um de cada vez // Se i mod 3 for 0, acrescenta o '.', desde que o i não seja o último da série (primeiro caracter, graças à inversão. // Isto impede que o . seja acrescentado por exemplo no número 123 (sem o i<>length(valor), ficaria .123 e não 123 if (i mod 3=0) and (i<>length(valor)) then Aux:='.'+Aux; end; "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
allancarlos123 Posted March 4, 2014 at 12:58 AM Author Report #547456 Posted March 4, 2014 at 12:58 AM Eu acrescentei esse código no seu código, mas o valor não ficou pontuado, ficou normal 12345678. Esse código já está pronto, ou você me mostrou o caminho para estudar ele e fazer o resto? grato! begin writeln(valor); end;
nunopicado Posted March 4, 2014 at 10:14 AM Report #547478 Posted March 4, 2014 at 10:14 AM O código era apenas um exemplo, sim... Mas está pronto a funcionar. E não precisa muito para veres que em lado nenhum eu retorno o valor pontuado à variável "valor". O valor já formatado ficou na Aux, pelo que, ou mostras essa, ou tens de passar o conteúdo de aux para a variável valor. 1 Report "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
allancarlos123 Posted March 4, 2014 at 09:36 PM Author Report #547535 Posted March 4, 2014 at 09:36 PM É, funcionou. Só existe esses dois métodos, downto e esse segundo?
nunopicado Posted March 4, 2014 at 09:51 PM Report #547537 Posted March 4, 2014 at 09:51 PM No FreePascal até tens uma função que faz isso automaticamente... Agora, no PZim... Até pode haver, mas desconheço! "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
allancarlos123 Posted March 4, 2014 at 10:46 PM Author Report #547540 Posted March 4, 2014 at 10:46 PM Entendi, então posso colocar tópico resolvido 🙂 Obrigado NUNO!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now