Pular para o conteúdo principal

Postagem em destaque

BlackTDN NEWS :: 2025.02.17 :: 22:53:04

_Créditos das imagens: ChatGPT # Challenger 3: tanque britânico precisa de IA para combater drones, aponta relatório **Fonte:** Tecmundo.com.br **Autor:** André Luiz Dias Gonçalves **Publicado em:** 2025-02-17T11:00:00Z ![Imagem](https://tm.ibxk.com.br/2025/02/14/14211125639006.jpg?ims=1200xorig) > Modelo de última geração que será utilizado pelo Exército Britânico a partir deste ano, o tanque Challenger 3 recebeu várias melhorias, garantindo maior mobilidade, poder de fogo e proteção no campo de batalha. No entanto, as adições podem não ser suficientes… [Leia mais](https://www.tecmundo.com.br/seguranca/402613-challenger-3-tanque-britanico-precisa-de-ia-para-combater-drones-aponta-relatorio.htm) --- # Uso exagerado de fones com cancelamento de ruído ativo pode gerar transtornos, suspeitam médicos **Fonte:** Tecmundo.com.br **Autor:** Igor Almenara Carneiro **Publicado em:** 2025-02-17T20:30:00Z ![Imagem](https://tm.ibxk.com.br/2025/02/17/17141315227128.jpg?ims=1200xorig) ...

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

Arrays Multidimensionais:

Examine a seguinte declaração de um array bidimensional:

Local aValores[ 3 , 2 ]

/*/
que também pode ser declarado como:
Local aValores := Array( 3 , 2 )
Local aValores := { { NIL , NIL } , { NIL , NIL } , { NIL , NIL } }
Local aValores := { Array( 2 ) , Array( 2 ) , Array( 2 ) }
/*/

Em Advpl essa(s) declaração(ões) serão implementadas como um array de três elementos do tipo array e cada array com dois elementos ( onde os valores iniciais são NIL )

Podemos testar da seguinte forma


ValType( aValores ) //A
Len( aValores ) //3
ValType( aValores[1] ) ) //A
Len( aValores[1] ) //2
aValores[1,1] //NIL
ValType( aValores[1,1] ) //U

Conforme demonstrado acima, aValores é uma referência a um Array de Três elementos, em que cada elemento é uma referência à outra array de dois elementos.


Cada elemento de aValores é simplesmente outro array e podemos testá-lo dessa forma. Por exemplo, para localizar aValores[1] passe-o para a função aScan(), como em:

nPos := aScan( aValores[1] , { |x| x == “Naldo” } )

Para classificar aValores[2], passe-o para aSort() com:

aSort( aValores[2] )

ou

aSort( aValores[2] , NIL , NIL , { |x,y| x < y } )

Abaixo segue a estrutura de memória de um array bidimensional.


É possível referenciar um elemento do array aValores como aValores[1,1] ou aValores[1] mas, aValores[ , 1 ], apesar de não ocasionar erro durante a compilação gerará erro durante a execução. Isso significa que não podemos classificar, localizar ou selecionar colunas diretamente de um array bidimensional.

Nota: Em Advpl os Arrays Multidimensionais são implementados como Arrays de Arrays.

Comentários

Postagens mais visitadas