¿Más monos?

Eduardo de Lorenzo Poza

Este código tiene una finalidad similar al programa de la última entrada. Sin embargo el método para generar los caracteres aleatorios es distinto. No solo genera letras sino cualquier carácter entre el 0 y el 255 de la tabla ASCII. Descomentando la línea comentada se puede evitar activar la campana del ordenador.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
#include <cstdio>
using namespace std;

union caracter {
    char carchar;
    struct {
        unsigned int bit7:1;
        unsigned int bit6:1;
        unsigned int bit5:1;
        unsigned int bit4:1;
        unsigned int bit3:1;
        unsigned int bit2:1;
        unsigned int bit1:1;
        unsigned int bit0:1;
    };
};

int main(){

    srand(time(NULL));
    caracter letra;
    char frase[100] = {0}, fraseGen[100];
    int len;

    gets(frase);
    len = strlen(frase);

    do {
        letra.bit0 = rand()%2;
        letra.bit1 = rand()%2;
        letra.bit2 = rand()%2;
        letra.bit3 = rand()%2;
        letra.bit4 = rand()%2;
        letra.bit5 = rand()%2;
        letra.bit6 = rand()%2;
        letra.bit7 = rand()%2;
        cout << (int)letra.bit0 << " ";
        cout << (int)letra.bit1 << " ";
        cout << (int)letra.bit2 << " ";
        cout << (int)letra.bit3 << " ";
        cout << (int)letra.bit4 << " ";
        cout << (int)letra.bit5 << " ";
        cout << (int)letra.bit6 << " ";
        cout << (int)letra.bit7 << " ";
        cout << "\t";
        //if (letra.carchar != '\a')
        cout << letra.carchar << "\t" << (unsigned int)letra.carchar;
        cout << endl;
        for (int i=1; i<len; i++) fraseGen[i-1]=fraseGen[i];
        fraseGen[len-1] = letra.carchar;
    } while (strcmp(frase, fraseGen));

}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s