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

PJM

Ordenar de A-Z

5 mensagens neste tópico

Boas pessoal tudo bem?

Estava aqui a pensar e qual a melhor maneira de ordenar nomes de A-Z?

Tinha uma ideia de fazer um array alfabeto em que cada letra corresponderia ao número, e assim organizava pelos números.

Há uma maneira mais fácil? :hmm:

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes colocar os nomes num array e depois ordenar esse array com o bubble sort ou com outro metodo de ordenação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Public Class Form1
    Dim n as integer = 10      'numero de nomes
    Dim Lista(n) As String      'Tabela de nomes   

Private Sub Ordenar()

        'Procedimento para ordenar um vector de nomes

        Dim i, Fim As Integer              'Var de controle
        Dim Temp As string                 'Var aux
        Dim Trocou As Boolean           'Flag de controle

        'ordenar vector lista (metodo bubble sort)

        Fim = n - 1                                             'definir o fim do vector
        Do
            Trocou = False                                          'por a flag em falso
            For i = 0 To Fim - 1                                    'percorrer o vector até ao fim
                If lista(i) > lista(i + 1) Then                               'se o valor da posição actual for maior do que a seguinte...
                    Temp = lista(i + 1)                                                   'troca-se
                    lista(i + 1) = lista(i)                                               'os                
                    lista(i) = Temp                                                       'valores...
                    Trocou = True                                                       'e marca-se a flag como true
                End If
            Next
            Fim -= 1                                                                 'redefine-se o fim da procura, porque a última posição já é a maior de certeza...
        Loop Until Trocou = False                        'e repete-se tudo até que a flag não mude, é sinal que está tudo ordenado


    End Sub

End Class

o método "bubble sort" consiste em trocar valores num array, fazendo-os subir como se fosse uma bolha de ar. é um método bastante acessível e não puxa muito pela máquina

Note:

fiz isto no notepad...não sei se funcemina...:S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

oops.....só agora é que reparei que isto é para o vb6 e eu apliquei como se fosse .net...mas há-de dar na mesma...penso eu..:S

se não der, peço a alguém que me corrija o código pf, que eu nunca dei vb6 :$

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pela resposta pessoal, mas no entanto descubri uma forma bastante simples e é como o raciocínio do turkis.

Então o que fiz? Comecei por converter a primeira letra para número, e depois comparei-a, através de um ciclo como o turkis utilizou:

Temp = lista(i + 1)                                                   'troca-se
lista(i + 1) = lista(i)                                               'os                
lista(i) = Temp                                                       'valores...

Resumindo por processos:

  • Converti a primeira letra em numérico, por exemplo: A=1, C=3
  • Após a conversão ordenei os números do menor para o maior
  • Depois fiz a troca com outro array que usei, que armazenava os nomes

Cumprimentos

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