A linguagem de programação COBOL, uma das mais antigas ainda em uso regular, tem um forte viés para aplicações de negócios, como contabilidade, folha de pagamento e controle de estoque. No entanto, as versões mais recentes do COBOL possuem funções matemáticas sofisticadas, incluindo uma para gerar números aleatórios. Embora raramente usados para a contabilidade empresarial do dia-a-dia, os números aleatórios ajudam a facilitar os cálculos estatísticos e certos tipos de técnicas numéricas de resolução de problemas.
Funções
As funções matemáticas do COBOL fazem parte da divisão de procedimentos da linguagem, a seção do programa que consiste em instruções procedurais. As funções começam com a palavra reservada "function" seguida do nome da função, como "cos", "random" ou "log". Uma função recebe um ou mais argumentos, executa um processo neles e retorna um resultado de volta ao programa COBOL. Algumas funções funcionam em números e variáveis numéricas, enquanto outras funcionam em dados de caracteres.
Aleatório
A função random recebe um argumento inteiro não negativo e retorna um número decimal. O argumento inteiro é opcional. É a semente para um processo matemático pseudo-aleatório, que determina o primeiro número retornado da função. Em linguagens de computador, todos os processos aleatórios são de fato longos, repetindo séries de números que parecem ser aleatórios. Um processo bem escolhido se repete apenas após bilhões de valores, então é uma fonte prática de números aleatórios, mesmo que não seja teoricamente puro. Se você fornecer um argumento à função aleatória, ela gerará a mesma sequência de números. Sem o argumento, a função aleatória gera o próximo número em sua sequência.
Intervalo e distribuição
A função aleatória em COBOL retorna números decimais em um intervalo de zero a um. Estatisticamente, os números aleatórios têm uma distribuição retangular, o que significa que cada número é igualmente provável. Um gráfico de uma longa série de números aleatórios terá uma linha relativamente plana que se estende de zero a quase um. Isso contrasta com a distribuição normal, ou gaussiana, que forma uma curva em forma de sino.
Usar
Por si só, os números decimais de função aleatória não são muito úteis, mas se você multiplicá-los por um fator de escala, você cria um intervalo de números aleatórios adequado para sua aplicação. Por exemplo, para obter números inteiros aleatórios entre um e 52, você usaria a seguinte instrução COBOL:COMPUTE RANDOM-VALUE =FUNCTION RANDOM (1) * 52 + 1.
Na instrução, a função aleatória gera números maiores ou iguais a zero e menores que um. Multiplicando isso por 52, você obtém números entre zero e 51. Adicionando um, você obtém o intervalo de um a 52.