Página 1 de 1
Valores em ordem cresente.
Enviado: 28 Nov 2014 18:42
por rbonotto
Boa tarde pessoal.
Tenho um código em que o usuário digita tres produtos, cada um tem o seu preço, e o valor total
tem que ser pela média do preço dos dois maiores:
Exemplo:
Código: Selecionar todos
n_pRc1 := 32,00
n_pRc2 := 12,00
n_pRc3 := 66,00
PrtOtal := (n_pRc1 + n_pRc3) / 2
Tem alguma forma pratica de colocar em ordem crescente o conteudo das variáveis em uma matrix ?
abraços !
Valores em ordem cresente.
Enviado: 28 Nov 2014 21:02
por Eolo
Função ASORT()
Precisa, óbvio, criar a matriz antes.
Código: Selecionar todos
n_pRc1 := 32,00
n_pRc2 := 12,00
n_pRc3 := 66,00
MATRIZ:={} // matriz vazia
aadd(MATRIZ,n_prc1) // adiciona os valores
aadd(MATRIZ,n_prc2)
aadd(MATRIZ,n_prc3)
* aqui, os elementos da matriz são 32, 12 e 66
asort(MATRIZ) // ordena a matriz
* agora, os elementos da matriz são 12, 32 e 66
* pega os 2 últimos elementos (os maiores) e calcula
?prtotal:=(MATRIZ[2]+MATRIZ[3])/2 -> 49
Valores em ordem cresente.
Enviado: 29 Nov 2014 13:10
por Eolo
Se não quiser criar a matriz, pega o menor valor das variáveis e subtrai do total:
Código: Selecionar todos
n_pRc1 := 32,00
n_pRc2 := 12,00
n_pRc3 := 66,00
PrtOtal := ((n_pRc1+n_pRc2+n_pRc3)-min(n_pRc3(min(n_pRc1,n_pRc2)))/2
Valores em ordem cresente.
Enviado: 29 Nov 2014 22:06
por JoséQuintas
Se só usar isso na tela:
Código: Selecionar todos
LOCAL nValor:= { 0, 0, 0 }
@ 2, 0 SAY "valor 1" GET nValor[ 1 ]
@ 3, 0 SAY "valor 2" GET nValor[ 2 ]
@ 4, 0 SAY "valor 3" GET nValor[ 3 ]
READ
aSort( nValor )
RETURN ( nValor[ 2 ] + nValor[ 3 ] ) / 2
Valores em ordem cresente.
Enviado: 01 Dez 2014 11:46
por rbonotto
Obrigado mais uma vez pessoal !
Usei o asort e funcionou maravilhas !
Abraços !