Descobrindo Algarismo Romano

Veja neste artigo que tem como objetivo mostrar como podemos descobrir o Algarismo Romano a partir de um determinado número.

Olá galera, vamos a este artigo que tem como objetivo mostrar como podemos descobrir o Algarismo Romano a partir de um determinado número.

Vamos iniciar incluindo em nossa classe do formulário uma function chamada ValorParaRomano.

Veja sua declaração como deveria ficar.

Listagem 1: Declaração da function ValorParaRomano type TForm1 = class(TForm) private { Private declarations } function ValorParaRomano(pValor: Integer): string; public { Public declarations } end; Neste momento vamos implementar a mesma usando o CTRL + SHIF + C, em cima da declaração.

Objetivo: Implementar a function que irá fazer a conversão do formato de número para Algarismo Romano.
Listagem 2: Implementação da function ValorParaRomano function TForm1.ValorParaRomano(pValor: Integer): string; const Numeros: array[1..13] of Integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000); Romanos: array[1..13] of string = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M'); var i: Integer; begin Result := ''; for i := 13 downto 1 do while (pValor >= Numeros[i]) do begin pValor := pValor - Numeros[i]; Result := Result + Romanos[i]; end; end; Com a nossa functiona criada, vamos precisar agora incluir em nosso formulário um TButton, e um TMemo. Coloque ambos em qualquer parte do seu formulário, não vamos nos prender ao Layout neste momento.

Veja como a classe agora esta ficando.

Listagem 3: Inclusão do TMemo e do TButton type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private function ValorParaRomano(pValor: Integer): string; { Private declarations } public { Public declarations } end; Agora para que o exemplo esteja completo, vamos ao evento onClick do nosso TButton, e testar a nossa function adicionando o resultado obtido no TMemo, adicionando anteriormente.

Listagem 4: Implementação do evento onClick do TButton procedure TForm1.Button1Click(Sender: TObject); begin with Memo1.Lines do begin Clear; Add('15 = ' + ValorParaRomano(15)); Add('986 = ' + ValorParaRomano(986)); Add('1000 = ' + ValorParaRomano(1000)); end; end; Com este código podemos facilmente converter qualquer valor para romano sem dor de cabeça, e sem tabela para fazer a formatação do valor final. Fico por aqui e até a próxima.

Um abraço
Wesley Y
www.lithic.com.br
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados