Aleatoriedade em C

Como tornar seus programas mais flexíveis e com sistemas aleatórios bem úteis em qualquer lugar.

[ Hits: 38.198 ]

Por: Lord Arthas Menethil em 21/06/2006


Colocando em prática 1



Irei colocar um exemplo agora de um gerador de senhas simples que eu fiz a uns tempos:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>

int generate(int type);
void about(void);

int key_num[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };

char key_lchar[52] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L
', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };

char key_espec[17] = { '_', '.', '-', '$', '%', '/', '&', '(', ')', '[', ']', '?', '!', '@', '=', '+', '*' };

int main()
{
        int opc;
        int op1;
        int to1 = 1;
        int to2 = 2;
        int to3 = 3;
        int to4 = 4;

        printf("Key Generator 0.9, by morte137 ");
        printf("Escolha a opção... ");
        printf("[1]Gerar senha ");
        printf("[2]Sobre o Key Generator. ");
        printf("[3]Sair ");
        scanf("%d", &opc);

        if(opc == 1)
        {
                printf("Escolha a opção. ");
                printf("[1]Senha com letras somente ");
                printf("[2]Senha com números somente ");
                printf("[3]Senha com Letras e números ");
                printf("[4]Senhas com tudo, inclusive caracteres especiais ");
                scanf("%d", &op1);

                if(op1 == 1)
                        generate(to1);

                if(op1 == 2)
                        generate(to2);

                if(op1 == 3)
                        generate(to3);

                if(op1 == 4)
                        generate(to4);
        }

        if(opc == 2)
                about();

        if(opc == 3)
                exit(0);

        return(0);
}
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Colocando em prática 1
   3. Colocando em prática 2
   4. Finalização
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Reprodução de arquivos WAV com SDL_mixer e linguagem C

Aprendendo a utilizar o GNU Debugger (parte 1)

Programando em Qt

Conio.h para Linux

Túnel do Tempo: a função itoa()

  
Comentários
[1] Comentário enviado por pacman em 21/06/2006 - 22:40h

Lembrando que rand() gera um numero aleatório positivo entre 0 e RANDMAX, definida na stdlib.h

se vc quiser gerar numeros aleatórios entre 0 e X vc pode fazer :

X * rand()/(RANDMAX+1.0);

e entre X e Y

X + ((Y - X) * rand()/(RANDMAX+1.0));

usar o %10 para limitar um gerador de numeros aleatórios vicia um pouco o resultado.

[2] Comentário enviado por tralsl em 17/02/2007 - 22:22h

alguem sabe dizer se
random("numero max-1");
funciona?

[3] Comentário enviado por rockstore6 em 23/07/2007 - 08:11h

muito bom o assunto..... cara esse site é foda :)

[4] Comentário enviado por Gilfran em 26/09/2007 - 16:42h

Parabéns por explorar essa funcionalidade, muitas vezes passamos sufoco pensando em uma forma de elaborar algo do tipo e temos a função já pronta às nossas mãos.
Abraços,
"Gil"
www.tux-ce.org

[5] Comentário enviado por mva em 12/12/2008 - 03:35h

Fala galera, blz??

É o seguinte... Depois de um semestre suado, estou aproveitando as ferias e tentando fazer um joguinho em C do tipo come-come...

O problema esta em fazer com que as comidas sejam colocadas de forma aleatoria dentro da tela...

Tentei usar as funcoes rand e srand, porem quando o faco, aparece um erro dizendo que algumas funcoes (que antes estavam funcionando perfeitamente) nao estao referenciadas...

Quero deixar claro que o compilador nao acusou erro em relacao as funcoes rand e srand, mas sim em outras funcoes construidas por mim e que antes estavam funcionando perfeitamente...

Todos os cabecalhos nos quais as funcoes estao definidas e codificadas foram incluidos... Nao faco ideia do porquê desse erro...

Alguem pode me ajudar??

Vlw!!!!!!!!!!!!!!!!!!

[6] Comentário enviado por jemessonlima em 25/03/2010 - 15:20h

caramba aleatoriedade , gostaria bastante da ajuda de vocês, daqui do vivaolinux, ok.

Trata-se do algoritmo Random Permutation of n letters (RANPER) ele se trata de uma determinada quantidade chamada de N, gerar termos aleatórios usando a técnica do gray code. o algoritmo encontra-se em FORTRAN No livro Combinatorial Algorithms do Wilf. Gostaria da ajuda de vocês.

[7] Comentário enviado por jemessonlima em 25/03/2010 - 15:21h

o código pode ser em java ou c , blz.

[8] Comentário enviado por jemessonlima em 25/03/2010 - 15:26h

aconselho o uso do mallocX.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts