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

David Pintassilgo

[VB6]-Ciclo para correr numeros e letras.

10 mensagens neste tópico

Boas, o meu problema é o seguinte:

Para fazer um FOR de forma a correr todos os algarismo fasso:

For x = 0 To 9
    Next

Até aqui tudo bem,...

Para Fazer um para letras desenrrasquei-me assim:

For x = 97 To 122
letra = ChrW$(x)
'' e uso letra em vez de x
   
Next

Até aqui tudo +- bem, certo?

Para varrer de 0 a 9 + a a Z tudo de uma vez fiz assim:

For x = 87 To 122
    If x < 97 Then
    letra = x - 87
    Else
    letra = ChrW$(x)
    End If
Next

Isto funciona e serve, mas não há forma mais simples de o fazer? É que se for encadear 5 ou 5 Ciclos é uma confusão!  :down: :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sou iniciante em vb mas fazia uma lista de strings com todas as letras

letra(0) = "a"

letra(1) = "b"...

for x = 0 to numero final da lista

letra(x)

...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Foi isso mesmo que fiz, vinha aqui agora avisar que já me desenrasquei.

Fiz um arrey e pronto, é uma beleza. :)

Obrigado.

Aquilo depois para encadear FOR's foi 5 estrelas

for a=1 to 35
   for b=1 to 35
     for c=1 to 35
         msgbox(  array(a) & array(b) & array(c)  )
    next
  next
next

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não te esqueças de zerar as variaveis senão quando chega a um certo ponto rebentas com o buffer

até +

programadorvb6

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não é a forma mais simples possa.

A 1ª opção sempre foi a melhor. 2 ciclos e pronto.

Tens agora 42875 interações contra as 36 iniciais. não?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A forma mais pratica para implementear o código (para mim pessoalmente) é como eu acabei por fazer, ou seja, com o array.

Mas se eu fizes com um IF dentro do for ia-me reduzir a velucidade de forma MUUUITO significativa?

Já agora, a ideia é fazer 10 ciclos FOR encadeados para fazer todas as combinações possiveis com todas as letras e todos os numeros numa string de 10 caracteres (OMG! tou maluquinho,.. eu sei. :S isto nunca mais acaba) mas pronto, a ideia não é propriamente a funcionalidade do programa mas sim o aprender a implementar determinadas cenas.

(PS: por isso não me chamem maluco sff :thumbsup: )

A verdadeira questão é:

Qual a forma mais rapida/melhor de  o fazer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para responder á verdadeira questão.

Queres fazer combinações ou percorrer uma vez cada letra e cada número?

Como colocaste a questão inicialmente dava a sensação que o objectivo era percorrer só uma vez.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O objectivo final como já disse não é propriamente o mais importante

a ideia não é propriamente a funcionalidade do programa mas sim o aprender a implementar determinadas cenas.

Nem digo para que era que é lamme de mais  :-[ até tenho vergonha! :D :D :D

Mas pronto. de qualquer das formas já deu para ver que há uma forma mais pratica mas menos eficiente para o fazer. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se percebi o que queres, o melhor era juntares letras e numeros no mesmo array e assim só precisas de 2 ciclos para fazer as combinações todas (se não estou a fazer mal as contas  :P )

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