por Maligno: Uma vez que o questionamento acima poderia ser também respondido na seção "Bate-Papo", onde o tópico foi publicado originalmente, achei melhor movê-lo para a seção "CA-Clipper", já que assim ele ficará melhor classificado no fórum, o que poderá futuramente ajudar outros usuários a resolverem questões semelhantes.
Função rnd() no Clipper
Moderador: Moderadores
-
Antonio Job
- Usuário Nível 1

- Mensagens: 1
- Registrado em: 01 Ago 2010 15:07
- Localização: Ipiaú- Bahia
Função rnd() no Clipper
Gostaria de uma .lib ou como faço para simular uma Funçlão RND() função randômica no Clipper? Grato: Antonio Job
Nota de Moderação:
por Maligno: Uma vez que o questionamento acima poderia ser também respondido na seção "Bate-Papo", onde o tópico foi publicado originalmente, achei melhor movê-lo para a seção "CA-Clipper", já que assim ele ficará melhor classificado no fórum, o que poderá futuramente ajudar outros usuários a resolverem questões semelhantes.
por Maligno: Uma vez que o questionamento acima poderia ser também respondido na seção "Bate-Papo", onde o tópico foi publicado originalmente, achei melhor movê-lo para a seção "CA-Clipper", já que assim ele ficará melhor classificado no fórum, o que poderá futuramente ajudar outros usuários a resolverem questões semelhantes.
Editado pela última vez por Maligno em 01 Ago 2010 15:56, em um total de 2 vezes.
Re: Função rnd() no Clipper
Olá.
Seja bem-vindo ao fórum.
Mesmo sendo possível codificar esse tipo de função, já existem soluções prontas. De momento, só me lembro da biblioteca CA-Tools, que tem essa função pronta.
Seja bem-vindo ao fórum.
Mesmo sendo possível codificar esse tipo de função, já existem soluções prontas. De momento, só me lembro da biblioteca CA-Tools, que tem essa função pronta.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Função rnd() no Clipper
Precisamente na CT.LIB existem duas: RAND() e RANDOM()lembro da biblioteca CA-Tools, que tem essa função pronta
Existem outras como:
RANDOMIZE() // Power Tools (Ptool52.lib)
GFRAND() // Grumpfish
Também uma função em puro Clipper na internet: Random
Outro exemplo:
Código: Selecionar todos
FUNCTION GFRAND(N)
static XRNDSEED := .123456789
IF XRNDSEED = .123456789
XRNDSEED += VAL(SUBSTR(TIME(), 7, 2)) / 100
ENDIF
XRNDSEED := (XRNDSEED * 31415821 + 1) / 1000000
RETURN INT( (XRNDSEED -= INT(XRNDSEED)) * N)Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Função rnd() no Clipper
Pessoal...
Desculpem voltar a esse assunto depois de tanto tempo mas estou mexendo num PRG ainda em CLIPPER 5.3 e preciso da função RND().
Já tentei com RAND() e RANDOM() e continua o mesmo erro.
Estou com as bibliotecas CT.LIB e CTP.LIB dentro da pasta \CLIP53\LIB usando:
SET INCLUDE=C:\CLIP53
SET LIB=C:\CLIP53
SET OBJ=C:\CLIP53
SET PLL=C:\CLIP53
\CLIP53\CLIPPER GREDUZ /M /O
\CLIP53\BLINKER FI GREDUZ
E o resultado é:

Alguém me dar uma "luz" ??
Obrigado
Desculpem voltar a esse assunto depois de tanto tempo mas estou mexendo num PRG ainda em CLIPPER 5.3 e preciso da função RND().
Já tentei com RAND() e RANDOM() e continua o mesmo erro.
Estou com as bibliotecas CT.LIB e CTP.LIB dentro da pasta \CLIP53\LIB usando:
SET INCLUDE=C:\CLIP53
SET LIB=C:\CLIP53
SET OBJ=C:\CLIP53
SET PLL=C:\CLIP53
\CLIP53\CLIPPER GREDUZ /M /O
\CLIP53\BLINKER FI GREDUZ
E o resultado é:

Alguém me dar uma "luz" ??
Obrigado
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Função rnd() no Clipper
Olá!
Procura no fonte, e coloca aqui para vermos. Como ela é chamada pelo menos. rnd(...
Pode ser qualquer coisa, e tem a passagem de parâmetros...
Saudações,
Itamar M. Lins Jr.
Procura no fonte, e coloca aqui para vermos. Como ela é chamada pelo menos. rnd(...
Pode ser qualquer coisa, e tem a passagem de parâmetros...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Função rnd() no Clipper
Itamar... Mandei na MP
Abraços
Abraços
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Função rnd() no Clipper
Olá!
Baseado nisso aqui...
mreduz = substr(mconta,1,1)+strzero(rnd(0,999),3,0)
Adaptei aqui do forum mesmo, sendo clipper.
Saudações,
Itamar M. Lins Jr.
Baseado nisso aqui...
mreduz = substr(mconta,1,1)+strzero(rnd(0,999),3,0)
Código: Selecionar todos
Function rnd(nInicio,nFim)
return INT(RANDOM()%nFim + nInicio)Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Função rnd() no Clipper
Olá!
Ajuste o comando:
De SET LIB=C:\CLIP53
Para SET LIB=C:\CLIP53\Lib
Não está encontrando a LIB.Augusto escreveu:Estou com as bibliotecas CT.LIB e CTP.LIB dentro da pasta \CLIP53\LIB usando:
SET INCLUDE=C:\CLIP53
SET LIB=C:\CLIP53
SET OBJ=C:\CLIP53
SET PLL=C:\CLIP53
\CLIP53\CLIPPER GREDUZ /M /O
\CLIP53\BLINKER FI GREDUZ
Ajuste o comando:
De SET LIB=C:\CLIP53
Para SET LIB=C:\CLIP53\Lib
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Função rnd() no Clipper
Amigo... obrigado pela dica MASSSSS continua dando o mesmo erro.
Inclusive, por via das dúvidas, antes mesmo de vc responder eu já havia copiado as LIBS (CT e CTP) para a pasta CLIP53 e não resolveu.
Coloquei do jeitinho que vc falou e ERRO!!
Mais alguma ideia??
Abraços
Inclusive, por via das dúvidas, antes mesmo de vc responder eu já havia copiado as LIBS (CT e CTP) para a pasta CLIP53 e não resolveu.
Coloquei do jeitinho que vc falou e ERRO!!
Mais alguma ideia??
Abraços
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Função rnd() no Clipper
Alguém poderia compilar um PRG prá mim no CLIPPER 5.3 usando a função RND()??
Não estou conseguindo... sniff sniff sniff
Aguardo!!
Não estou conseguindo... sniff sniff sniff
Aguardo!!
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Função rnd() no Clipper
Olá!
Está incluindo a lib no teu arquivo de compilação?
Poste os teus arquivos de compilação (.rmk, .lnk, .bat) que está usando.
Está incluindo a lib no teu arquivo de compilação?
Poste os teus arquivos de compilação (.rmk, .lnk, .bat) que está usando.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Função rnd() no Clipper
Olá!
Já testou ?
Saudações,
Itamar M. Lins Jr.
Copia e cola ai no prg a função que fiz.usando a função RND()??
Já testou ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Função rnd() no Clipper
Itamar eu não programo em Clipper há mais de 20 anos.... nem lembro como chamar uma função dentro do PRG.
Se vc quiser e puder, te mando o PRG via qqr coisa (wapp sei lá) e aí vc me ajuda nisso... pode ser?
Consegui compilar no HARBOUR a partir de um outro programa que eu tinha aqui (q inclusive foi o Toledo que fez prá mim) mas está dando erro na função MAIN()...
Pensei nisso pois pelo menos rodaria em x64 tbm...
Aguardo seu retorno, obrigado!
Se vc quiser e puder, te mando o PRG via qqr coisa (wapp sei lá) e aí vc me ajuda nisso... pode ser?
Consegui compilar no HARBOUR a partir de um outro programa que eu tinha aqui (q inclusive foi o Toledo que fez prá mim) mas está dando erro na função MAIN()...
Pensei nisso pois pelo menos rodaria em x64 tbm...
Aguardo seu retorno, obrigado!
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Função rnd() no Clipper
Olá!
Se realmente está linkando a CT.LIB, não teria como dar erro. Na CT.LIB, não existe a função RND(). Existem as funções Rand() e Random(), conforme consta no CA Clipper Tools - Books 1 - 3 Norton GuideAugusto escreveu:Já tentei com RAND() e RANDOM() e continua o mesmo erro.
Estou com as bibliotecas CT.LIB e CTP.LIB dentro da pasta \CLIP53\LIB usando
RAND()
Generates random numbers
------------------------------------------------------------------------------
Syntax
RAND([<nStartValue>]) --> nRandomValue
Argument
<nStartValue> Designates a beginning value for the random number
generator.
Returns
RAND() returns a random number between 0 and 1.
Description
In contrast to RANDOM(), this function works with a seed algorithm.
Multiple calls always returns the same random number sequence when it
has the same start value. When you first call RANDOM() without a
parameter, it starts as if 100001 is specified as a parameter.
Subsequent random numbers can then be influenced by the < nStartValue>.
If this value is less than or equal to 0, the clock time is brought into
the process.
If you call the function with 100001 as a parameter, it allows you to
restart the generator. Then, if you call the function several times
without parameter, it returns the "standard sequence" of numbers.
Examples
. Call after program start:
? STR(RAND(), 18, 15) // 0.831051100158447
? STR(RAND(), 18, 15) // 0.557946857971956
. If the parameter equals 0, the clock time is incorporated.
Even if the clock has not yet advanced, subsequent values are still
different:
? STR(RAND(), 18, 15) // Time dependent
? STR(RAND(), 18, 15) // Subsequent time
// dependent value
. Use a number greater than 0:
? STR(RAND(23), 18, 15) // 0.121169930053736
? STR(RAND(23), 18, 15) // 0.121169930053736
. Show a "new start":
? STR(RAND(100001), 18, 15) // 0.831051100158447
? STR(RAND(), 18, 15) // 0.557946857971956
See Also: RANDOM()
RANDOM()
Generates random numbers
------------------------------------------------------------------------------
Syntax
RANDOM([<lMode>]) --> nRandomWORD
Argument
<lMode> Designates whether or not to return negative numbers. The
default creates only positive numbers.
Returns
RANDOM() returns a random number in the range of 0 to 65535 or when
<lMode> is designated as .T., in the range of -32768 to +32767.
Description
RANDOM() produces random numbers to create a random distribution of test
data for DEMO programs or any other application.
Note
. If the <lMode> parameter is not specified, only positive
numbers are returned. When < lMode> is set to .T., the function
returns the same number of positive and negative numbers.
Examples
. Create a random number between 0 and 65535:
? RANDOM()
. Create a random number between 0 and 1:
? RANDOM()/65535
. Create a random whole number between 1 and 16:
? RANDOM()%16 +1
. Create a random number between -32768 and +32767:
? RANDOM(.T.)
See Also: RAND()
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
Adalberto
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 01 Set 2007 01:09
- Localização: Santa Cruz de la Sierra - Bolivia
Função rnd() no Clipper
Caro amigo, boa noite.
você pode tentar esta função, para mim funciona muito bem, me ajuda a resolver a questão dos números aleatórios
Um grande abrazo desde Bolivia.
Adalberto.
você pode tentar esta função, para mim funciona muito bem, me ajuda a resolver a questão dos números aleatórios
Código: Selecionar todos
FUNCTION RandInt(nDesde, nHasta)
LOCAL nUltimo, nRandom:= 0, nMult:= INT(SECONDS())
LOCAL nNumero:= (nHasta - nDesde)
LOCAL nLen:= LEN(ALLTRIM(STR(nNumero)))
//
SET DECIMAL TO 16
IF ((VALTYPE(nUltimo) <> "N") .OR. EMPTY(nUltimo))
nUltimo:= ((nMult * ((SECONDS() - INT(SECONDS())) * 100)) % 335544319)
ENDIF
nUltimo:= ((nMult * nUltimo) % 335544319)
nRandom:= VAL(RIGHT(STR(nUltimo / 335544319), nLen))
IF (nRandom > nNumero)
nRandom:= (nNumero - VAL(RIGHT(STR(nRandom), LEN(ALLTRIM(STR(nNumero))) - 1)))
ENDIF
SET DECIMAL TO 2
RETURN(nDesde + INT(nRandom))
Adalberto.
