Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thiagocs

Elementos repetidos - array

Recommended Posts

Como posso verificar se o array tem valores repetidos e retirá-los e em seguida colocar o array em ordem crescente.EX: array = 1,3,5,9,5,6,3 array = Arruma(array) array = 1,3,5,6,9

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte cara... em se tratando de VBScript, você pode fazer algo como:

 

Dim array(4)

Dim resultado

 

'passa toda a array

'verifica se já existe um valor como "*<valor>*" dentro da variavel resultado. Se naum tem, coloca

for i=0 to UBOUND(array)

if InStr("*" & resultado,array(i))=0 then

resultado = resultado & array(i) & "*"

end if

next

 

ou algo parecido (não testei o código)... no final você terá o seguinte resultado tipo... uma array 1,2,4,2 ficará algo como:

 

resultado = "1*2*4*"

 

aí você pode tirar este asterisco no final e dar um Split, para ter uma array sem valores repetidos. Eu poderia ainda copiar isso tudo para uma outra array, mas seria desgastante tanto para a memória quanto para o código. Qualquer coisa, se eu tiver tempo, é só falar que a gente tenta resolver...

 

Quanto ordenar uma array, você pode procurar por vários códigos prontos de Ordenação. Em geral, MergeSorte e QuickSort servem bem para quase todo tipo de situações com arrays! FAlow?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá prezado colega,obrigado em responder, tentei fazer do jeito que você falou e nao consegui, vou tentar ver este quicksort...vlw toda a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui retirar os elementos repetidos mas naum estou colocando em ordem...

meu código::::::::::::

Dim array(4)Dim resultadoarray(0) = "9"array(1) = "2"array(2) = "3"array(3) = "2"array(4) = "1"for i=0 to UBOUND(array)if InStr("*" & resultado,array(i))=0 thenresultado = resultado & array(i) & "*"end ifnextmostra = split(resultado,"*")limite = UBOUND(mostra)for l=0 to limiteresponse.write(mostra(l)&"<br/>")next

 

tenho uma SUB que coloca em ordem mas naum consigo usar

Sub OrdenaArray(mostra())Dim I, K, N, JDim AuxN = UBound(mostra)For I = 0 To N - 1K = IFor J = I + 1 To NIf mostra(J) > mostra(K) ThenK = JAux = mostra(K)mostra(K) = mostra(I)mostra(I) = AuxEnd IfNextNextEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvidos todos problemas !!!

 

<%Dim array(4)array(0) = "9"array(1) = "2"array(2) = "9"array(3) = "3"array(4) = "1"for i=0 to UBOUND(array)if InStr("*" & resultado,array(i))=0 thenresultado = resultado & array(i) & "*"end ifnextmostra = split(resultado,"*")for x = lbound(mostra) to ubound(mostra)            for y = lbound(mostra) to ubound(mostra) - 1            if mostra(y) > mostra(y + 1) then                  tmp = mostra(y)                  mostra(y) = mostra(y + 1)                  mostra(y + 1) = tmp            end if      nextnextfor x = lbound(mostra) to ubound(mostra)      response.write (mostra(x)&"<br/>")next%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

só complementandose os valores do array forem string ??

<script language=JScript runat=server>    function SortVBArray(arrVBArray)    {        return arrVBArray.toArray().sort().join('\b');    }</script><%Function SortArray(arrInput)        SortArray = Split(SortVBArray(arrInput), Chr(8))End Functiondim lista()dim campos(2)campos(0) = "t"campos(1) = "b"campos(2) = "a"x = SortArray(campos)Response.Write x(0) & "<br>"Response.Write x(1) & "<br>"Response.Write x(2) & "<br>"%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.