• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

joninho

Arrays - Conceitos básicos

19 mensagens neste tópico

Uma array é uma estrutura de data, que apresenta um ou mais valores numa única variável.

Por ex:

Private Sub Command1_Click()
 Dim aNossaArray(3) As String 'aqui declaramos a nossa array com 3 andares
 aNossaArray(1) = "Olá " 'atribuimos o valor "Olá" ao primeiro andar
 aNossaArray(2) = "tudo " 'atribuimos o valor "tudo " ao segundo andar
 aNossaArray(3) = "bem?" 'atribuimos o valor "bem?" ao terceiro andar
 MsgBox aNossaArray(1) ' vai mostrar no ecrã "Olá"
 MsgBox aNossaArray(1) & aNossaArray(2) & aNossaArray(3) ' aqui juntamos as trÊs e fica "Olá tudo bem?" (sem aspas)
End Sub

Usar um ciclo para apresentar arrays:

Private Sub Command1_Click()
 Dim i As Integer ' variavel contador para o ciclo for...
 Dim aNossaArray(3) As String
 aNossaArray(1) = "Olá "
 aNossaArray(2) = "tudo "
 aNossaArray(3) = "bem?"
 For i = 1 To 3 ' o ciclo vai dar 3 voltas, e vai começar do numero 1 até ao 3 cada volta que o ciclo deia acontece isto: (i = i + 1)
 MsgBox aNossaArray(i) ' e aqui vamos apresentar o andar da array, na primeira volta o i = 1 entao apresenta um MSgBox com o conteudo "Olá" e assim sucessivamente..
 Next
End Sub

agora fazer ler para a array com um ciclo:

Private Sub Command1_Click()
 Dim i As Integer
 Dim aNossaArray(3) As String 'aqui declaramos a nossa array com 3 andares
 For i = 1 To 3
   aNossaArray(i) = InputBox("Insira o valor para o andar " + Str(i)) ' o sistema é o mesmo mas em vex de apresentar os valores, lê os valores...
 Next
 For i = 1 To 3
   MsgBox aNossaArray(i)
 Next
End Sub

estes são os termos básicos de array... (acho eu)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No 2º Exemplo tu nao declaras que ´

For i = 1 To 3
i = i + 1 

por isso

i nao vai ser = a i + 1 i só vai ser i, mas 3 vezes :)

PS: Muito Obrigado pelo Tutorial, eu tinha mal era que nao punha aspas, um erro lamme lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No 2º Exemplo tu nao declaras que ´

For i = 1 To 3
i = i + 1 

por isso

i nao vai ser = a i + 1 i só vai ser i, mas 3 vezes :)

PS: Muito Obrigado pelo Tutorial, eu tinha mal era que nao punha aspas, um erro lamme lol

opa nao precisas de meter o i = i + 1 o proprio ciclo faz isso, a cada volta que dê acrescenta um valo ao i.. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No 2º Exemplo tu nao declaras que ´

For i = 1 To 3
i = i + 1 

por isso

i nao vai ser = a i + 1 i só vai ser i, mas 3 vezes :)

PS: Muito Obrigado pelo Tutorial, eu tinha mal era que nao punha aspas, um erro lamme lol

opa nao precisas de meter o i = i + 1 o proprio ciclo faz isso, a cada volta que dê acrescenta um valo ao i.. :)

Ah ya esquece tava a ver o código de um ponto de vista diferente ... pensava que estavas a dizer que de uma variavel x=1 to 3 i=i + 1 , esquece :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais um promenor dos arrays...

Se por acaso quisermos que o nosso array comesse numa posição especifica e não em zero podemos fazer o seguinte:

Dim aNossaArray(4) as String 'Começa em 0 e vai ate 4, ou seja, tem 5 posições
Dim aNossaArray(10 To 14) as String 'Continua a ter 5 posições mas começa na posição 10 e vai ate a posição 14

           

Podemos tambem fazer arrays dentro de outro array. Por exemplo:

                                                                                                      Posição: 1    2    3  4  5

Num Array normal(aNossaArray(4)) teriamos uma estrotura deste genero ->  |__|__|__|__|__|

                                                                                                                                                                                   

Agora se fizermos "Dim aNossaArray(0 To 4, 0 To 4) as String teremos desntro de cada posição mais 4 posições: 

Posição:  1,0  2,0  3,0 4,0  5,0

            |___|___|___|___|___|

              1,1  2,1  3,1 4,1  5,1

            |___|___|___|___|___|

              1,2  2,2  3,2  4,2  5,2

            |___|___|___|___|___|

              1,3  2,3  3,3  4,3  5,3

            |___|___|___|___|___|

              1,4  2,4  3,4  4,4  5,4

            |___|___|___|___|___|

              1,5  2,5  3,5  4,5  5,5

            |___|___|___|___|___|

O desenho naõ esta grande coisa mas pronto  :-[

Por vezes não sabemos quantos campos vamos necessitar no nosso array, pois bem, o VB6 permite redimencionar um array mesmo depois do programa estar em execução :

Dim aNossaArray() As String
Private Sub Form_Load()
    ReDim Preserve aNossaArray(4)
End Sub

Redim -> Para redimencionar a variavel

Preserve -> Serve para preservar informação que o array contenha. Caso se utilize apenas "ReDim aNossaArray(4)", o array vai ficar "Em Branco"

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais um promenor dos arrays...

Se por acaso quisermos que o nosso array comesse numa posição especifica e não em zero podemos fazer o seguinte:

Dim aNossaArray(4) as String 'Começa em 0 e vai ate 4, ou seja, tem 5 posições
Dim aNossaArray(10 To 14) as String 'Continua a ter 5 posições mas começa na posição 10 e vai ate a posição 14

         

Podemos tambem fazer arrays dentro de outro array. Por exemplo:

                                                                                                      Posição: 1    2    3 4 5

Num Array normal(aNossaArray(4)) teriamos uma estrotura deste genero -> |__|__|__|__|__|

                                                                                                                                                                                 

Agora se fizermos "Dim aNossaArray(0 To 4, 0 To 4) as String teremos desntro de cada posição mais 4 posições: 

Posição:  1,0 2,0  3,0 4,0  5,0

          |___|___|___|___|___|

            1,1  2,1  3,1 4,1 5,1

          |___|___|___|___|___|

            1,2  2,2  3,2  4,2  5,2

          |___|___|___|___|___|

            1,3  2,3  3,3  4,3  5,3

          |___|___|___|___|___|

            1,4  2,4  3,4  4,4  5,4

          |___|___|___|___|___|

            1,5  2,5  3,5  4,5  5,5

          |___|___|___|___|___|

O desenho naõ esta grande coisa mas pronto  :-[

Por vezes não sabemos quantos campos vamos necessitar no nosso array, pois bem, o VB6 permite redimencionar um array mesmo depois do programa estar em execução :

Dim aNossaArray() As String
Private Sub Form_Load()
    ReDim Preserve aNossaArray(4)
End Sub

Redim -> Para redimencionar a variavel

Preserve -> Serve para preservar informação que o array contenha. Caso se utilize apenas "ReDim aNossaArray(4)", o array vai ficar "Em Branco"

cumps

yah, eu kualker dia meto u tutorial mais xeio :D pk tou a dar arrays :thumbsup: e meto metodos de ordenação peskisa, e também como se declara arrays a meio do prog, "redeclara" :) lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sabes-me dizer se da para inicialisar um aray como em C? do tipo -> const unsigned char ArrayTeste[] = "O\L\A";

Em VB6 não sei inicializar um array quando o declaro  :-[

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sabes-me dizer se da para inicialisar um aray como em C? do tipo -> const unsigned char ArrayTeste[] = "O\L\A";

Em VB6 não sei inicializar um array quando o declaro  :-[

cumps

nao, se quiseres inicialisarla com 0 fazes:

dim array(1 to 4) as integer

sub main()

for i = 1 to 4

  array(i) = 0

next

end sub

precebes o codigo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim perfeitamente :D

se for para strings, inicias com "" em vex de 0 :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só é pena é não dar para fazer como em C++ por exemlpo :S

Se quiser inicializar o array com uma letra em cada Campo não sou capas, tenho de fazer assim:

ArrayTeste(0) = "O"

ArrayTeste(1) = "L"

ArrayTeste(2) = "A"

E se for uma string mt grande não é nada bonito estar a fazer issu uma a uma  :rant_01:

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só é pena é não dar para fazer como em C++ por exemlpo :S

Se quiser inicializar o array com uma letra em cada Campo não sou capas, tenho de fazer assim:

ArrayTeste(0) = "O"

ArrayTeste(1) = "L"

ArrayTeste(2) = "A"

E se for uma string mt grande não é nada bonito estar a fazer issu uma a uma  :rant_01:

cumps

como é que fasias em c++?

opa poder podes, axo eu, se for o que tou a pensar

se for uma array tipo  array(1 to 100) as string

for i = 1 to 100

  array(i)= Inputbox("Introduza o conteudo da variavel")

next

e inseres um carater para cada posiçao...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL...

joninho Assim dá mas se for uma string mt grande... Eu queria era algo deste tipo ->  static char name1[ ] = { 'O', 'L', 'A' }; , mas não sei fazer em VB6, e tenho as mionhas duvidas que dê, ja procurei e aparece mas é pra .NET

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL...

joninho Assim dá mas se for uma string mt grande... Eu queria era algo deste tipo ->  static char name1[ ] = { 'O', 'L', 'A' }; , mas não sei fazer em VB6, e tenho as mionhas duvidas que dê, ja procurei e aparece mas é pra .NET

cumps

opa, mas isso :\ nao sei :\ sorry :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NuGuN não sei para que queres declarar uma string dessa maneira quando podes fazer isso com uma variável do tipo String, de qualquer modo podes fazer o seguinte:

Dim a As Variant
Dim b As Variant

Private Sub Command1_Click()

a = Array("O", "L", "A")
b = Array("Forth", Form1.Command1.Caption, Year(Date), "Visual Basic", 34.676, "Java", 76, 954, "Cobol", Time, "ADA")

For i = 0 To UBound(a) Step 1
   Print a(i);
Next i

For i = 0 To UBound(b) Step 1
   Print , b(i)
Next i

End Sub

Cyas :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

DFFSGSDF

Mais um promenor dos arrays...

Se por acaso quisermos que o nosso array comesse numa posição especifica e não em zero podemos fazer o seguinte:

Dim aNossaArray(4) as String 'Começa em 0 e vai ate 4, ou seja, tem 5 posições
Dim aNossaArray(10 To 14) as String 'Continua a ter 5 posições mas começa na posição 10 e vai ate a posição 14

           

Podemos tambem fazer arrays dentro de outro array. Por exemplo:

                                                                                                      Posição: 1    2    3  4  5

Num Array normal(aNossaArray(4)) teriamos uma estrotura deste genero ->  |__|__|__|__|__|

                                                                                                                                                                                   

Agora se fizermos "Dim aNossaArray(0 To 4, 0 To 4) as String teremos desntro de cada posição mais 4 posições: 

Posição:  1,0  2,0  3,0 4,0  5,0

            |___|___|___|___|___|

              1,1  2,1  3,1 4,1  5,1

            |___|___|___|___|___|

              1,2  2,2  3,2  4,2  5,2

            |___|___|___|___|___|

              1,3  2,3  3,3  4,3  5,3

            |___|___|___|___|___|

              1,4  2,4  3,4  4,4  5,4

            |___|___|___|___|___|

              1,5  2,5  3,5  4,5  5,5

            |___|___|___|___|___|

O desenho naõ esta grande coisa mas pronto  :-[

Por vezes não sabemos quantos campos vamos necessitar no nosso array, pois bem, o VB6 permite redimencionar um array mesmo depois do programa estar em execução :

Dim aNossaArray() As String
Private Sub Form_Load()
    ReDim Preserve aNossaArray(4)
End Sub

Redim -> Para redimencionar a variavel

Preserve -> Serve para preservar informação que o array contenha. Caso se utilize apenas "ReDim aNossaArray(4)", o array vai ficar "Em Branco"

cumps

yah, eu kualker dia meto u tutorial mais xeio :P pk tou a dar arrays ;) e meto metodos de ordenação peskisa, e também como se declara arrays a meio do prog, "redeclara" :) lol

Boas pessoal

ando agora a programar em VB6.0 e como final de periodo eu i um colega meu propose-mos ao nosso prof como projecto final fazer o jogo das Damas. Au qual conseguimos responder ate agora a todas as dificuldades.

Mas agora encaramos com um grave problema  :S nao conseguimos fazer um array que dê para fazer o movimento da peça :s ou seja temos um array mx esta a fazer a contagem na vertical :S ou seja 1;2;3;4...etc . e o tipo de array pretendido é como esse ai no exemplo.

Vou aqui deixar a parte do codigo onde tem de ser aplicado o Array

'========Ciclo para Criar para por peças Tabuleiro========'
For i = 1 To 8
For x = 1 To 8
Load peca1(imagenumero)
  '============================================='
  '============================================='
  peca1(imagenumero).Width = 855
  peca1(imagenumero).Height = 855
  peca1(imagenumero).Top = 200 + (855 * x)
  peca1( imagenumero).Left = 855 + (855 * i)
  peca1( imagenumero).Visible = True
  peca1(imagenumero).Stretch = True
  imagenumero = imagenumero + 1
  Next x
  Next i

Pontos esta aqui e espero que me possam ajudar :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

Não sei se percebi bem o que queres... Se o que queres é um array para guardar as posições das peças então imagina que o tabuleiro tem 10 quadrados e largura e 10 quadrados de comprimento. Para isto crias um array de 10x10 - dim varArray(9,9) - é 9 e não 10 porque começa do zero.

Para guardares a posição 3 em largura e 7 em comprimento farias isto -> varArray(2, 6) = ....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora