Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código

_Créditos das imagens: ChatGPT **Título:** LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código **Introdução** Olá, entusiastas de Harbour/xBase e desafios de programação! Depois de explorarmos como mesclar duas listas ordenadas no [nosso post sobre o LeetCode 21](https://www.blacktdn.com.br/2025/03/blacktdn-leetcode-21-merge-two-sorted.html), vamos dar um passo adiante e enfrentar um problema um pouco mais complexo: o LeetCode 23 - Merge K Sorted Lists. Neste artigo, vamos desvendar uma implementação em Harbour/xBase para este desafio, demonstrando como podemos inteligentemente reutilizar a solução que já construímos para o problema 21. Veremos como a modularidade e a construção sobre soluções anteriores podem simplificar problemas mais complexos. **O Problema: LeetCode 23 - Merge K Sorted Lists** O desafio é o seguinte: dado um array (`aLists` em nossa implementação) contendo `k` listas encadeadas, onde cada lista já está ordenada em ordem cres...

Protheus :: Programação Básica em Advpl “Combo XV”

O último operador que examinaremos é o $ ( contido em ). Use-o para verificar se uma string está contida em outra. Por exemplo, para constatar se a variável de memória de caractere isolado cTipoPeca é R, D, ou b, podemos escrever:

IF cTipoPeca $ “RDB”
...

Para verificar se uma variável de memória de dois caracteres é “PR”, “SP”, ou “AM”, escreva:

IF cEstado $ “PR_SP_AM”
...

Obs.: Os separadores “_” são necessários para invalidar combinações, como “RS” e “PA” que são estados válidos.

Dica: Use o operador $ ao invés de várias condições separadas. Ex.:

Do Case
Case cEstado == “PR” ; Execute(“PR”)
Case cEstado == “SP” ; Execute(“SP”)
Case cEstado == “AM” ; Execute(“AM”)
EndCase

Poderia ser escrito como

IF ( cEstado $ “PR_SP_AM” )
Execute(“PR_SP_AM”)
EndIF

Expressões condicionais:

IIF() ou IF() é uma expressão condicional. São abreviações de uma simples seqüência de IF/ELSE/ENDIF. Por exemplo, para encontrar o mínimo de a e b, poderíamos escrever:

nMinimo := IIF( a < b , a , b )
ou
nMinimo := IF( a < b , a , b )

que seria equivalente a escrever:

IF ( a < b )
nMinimo := a
Else
nMinimo := b
EndIF

As vantagens de IIF() e/ou IF() é que se acomodam em qualquer lugar em que uma expressão possa estar ( incluindo blocos de codificação ) e gera menos codificação.

Comentários

Postagens mais visitadas