Notifications
Clear all

O que é um ARRAY?

15 Posts
4 Usuários
0 Reactions
1,744 Visualizações
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Boa tarde povo

Pelo amor de Deus, alguém poderia me explicar o que é um Array? Em linguagem bem didática? rs
Se possível, um exemplo prático! Vejo isso no fórum direto e nunca consigo discernir pelos exemplos.

Obrigado

 
Postado : 21/06/2017 10:27 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

leandroxtr,

Boa tarde!

Até onde vai o meu conhecimento, um Array é um conjunto de posições de memória ou variáveis do mesmo tipo que você acessa através do uso de um índice, começando na posição zero e indo até a posição indicada. Ou seja, é uma matriz, que pode ser unidemensional ou bidemensional e que serve para armazenar dados do mesmo tipo.
Exemplo:

'Matriz unidimensional que armazena 6 nomes
Dim NomeClientes (5) as String
'Para preencher ou acessar dados de uma Matriz, você deve utilizar um laço, tipo:
'Supondo que o nome dos clientes esteja na coluna A, da linha 1 até a lioha 6
Linha = 1
For i = 0 to 5
     NomeClientes(i) = Range("A" & Linha).Value 
     Linha = Linha + 1
Next
 
Postado : 21/06/2017 10:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde leandroxtr,

Didaticamente falando não sei muito bem explicar...
Mas é como se fosse uma matriz no VBA.

No Excel, se você digitar:

A1 = 	A
A2 = 	B
A3 = 	C
A4 = 	D
A5 = 	E
A6 = 	F
A7 = 	G
A8 = 	H
A9 = 	I
A10 = 	J

E digitar em uma célula qualquer:

=A1:A3

e ainda editando essa célula, pressionar <F9>, verá que ele vai converter em uma matriz.
{"A";"B";"C";"D";"E";"F";"G";"H";"I";"J"}

Essa Matriz você pode exibir o valor que desejar utilizando a função =Índice()
Para escolher o primeiro valor da matriz:

=índice({"A";"B";"C";"D";"E";"F";"G";"H";"I";"J"};1)

Para escolher o sétimo valor da matriz:

=índice({"A";"B";"C";"D";"E";"F";"G";"H";"I";"J"};7)

No VBA ficaria assim:

myarray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")

Um exemplo para exibir um msgbox mostrando o primeiro valor da matriz:

Sub teste()
Dim myarray

    myarray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")

    MsgBox myarray(0)
    
End Sub

'Um exemplo para exibir um msgbox mostrando o sétimo valor da matriz:

Sub teste2()
Dim myarray

    myarray = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")

    MsgBox myarray(6)
    
End Sub

Lembrando que na programação a contagem não inicia em 1. Se inicia em 0.

Bom, não sei se sou muito bom com explicações, mas é mais ou menos isso.

Qualquer coisa da o grito.
Abraço

 
Postado : 21/06/2017 10:57 am
(@edcronos2)
Posts: 0
New Member
 

complementando a resposta

tipo uma planilha é um exemplo de array
os dados não necessariamente precisa ser do mesmo tipo , mas sendo do mesmo tipo dá para controlar melhor o espaço usado
uma array tem uma base
no vba se pode definir essa base
tipo Arr(10 to 200), no caso vai começar em 10
se colocar Arr(200) vai ser de 0 até 200 oq dá 201 elementos

array de 2 dimensões
Arr(1 to 10, 1 to 20)
seria dizer que é uma range de 10 linhas x 20 colunas >>>Arr(Linha,Coluna)
todo array para trabalhar diretamente com ranges de planilha tem que ser Base 1 e ser de 2 dimensões

uma array de 3 ou mais dimensões é algo como Arr(X,Y,Z)
vc pode imagina algo como um cubo ou uma pasta de trabalho com varias abas
as linhas o X , as colunas o Y e as abas seriam a o Z,

deve ficar mais facil entender

 
Postado : 21/06/2017 11:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Puts, mais fácil edcronos?
kkkkkkkkkkkkk

Pra quem não sabe o que diabos é array vai entender isso mais fácil de cara?
Você é deslocado mesmo cara...
:lol: :lol: :lol: :lol:

 
Postado : 21/06/2017 11:12 am
(@edcronos2)
Posts: 0
New Member
 

se o cara sabe usar uma planilha sim fica facil

cells(Linha, coluna)

seria como elemento da array

range(cells(linha inicial ,coluna inicial ), cells(linh final, coluna final))

seria como a array completa
tanto que para atribuir valores de uma range numa array e vice versa se usa o mesmo conceito

 
Postado : 21/06/2017 11:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Agora sim...

Acho que fica mais didático utilizar esses exemplos e assimilações para mostrar como é...
Só o seu primeiro comentário não acho mais fácil não (didaticamente falando)...

Mas realmente... É basicamente isso.... Não tem segredo.

 
Postado : 21/06/2017 11:20 am
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Valeu demais galera!

Está perfeito, entendi muito bem do que se trata.

Facilita demais quando se tem que declarar muitas variáveis. Ou até mesmo quando elas são dinâmicas.

Valeu pela força ae!!!

 
Postado : 21/06/2017 11:21 am
(@edcronos2)
Posts: 0
New Member
 

o meu primeiro comentario foi para complementar as respostas de vc´s

Re: O que é um ARRAY?

Mensagempor edcronos2 » Qua Jun 21, 2017 3:09 pm
complementando a resposta

 
Postado : 21/06/2017 11:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mas é aquele negócio Leandroxtr,

Entender a explicação do professor é uma coisa. Na hora da prova parece que não é a mesma coisa....
Porém, no dia da devolução da prova e correção você vê que errou por bobeira e que era fácil novamente....
O segredo é a prática...

Qualquer coisa da o grito.
Abraço

 
Postado : 21/06/2017 11:24 am
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Eu entendi a resposta dele, Bernardo. kkkkkkk

É bom ter esta opção de declarar array, pois evita erros com o primeiro valor atribuído na array (0).
Desta forma podemos fazer:

Dim arr(1 to ''vrdesejado'') as ''dimensão desejada'' para não começar no zero.

Valeu demais

 
Postado : 21/06/2017 11:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

o meu primeiro comentario foi para complementar as respostas de vc´s

Re: O que é um ARRAY?

Mensagempor edcronos2 » Qua Jun 21, 2017 3:09 pm
complementando a resposta

Realmente... :D

 
Postado : 21/06/2017 11:25 am
(@edcronos2)
Posts: 0
New Member
 

Facilita demais quando se tem que declarar muitas variáveis. Ou até mesmo quando elas são dinâmicas.

cuidado, variaveis tem um conceito individual , arrays são para "conjuntos" de dados
claro que dá para montar valores de controle dentro de uma array e fazer varredura mas pode atrapalhar ao escrever a rotina

 
Postado : 21/06/2017 11:27 am
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Verdade.

Mas fazer uma rotina com For + Array deve ser uma delícia. kkkk

 
Postado : 21/06/2017 11:29 am
(@edcronos2)
Posts: 0
New Member
 

sim, minhas rotinas são praticamente todas desses tipo

mas tem que ter cuidado com funções para array, muitas só aceitam base 0 e tipo definido
tipo o split é base zero e tipo texto
arr= array(1,2,3,4,5,6)´é base 0 e não dá para mudar
então na hora de escrever funções e macros tem que saber se só vão trabalhar com base 1 ou com tipos variados
mas se pode usar Ubound e Lbound para saber as dimensões e as bases

 
Postado : 21/06/2017 11:34 am