Desenvolvimento de um programa ABAP para conversão bidirecional entre números arábicos e romanos. O programa oferece:
- Conversão de números arábicos para romanos
- Conversão de números romanos para arábicos
- Interface simples com campo de entrada
- Opção de escolha do tipo de conversão
O programa utiliza uma tabela de referência com valores correspondentes para cada número. A implementação é feita através do método constructor:
method constructor .
referencia =
value #(
( arabico = 1 romano = 'I' )
( arabico = 5 romano = 'V' )
( arabico = 10 romano = 'X' )
( arabico = 50 romano = 'L' )
( arabico = 100 romano = 'C' )
( arabico = 500 romano = 'D' )
( arabico = 1000 romano = 'M' )
) .
loop at referencia assigning field-symbol(<line>) .
* Item anterior
data(index) = sy-tabix - 1 .
read table referencia into data(line) index index .
if sy-subrc eq 0 .
<line>-anterior = line-romano .
endif .
* Próximo item
index = index + 2 .
read table referencia into line index index .
if sy-subrc eq 0 .
<line>-proximo = line-romano .
endif .
endloop.O objetivo principal foi desenvolver um algoritmo próprio para conversão, sem utilizar rotinas existentes, demonstrando a capacidade de criar soluções personalizadas.
Infelizmente não passei na entrevista devido a uma divergência de aplicação de técnica ABAP em Tabelas Internas, que eu ainda insisto que a pessoa que me entrevistou estava um pouco desatenta aos seus próprios códigos.
- Implementação inicial focada na funcionalidade básica
- Possibilidade de melhorias futuras aplicando o SRP — Princípio da Responsabilidade Única
- Código desenvolvido originalmente para uma entrevista técnica