Pular para o conteúdo principal

Postagem em destaque

BalckTDN :: LeetCode :: Container With Most Water (Harbour & TLPP)

_Créditos das imagens: ChatGPT_ # LeetCode :: Container With Most Water (Harbour & TLPP) O problema [**"Container With Most Water"**](https://leetcode.com/problems/container-with-most-water/), do LeetCode, requer encontrar o maior volume de água que pode ser contido entre duas linhas verticais em um gráfico. O desafio está em otimizar a busca para que a solução seja eficiente, preferencialmente em \(O(n)\). ### Descrição do Problema Dado um array de inteiros \(height\), onde cada elemento representa a altura de uma linha vertical no gráfico: 1. Escolha duas linhas para formar as paredes de um contêiner. 2. O volume de água que o contêiner pode conter é determinado pelo menor dos dois valores entre as alturas escolhidas multiplicado pela distância entre elas. O objetivo é retornar o maior volume de água que pode ser armazenado. ### Exemplo Para \(height = [1,8,6,2,5,4,8,3,7]\): - O maior volume de água possível é \(49\), formado pelas alturas \(8\) e \(7\), com di...

BlackTDN :: ADVPL ~ Class TFTPClient : Combo IV (O Destrinchar Parte 2)

pergaminhos… Continuação: BlackTDN :: ADVPL ~ Class TFTPClient : Combo III (O Destrinchar Parte 1).

Diretiva #xTranslateUma mera formalidade, uma vez que poderia ter criado uma User Function. Ou uma Function U_<f>.

User Function f() é traduzida, pelo pré-processador, para  u_f(). Lembrando que uma função retorna valor e uma procedure não (demonstrado como compatibilidade histórica) na realidade, no Protheus não existe a distinção entre Função e Procedure (1).

 

Observemos o conteúdo do arquivo de cabeçalho “protheus.ch”

Detalhe #xtranslate : Protheus.ch Algumas diretivas de tradução para o pré-processador encontradas no arquivo de cabeçalho “protheus.ch”. Dentre elas:

#xtranslate USER Function <cNome> => Function U_<cNome>

Para corroborar a afirmativa em (1) observe o seguinte fragmento de código:

Protheus : IDE : Erro de Compilação

O espaço de nomes é o mesmo: Seja uma Function ou uma Procedure. Se tentarmos compilar o código ocorrerá a seguinte exceção:

Compilando arquivos...
   c:\temp\xprocname.prw...
   (no projeto FTPSample)
Erro de compilação:  XPROCNAME.PRW(5)   C2021 Redefinition of function U_XPROCNAME


Processo interrompido por erro FATAL de compilação.

Compilação finalizada - 1 arquivo(s) - 1 mensagem(s)

Tempo de duração da compilação: 3 segundos




Ao ajustarmos o código. Deixando cada uma com o seu devido nome e executarmos:

Protheus : IDE : Procedure e Function

Teremos os seguintes resultados:

User Function fProcName() User Procedure pProcName()
u_fProcName() u_pProcName()
U_FPROCNAME U_PPROCNAME




   1: #include "protheus.ch"
   2: #xtranslate USER PROCEDURE <p> => PROCEDURE U_<p>
   3: User Function fProcName()
   4: Return(ProcName())
   5: User Procedure pProcName()
   6: Return(ProcName())









… continua

[]s
иαldσ dj

Comentários

Postagens mais visitadas