ZECA Posted January 5, 2011 Report Share Posted January 5, 2011 Olá a Todos!! Eu preciso de uma função em clipper que faça o seguinte: tenho quatro valores que estão nas variaveis A B C D. Após comparações, como escolher a variavel de maior valor? Antecipadamente agradeço. Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP Quote Link to comment Share on other sites More sharing options...
ZECA Posted January 5, 2011 Author Report Share Posted January 5, 2011 Olá a Todos!! Eu preciso de uma função em clipper que faça o seguinte: tenho quatro valores que estão nas variaveis A B C D. Após comparações, como escolher a variavel de maior valor? Antecipadamente agradeço. Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP Quote Link to comment Share on other sites More sharing options...
joaosolution Posted January 5, 2011 Report Share Posted January 5, 2011 José Carlos Func Maior(A,B,C,D) Local nRet:=0 nRet:= Max(A, nRet:= Max(nRet,C) nRet:= Max(nRet,D) Return nRet Att João Bosco Contagem/MG FWH 10.6b xHb 1.2.1 WorkShop 4.5 PellesC SQLLIB Quote Link to comment Share on other sites More sharing options...
ZECA Posted January 5, 2011 Author Report Share Posted January 5, 2011 citação:José Carlos Func Maior(A,B,C,D) Local nRet:=0 nRet:= Max(A, nRet:= Max(nRet,C) nRet:= Max(nRet,D) Return nRet Att João Bosco Contagem/MG FWH 10.6b xHb 1.2.1 WorkShop 4.5 PellesC SQLLIB Obrigado João Bosco Vou testar e qualquer problema retornarei mas acho que isto mesmo. Eu tinha um guia rápido de consulta do clipper mas a faxineira jogou no lixo - mas não esquenta não que já encomendei a alma dela. Prá ela livro lido não presta mais. Grato id=quote>id=quote>Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP Quote Link to comment Share on other sites More sharing options...
sambomb Posted January 5, 2011 Report Share Posted January 5, 2011 citação:Olá a Todos!! Eu preciso de uma função em clipper que faça o seguinte: tenho quatro valores que estão nas variaveis A B C D. Após comparações, como escolher a variavel de maior valor? Antecipadamente agradeço. Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP id=quote>id=quote>aAdd(aMatriz,A) aAdd(aMatriz, aAdd(aMatriz,C) aAdd(aMatriz,D) aSort(aMatriz) ? aMatriz[Len(aMatriz)] SamirSSabreu@gmail.com samirabreu@hotmail.com Skype: SamirAbreu xHarbour 1.1.0 + FwXh 8.02id=black>"Acreditar é mais fácil do que pensar: Daà existem muito mais crentes do que pensadores.†Bruce Calvert Quote Link to comment Share on other sites More sharing options...
Dr_Microso Posted January 5, 2011 Report Share Posted January 5, 2011 * uma das inúmeras outras formas de fazer "Neston"... *----------------------------------- FUNC Main() *----------------------------------- LOCA a:=12, b:=34, c:=56, d:=78, vl_maior, vl_menor, posVAR LOCA matriz:={a,b,c,d} *----------------------------------- vl_maior := Dedure( matriz, "+" ) //retorna o valor maior posVAR := AScan( matriz, vl_maior ) //qual variável pela sua posicão na matriz cls DispOutAT(5,1,"Valor maior: "+ Str(vl_maior)) DispOutAT(6,1,"Variável No: "+ Str(posVAR)) Inke(0) * ou... vl_menor := Dedure( matriz, "-" ) //retorna o menor valor posVAR := AScan( matriz, vl_menor ) //qual variável pela sua posicão na matriz DispOutAT(8,1,"Valor menor: "+ Str(vl_menor)) DispOutAT(9,1,"Variável No: "+ Str(posVAR)) Inke(0) RETU *----------------------------------- FUNC Dedure( a1, c1 ) *----------------------------------- LOCA nA := a1[1] *----------------------------------- aEval( a1, { |var| nA := IF( c1="+", Max( nA, var), Min( nA, var ) ) } ) RETU nA *----------------------------------- Quote Link to comment Share on other sites More sharing options...
Eric.Developer Posted January 6, 2011 Report Share Posted January 6, 2011 eita que isso ficou azedo. Para Clipper, etc, fiz a MaxValue(a,b,c,d,...) para números, datas, etc, mas isso já é outra bebida. Toma essa, sem precisar de leite e açucar nMax:=0 AEVAL( {A, B, C, D}, {|n| nMax:=MAX(nMax,n) }) Eric Developer Systems www.magaldi.eti.br Quote Link to comment Share on other sites More sharing options...
AMBROSIO Posted January 6, 2011 Report Share Posted January 6, 2011 A brincadeira ta legal...rs Local a:=3,b:=6,c:=1,d:=0,nRet:=0 nRet:=iif(a>b,a,iif(b>c,b,iif(c>d,c,d))) Ambrosio de Barros Filho. JRAMBRO - jrambro@hotmail.com Curitiba/São José dos Pinhais - PR Clipper5.0/ADVPL Quote Link to comment Share on other sites More sharing options...
Dr_Microso Posted January 6, 2011 Report Share Posted January 6, 2011 Que isso? Não ficou azedo não, é que a receita foi colocada para agradar diversos paladares, se o freguês não gostar é só tirar os acompanhamentos, inclusive a sua é só parte dela, espie só: *------------------------------------------------------- LOCAid=orange> nA:=a1[1] AEVAL( a1, { |var|nA:=IF( c1="+", id=orange>Max( nA, var), Min( nA, var ) )id=orange> }) nMax:=0 AEVAL( {A, B, C, D}, {|n| nMax:=MAX(nMax,n) }) *------------------------------------------------------- Note que sua proposta apenas retorna o maior valor, e talvez queira-se saber além do valor, qual a VAR que o abriga. Foi o que entendi... citação:Após comparações, como escolher a variavel de maior valor? id=quote>id=quote> Quote Link to comment Share on other sites More sharing options...
Dr_Microso Posted January 6, 2011 Report Share Posted January 6, 2011 Ei Ambrósio, bakana! Você também é peralta, mas... Na sua receita poderÃamos tomar quente demais a bebida e queimar a lÃngua. Imagine se não pudesse ter acesso aos valores e a disposição das variáveis fosse outra... *-------------------------------------------------- Local a:=6, b:=3, c:=1, d:=8, nRet nRet:=iif(a>b, a, iif( b>c, b, iif(c>d, c, d))) *-------------------------------------------------- Matou a charada? Quote Link to comment Share on other sites More sharing options...
Eric.Developer Posted January 6, 2011 Report Share Posted January 6, 2011 Acredito que o Zeca tenta escrito errado, mesmo dando a entender que quer a Variavel e não o mais valor, optei pelo maior valor que é o mais comum, para saber qual a variavel também é muito simples. Eric Developer Systems www.magaldi.eti.br Quote Link to comment Share on other sites More sharing options...
ZECA Posted January 6, 2011 Author Report Share Posted January 6, 2011 citação:Acredito que o Zeca tenta escrito errado, mesmo dando a entender que quer a Variavel e não o mais valor, optei pelo maior valor que é o mais comum, para saber qual a variavel também é muito simples. Eric Developer Systems www.magaldi.eti.br id=quote>id=quote>Boa tarde ERIC!!!. O que quero na realidade e após os testes, colocar o maior valor em uma variavel. Por ex FRETE_PESO:= ......... Ai usarei a variavel para dar continuidade aos calculos. Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP Quote Link to comment Share on other sites More sharing options...
Dr_Microso Posted January 6, 2011 Report Share Posted January 6, 2011 Bom... A esta altura seu problema já está resolvido, presumo. Ficou alguma dúvida? Quote Link to comment Share on other sites More sharing options...
Eric.Developer Posted January 6, 2011 Report Share Posted January 6, 2011 Olá Zeca, o que postei resolverá: FRETE_PESO:=0 AEVAL( {A, B, C, D}, {|n| FRETE_PESO:=MAX(FRETE_PESO,n) }) citação:Boa tarde ERIC!!!.O que quero na realidade e após os testes, colocar o maior valor em uma variavel. Por ex FRETE_PESO:= ......... Ai usarei a variavel para dar continuidade aos calculos. Sds José Carlos - ZECA id=quote>id=quote>Eric Developer Systems www.magaldi.eti.br Quote Link to comment Share on other sites More sharing options...
ZECA Posted January 6, 2011 Author Report Share Posted January 6, 2011 citação:Olá Zeca, o que postei resolverá: FRETE_PESO:=0 AEVAL( {A, B, C, D}, {|n| FRETE_PESO:=MAX(FRETE_PESO,n) }) citação:Boa tarde ERIC!!!.O que quero na realidade e após os testes, colocar o maior valor em uma variavel. Por ex FRETE_PESO:= ......... Ai usarei a variavel para dar continuidade aos calculos. Sds José Carlos - ZECA id=quote>id=quote>Eric Developer Systems www.magaldi.eti.br id=quote>id=quote>Boa tarde a todos!!! Quero agradecer a todos que responderam este tópico. Muito bom mesmo. Parece que a rapaziada não esqueceu do velho e bom clipper. Agora vou parar de agradecer pois estou muito emocionado e vou acabar chorando(como o LULA) kkkkkkkkkkkkkkk Grato Sds José Carlos - ZECA fwh612(Free)-clipper52e-blinker 7.0 - six 3.02 - Windows XP Quote Link to comment Share on other sites More sharing options...
FiveWinBr Posted January 6, 2011 Report Share Posted January 6, 2011 Sei que ja esta resolvido, +++++++++++++++++++++++++ segue a minha função: //----------------------------------------------------------------------------// #include "Fivewin.ch" //----------------------------------------------------------------------------// Function Main() Local nRet nRet := nMaxValue(-10,23,-30,-120,1,3,501,60,80,1020,1102,220,410,1201,2200,2310,320) MsgInfo("Valor Maximo"+Str(nRet)) nRet := nMinValue(-10,23,-30,-120,1,3,501,60,80,1020,1102,220,410,1201,2200,2310,320) MsgInfo("Valor Minimo"+Str(nRet)) Return Nil //----------------------------------------------------------------------------// Function nMaxValue( ... ) Local aParams := hb_aParams() Local nRet := aParams[1] AEVAL(aParams,{|nParam|nRet:=If(nParam>nRet,nParam,nRet)}) Return nRet //----------------------------------------------------------------------------// Function nMinValue( ... ) Local aParams := hb_aParams() Local nRet := aParams[1] AEVAL(aParams,{|nParam|nRet:=If(nParam Return nRet //----------------------------------------------------------------------------// id=code>id=code>Existem varios caminhos de se fazer isso como pudemos ver neste post. porem acredito que este seja o melhor + fica a seu criterio qual utilizar. é isso ai. flw Att. Lailton Fernando Mariano http://www.lailton.com.br - xHarbour 1.2.1 | Fivewin 10.11 | Borland 5.8.2 | Dolphin MySQL | SQLRDD Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.