Página 1 de 1

usando Eaval() com matriz dimensional

Enviado: 25 Nov 2021 23:25
por Nascimento
amigos teria como eu usar o eaval() neste caso aqui?

aArray{{"idade".40}}
Como usar o eaval para quando achar idade ele mudar para 41 por exemplo
e se sim teria como exemplificar como eu faria?



att: Nascimento

usando Eaval() com matriz dimensional

Enviado: 26 Nov 2021 04:02
por Jairo Maia
Nascimento escreveu:Como usar o eaval para quando achar idade ele mudar para 41 por exemplo
Sim, tem. Mas o que não entendi é como tratar os dados, se 40 coloca em outra matriz? Não deu pra entender qual o objetivo, sem isso, não dá prá exemplificar. Se puder ser mais claro ajuda.

usando Eaval() com matriz dimensional

Enviado: 26 Nov 2021 10:50
por JoséQuintas
É que tentando imaginar a finalidade, a questão parece esquisita.

Código: Selecionar todos

cTexto := "idade"
nValor := 41
AEval( aArray, { | e | iif( e[ 1 ] == cTexto, e[2] := nValor, Nil ) } )
Se é um array com os dados de um cadastro/tabela, talvez seja mais interessante usar HASH, e ir direto no registro.

Código: Selecionar todos

aArray[ "idade" ] := 41
Pensando nas possibilidades, imagino que seja pra algo assim.

usando Eaval() com matriz dimensional

Enviado: 26 Nov 2021 13:39
por JoséQuintas
Talvez ajude a entender melhor....

Código: Selecionar todos

aArray{{"idade".40}}
Array é uma lista, mas aí é "uma dentro da outra".

Então, é uma lista contendo listas, esta é a lista principal

Cada sublista contém nome e número, o primeiro (1) é nome e o segundo (2) é número.

AEval() vai passar pela lista principal, e olhar cada sublista

Código: Selecionar todos

AEVal( aLista, { | e | .... } )
acima o | e | representa cada sublista
Lembrando: 1=nome, 2=número, então e[ 1 ] contém nome, e e[ 2 ] contém número

Código: Selecionar todos

| e | iif( e[ 1 ] = "idade", e[ 2 ] := 41, Nil )
E foi isso.
É só esquecer a complicação da programação, e pensar no dia a dia, numa lista do dia a dia.

Eu já comentei isso: TUDO no computador vém se tornando mais "humano".
Quem é do tempo do binário, 0 e 1, fica pensando em 0 e 1, e se complica sozinho.
Criança sabe mexer no celular porque é só apontar o dedo, nem precisa saber ler, basta apertar o dedo no desenho.
Quem é do tempo do binário, fica tentando ler, tentando achar explicação pra o que apertar, mas criança apenas aperta: deu certo então é aquele

Essas coisas de array, codeblock, hash, etc. podem até parecer complicadas....
Mas tudo depende de encontrar alguma coisa pra fazer comparação, que torne mais simples entender.
Talvez essa seja interessante pra array:

Array é simplesmente uma lista. normal, bidimensional, multidimensional..... não importa.... array é simplesmente uma lista.

E o que tem nessa lista?
tem primeiro (1), segundo (2), terceiro (3).... etc.

E o que tem no primeiro(1) ?
Pode ser número, string, ou uma nova lista

Código: Selecionar todos

array[1][2]
O que tem de complicado acima?
É tratar uma coisa de cada vez.

array = é uma lista
array[1] = é o primeiro elemento dessa lista
array[1][2] = podemos deduzir que o primeiro elemento contém uma sublista, e isso representa o segundo(2) dessa sublista.

Vamos comparar com outra coisa do dia a dia:

- você vai no mercado, coloca tudo numa sacola, a sacola A - isso é um array, uma sacola com vários produtos
- só que tem mais coisas, pega outra sacola, coloca coisas nessa sacola B - isso é outro array, uma sacola com vários produtos
- só que não quer 2 sacolas, então pega outra, e coloca tudo dentro, seria a sacola C - pronto, um array bidimensional.

Temos uma sacola C, ela é o array bimensional, é uma lista que contém duas sacolas A e B (ou 1 e 2)

sacola A = { tomate, feijao }
sacola B = { açúcar, sal }
sacola C := { sacola A, sacola B }
sacola C = { { tomate, feijao }, { açúcar, sal } }

sacolaC[ 1, 1 ] = tomate
sacolaC[ 1, 2 ] = feijao

sacolaC[ 2, 1 ] = açúcar
sacolaC[ 2, 2 ] = sal

Só tomem cuidado pra não ir no mercado e ficar falando de array, senão vão dizer que estão malucos kkkk
falar pro empacotador: coloque a gelatina no array 2 kkkkk

E com isso, o que seria algo avançado da programação, é mais outra coisa do dia a dia.

usando Eaval() com matriz dimensional

Enviado: 26 Nov 2021 14:44
por JoséQuintas
Também podemos considerar cada sacola do mercado como multidimensional.
O que tem na sacola:

Código: Selecionar todos

{
{ "tomate", "2KG" },
{ "feijão", "1KG" }
}
Voltar à definição simples: é uma lista
Cada item dessa lista contém nome e quantidade - nome e quantidade faz parte de uma sub-lista - uma lista de informações.

Vixe....
Podemos considerar que a sacola de mercado é um array, um DBF com 2 campos, ou que os produtos são uma classe com duas propriedades.

Uma sacola de mercado parece que tem tudo de programação.

Como eu disse antes, são coisas que fazem parte do dia a dia, apenas alguém foi tendo idéias sobre como representar isso na programação, de uma forma mais "humana".
O que era um array bidimensional, poderia virar um array de classes, pra ficar mais humano.
lista de produtos, onde cada produto tem produto:Nome, produto:Quantidade

Podemos expandir para o #define também

Código: Selecionar todos

#define P_NOME 1
#define P_QTDE 2
produto[ P_NOME ] // ao invés de produto[ 1 ]
produto[ P_QTDE ] // ao invés de produto[ 2 ]
É louco mas é sensacional:
uma sacola de mercado serviu pra mostrar o que é array, pra que serve #define, o que é classe
e que a evolução de classe, nada mais é do que a programação mais do jeito "humano".
E que facilita o jeito humano: produto:Nome, produto:quantidade, ou produto[ P_NOME ], produto[ P_QTDE ], ao invés de produto[1], produto[2]

Eu sabia que em sacola de mercado cabia bastante coisa, até livros, mas ... que cabe lição de programação, e mostra a evolução de linguagem de programação, só percebi agora.