ORDEM CRESCENTE E ORDEM DECRESCENTE

DRHOUSE 09/12/2009 02:03:40
#329387
Olá pessoal teria como saber se os dados inseridos em varios campos text juntos estao em ordem crescente ou decrescente, vamos supor 10 text onde:

os campos de 1 a 10 foram inseridos na ordem.

1 [ 01 ]
2 [ 02 ]
3 [ 03 ]
4 [ 04 ]
5 [ 05 ]
6 [ 06 ]
7 [ 07 ]
8 [ 08 ]
9 [ 09 ]
10 [ 10 ]

Teria como saber por um for se está ou não na forma crescente ou decrescente caso não esteja em ordem tambem informa que os numeros não estão em ordem?
ONBASS 09/12/2009 02:18:19
#329388
rpz, com crtz o pessoal mais experiente ai vai dar uma idéia...

mas me surgiu aqui uma gabi, q seria...fazer um for, e ir testando (a partir do 1o registro), se o registro atual corresponde ao valor do anterior +1, nao testei ainda, nao sei se ajudei mas,....
EDERMIR 09/12/2009 07:27:28
#329393
If text1(0).text < TEXT1(text1.ubound-1).text then
msgbox([Ô]CRESCENTE[Ô])
else
If text1(0).text > TEXT1(text1.ubound-1).text then
msgbox([Ô]DECRESCENTE[Ô])
else
msgbox([Ô]NULA[Ô])
endif
endif
RCMRO 09/12/2009 08:00:04
#329394
Vamos nessa:

Supondo que os seus numeros estejam na variável
Numeros(1 to 10) As Integer, fiz umas linhas para você poder aproveitar:

Private Sub Command1_Click()
Dim Numeros(1 To 10) As Integer
Dim Ordem As Integer
Dim i As Integer

Numeros(10) = 1
Numeros(9) = 2
Numeros(8) = 3
Numeros(7) = 4
Numeros(6) = 8
Numeros(5) = 6
Numeros(4) = 7
Numeros(3) = 8
Numeros(2) = 9
Numeros(1) = 10

Ordem = 0
For i = 2 To UBound(Numeros)
If Numeros(i - 1) < Numeros(i) Then
If Ordem = -1 Then
Ordem = -2
Exit For
End If
Ordem = 1
ElseIf Numeros(i - 1) > Numeros(i) Then
If Ordem = 1 Then
Ordem = -2
Exit For
End If
Ordem = -1
End If
Next

If Ordem = -1 Then
MsgBox [Ô]Ordem Descrecente[Ô]
ElseIf Ordem = 1 Then
MsgBox [Ô]Ordem Crecente[Ô]
ElseIf Ordem = -2 Then
MsgBox [Ô]Fora de Ordem[Ô]
Else
MsgBox [Ô]Todos os numeros iguais[Ô]
End If
End Sub
DRHOUSE 09/12/2009 23:19:54
#329444
JUNDIAI não entendi como seria aplicado ao meu exemplo de codigo poderia me explicar com exemplo dos campos abaixo são 10 campos Text com name de text eles estão em Index de 1 a 10,

text(1).text
text(2).text
text(3).text
text(4).text
text(5).text
text(6).text
text(7).text
text(8).text
text(9).text
text(10).text

Amigos obrigado pela ajuda.
RCMRO 10/12/2009 08:12:31
#329447
Resposta escolhida
Private Sub Command1_Click()
Dim Ordem As Integer
Dim i As Integer

Ordem = 0
For i = 2 To 10
If val(text(i - 1).text) < val(text(i).text) Then
If Ordem = -1 Then
Ordem = -2
Exit For
End If
Ordem = 1
ElseIf val(text(i - 1).text) > val(text(i).text) Then
If Ordem = 1 Then
Ordem = -2
Exit For
End If
Ordem = -1
End If
Next

If Ordem = -1 Then
MsgBox [Ô]Ordem Descrecente[Ô]
ElseIf Ordem = 1 Then
MsgBox [Ô]Ordem Crecente[Ô]
ElseIf Ordem = -2 Then
MsgBox [Ô]Fora de Ordem[Ô]
Else
MsgBox [Ô]Todos os numeros iguais[Ô]
End If
End Sub
DRHOUSE 11/12/2009 00:03:26
#329500
RCMRO obrigado deu certinho.
Tópico encerrado , respostas não são mais permitidas