Página 1 de 1

Ordernar Variaveis

Enviado: 12 Fev 2008 16:55
por marcos.gurupi
Amigos n estou conseguindo fazer o seguinte:

Eu tenho 12 variaves com seus respectivos valores exemplo:
vJan,vFev,vMar...

Como eu saberia qual a que contem o valor maior ?

Marcos Roberto

Enviado: 12 Fev 2008 17:29
por Maligno
Comparando uma a uma. Mas o código ficaria muito mais fácil e prático se os dados estivessem numa matriz.

Enviado: 12 Fev 2008 17:59
por MARINI
Se o valor for númerico ou data poderá usar a função MAX():

http://www.itlnet.net/programming/progr ... 684a1.html

Exemplo com arquivo:

USE arquivo
xnr:=0
DO WHILE !EOF()
xnr:=MAX(xnr,campoarquivo)
DBSKIP()
ENDDO
@ 5,5 SAY "o maior "+STR(xnr)

Exemplo com vetor:

xvr:=ARRAY(3)
xvr[1]:=12
xvr[2]:=30
xvr[3]:=8
xnr:=0
FOR i:=1 TO LEN(xvr)
xnr:=MAX(xnr,xvr)
NEXT
@ 5,5 SAY "o maior "+STR(xnr)

Enviado: 12 Fev 2008 19:59
por asimoes
Marcos,

Você pode usar tambem:

aVar :={}
nMaximo:=0

AADD(aVar,vJan)
AADD(aVar,vFev)
AADD(aVar,vMar)
AADD(aVar,vAbr)

ASORT(aVar)

nMaximo:=ATAIL(aVar)
ou
nMaximo:=ATAIL(ASORT(aVar))


:)Pos

Enviado: 12 Fev 2008 20:04
por Maligno
Taí mais uma alternativa que funciona também. Mas eu já sugeriria mudar de uma vez pra matriz. Manter variáveis, neste caso específico, só vai criar dificuldades "operacionais".

Enviado: 12 Fev 2008 20:13
por asimoes
Mestre Maligno,

Como seria o exemplo sendo uma matriz?

[]´s :)Pos

Enviado: 12 Fev 2008 20:36
por Pablo César
Marcos, eu não tinha notado que você tinha duplicado seu tópico. A solução pode ser com qualquer ferramenta que possibilite a criação de matrizes, para quem quiser ver o exemplo do Maligno na seção Clipper: https://pctoledo.org/forum/viewtopic.php?t=7495