Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

Protheus :: Advpl :: Google maps :: Localizando o endereço mais próximo

Tempos atrás alguém me pediu uma ajuda para resolver um problema da Kasinski: Enviar, a seus clientes, carta informando sobre o “Recall” de suas motos contendo, no máximo, o endereço de três concessionárias próximas à sua localidade (CEP).

Bastou entender a regra de formação do CEP e o problema foi facilmente resolvido. Ia usar a carta como exemplo, mas, como perdi o contato com a pessoa, reescrevi o código, agora usando o Google maps.

A idéia básica é a seguinte: Informe o CEP de sua localidade e encontre o(s) endereço(s) mais próximo(s). Para o “Recall” da Kasinski havia usado o Código de Endereçamento Postal das Concessionárias. No exemplo que segue, e, considerando que se trata de ADVPL, vou usar alguns endereços da TOTVS (obtidos a partir do link canais).

Vamos imaginar o seguinte. Estou na Rua São João, no Centro de Niterói (CEP 24020-040) , e quero achar a TOTVS mais próxima. Informo o meu CEP e…

image

image

Se encontrei correspondente(s)…

image

Apresento(-os). O mais próximo na Cidade do Rio de Janeiro e no Mesmo Estado

image

e, como segunda opção… Vitória, no Espírito Santo.

image

Os Códigos de Endereçamentos Postais de referência, estão, no exemplo, armazenados em um arquivo CSV delimitado por “|” (pipe), mas poderiam ser uma Tabela do sistema, um arquivo XML ou qualquer outra forma de armazenamento.

No exemplo anterior, considerando que estava em Niterói, uma cidade do Rio de Janeiro, o endereço mais próximo era a TOTVS/Microsiga Rio. Imaginando, agora, que a minha localidade é em algum lugar de São José do Rio Preto (SP) cujo CEP seja 15015-000, qual a TOTVS mais próxima? Vamos procurar.

image

image

Vou encontrar  três endereços. O mais próximo em São José do Rio Preto

image

o segundo, pela ordem de proximidade e considerando a regra de formação do CEP em Campinas

image

e finalmente, e, bem distante, em São José dos Campos.

image

O Algoritmo para a localização do CEP, baseado nas regras dos Correios, é bem simples:

image

Para obter o código completo, clique aqui

As dependências para o funcionamento do exemplo poderão ser obtidas em:

Protheus :: Herança de Classe em Advpl ( Derivando fTdb à partir da classe fT ) : para a Classe fTdb e;

Protheus :: ADVPL : Class TFINI Manipulando valores de um arquivo de configuração (*.INI): para a Classe TFINI.

[]s

иαldσ dj

Comentários

  1. Não consegui baixar, parece que googleDocs mudou algo!!

    ResponderExcluir
  2. O link estava "quebrado". Corrigi o mapeamento do arquivo para "Download" e aproveitei a deixa para incrementar a função de busca de CEP uma vez que a primeira versão que apresentei era, digamos, "Tendenciosa".

    []s

    иαldσ dj

    ResponderExcluir
  3. Agora sim,
    mostra a cobra e mata o pau!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas