FORUM DARKERS

Tecnologia & Informática => Programação => Shell Script => Topic started by: insanity on 03 de November , 2006, 06:18:40 PM

Title: Script para ficar rico ;)
Post by: insanity on 03 de November , 2006, 06:18:40 PM
Rubens Queiroz de Almeida

Sempre que somos chamados a participar de um bolão, quando a loto acumula, temos que enviar alguns números para montar os cartões

Este script cria, aleatoriamente, uma sequencia de 10 conjuntos de seis números, e pode ajudar a vencer os bloqueios criativos para montar tantos cartões em pouco tempo.

O segredo do script, a geração de números aleatórios, é obtida através do programa perl:

perl -e "print int(rand($lastnum+1))+$firstnum;"`
Nós invocamos a função rand do perl, passando-lhe dois argumentos: o primeiro número da sequencia (firstnum) e o último número (lastnum).

A função rand do perl, gera um número ENTRE 0 e um valor que lhe passamos como argumento. Note que na expressão $lastnum+1 passada à função rand, nós somamos mais um, visto que a função rand gera números ENTRE os limites que lhe passamos. Como nós desejamos gerar números aleatórios entre um intervalo, ao resultado gerado pela função rand, nós temos que somar o valor do primeiro número da faixa:

Adicionalmente, como eu estou interessado apenas em números inteiros, eu precedi a chamada da função rand com a diretiva int.

rand($lastnum+1))+$firstnum;

Resumindo, para o script da loteca, eu preciso de números entre 1 e 60, que são os valores possíveis.

A explicação sobre o restante do script eu incluo como comentário no próprio código.

Boa sorte :-)

  #!/bin/bash
 
  # Definição da faixa de valores para a geração
  # dos números aleatórios. Esta faixa de valores
  # vai de 1 até 60
 
  firstnum=1
  lastnum=60
 
  var0=0
  cartoes=10
 
  # Todo script CGI precisa começar com uma linha
  # indicando o tipo de arquivo, em nosso caso,
  # html A diretiva echo vazia é usada apenas para
  # criar uma linha em branco, também obrigatória
  # O cabeçalho montado é bastante simples, mas
  # poderiamos aqui montar qualquer tipo de cabeçalho
  # html que desejarmos
 
  echo "Content-type:text/html";
  echo
 
  echo "<HTML><BODY><TITLE>Loteca</TITLE>";
 
  # Montamos aqui a tabela, que irá conter os números gerados
 
  echo "<TABLE ALIGN=CENTER>";
 
  # Temos aqui dois laços, um que controla o número
  # de cartões  a serem gerados, controlado pela
  # variável var0, cujo valor se inicia em 0 e vai
  # sendo aumentado em uma unidade a cada execução do
  # laço. A montagem do cartão em si é controlada
  # pelo segundo laço, através da variação das
  # variáveis i e j
 
  while [ "$var0" -lt "$cartoes" ]
   do
    echo "<TR>"
    i=0
    j=6
     while [ "$i" -lt "$j" ]
      do
       Random=`perl -e "print int(rand($lastnum+1))+$firstnum;"`
       echo -n "<TD ALIGN=RIGHT>$Random</TD>"
       i=`expr $i + 1`
      done
    echo
    var0=`expr $var0 + 1`
    echo "</TR>"
   done
 
  echo "</TR>"
  echo "</TABLE>"
  echo "</HTML></BODY>"

// insanity
Title: Re: Script para ficar rico ;)
Post by: shake on 03 de November , 2006, 06:42:03 PM
Legal cara!
Quando eu ganhar eu mando 10% pra vc!!!
Bom na loteria não sei se vai ganhar não!
Mas se um cara pega esse script e monta um programa...
Pode até ganhar umas verdinhas!
uhsddhuasdha
lol

Abraços
Title: Re: Script para ficar rico ;)
Post by: _Dr4k0_ on 05 de November , 2006, 09:36:41 AM
u.u nice
soh pra fala existe a função rand() no  C tb..