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

dlemos

Visual basic - arrays

7 mensagens neste tópico

Viva

Sou um programador novato em VisualBasic e deparei-me com algumas dúvidas, talvez vocês me possam ajudar=)

Há algum comando para fazer delete a uma determinada posição i de um array, do género

delete(nome_do_array(i))

?

Penso que em C++ era assim agora em VB não sei...já agora há alguma maneira de obter a dimensão de um array? ou seja, fazendo dim(array) ele retorna o nº de elementos do array.

Já procurei em vários sítios e não encontrei nada..

Desde já agradeço qualquer ajuda..

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Num array acho que não, mas podes usar uma List ou ArrayList e já consegues usar o .Remove acho eu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas posso então usar uma lista em vez de um array, é o mesmo?

como faço para declarar uma lista?

o meu problema é que tenho um array ordenado do maior valor para o menor, e queria que eliminasse os elementos repetidos...o que eu estava a pensar fazer era algo do género:

for i=1 to 10

      for j=i+1 to 10

          if array(j) = array (i) then

          delete array(j)

          end if

      next j

next i

Agora se esse comando não existir ... :cheesygrin:

é possível manipular uma lista como um vector, do género ,

for i=1 to 10

      for j=i+1 to 10

          if Nome_da_lista (j) = Nome_da_lista (i) then

          delete Nome_da_lista (j)

          end if

      next j

next i

?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isto que estas a fazer é algum tipo de exercício ou estas à procura da solução para um determinado problema? É que se for exercício, a minha sugestão não serve de nada... Se for algum problema que tens de resolver, depende do que realmente queres fazer para saber qual a melhor estrutura de dados.

Mas experimenta usar o ArrayList, deve ser suficiente:

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é um exercício, faz parte de um problema que tenho que resolver, e torna-se necessário retornar um vector de valores ordenados para uma série de cálculos posteriores.

Ok obrigado, vou tentar as arraylist e depois digo algo, cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que pretendes tem um nome, chama-se bubblesort é um metodo de ordenação, pesqiosa pela net que de certeza vais encontrar, mas é algo assim do genero:

Private Sub BubbleSort(sArr1() As String, sArr2() As String)
Dim iCount     As Integer
Dim i          As Integer
Dim j          As Integer
Dim strTemp    As String

   iCount = UBound(sArr1)
   For j = 0 To iCount - 1
      For i = 0 To iCount - 1
         If sArr1(i) > sArr1(i + 1) Then
            strTemp = sArr1(i + 1)
            sArr1(i + 1) = sArr1(i)
            sArr1(i) = strTemp
            strTemp = sArr2(i + 1)
            sArr2(i + 1) = sArr2(i)
            sArr2(i) = strTemp
            DoEvents
         ElseIf sArr1(i) = sArr1(i + 1) Then
            If sArr2(i) > sArr2(i + 1) Then
               strTemp = sArr2(i + 1)
               sArr2(i + 1) = sArr2(i)
               sArr2(i) = strTemp
            End If
            DoEvents
         End If
      Next i
   Next j
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço desculpa queria dizer eliminar repetidos em vez de ordenar.

Também era necessário ordenar mas isso já tinha conseguido.

De qualquer forma tenho agora outra dúvida, mas como é um pouco diferente publiquei outro tópico.

Obrigado pela ajuda prestada, abraço

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