Generador diccionario numérico

Iniciado por hossman92, 24 Noviembre 2014, 19:02 PM

0 Miembros y 1 Visitante están viendo este tema.

hossman92

Hola buenas os dejo aquí el código C++ del generador de diccionarios que he echo para ir practicando. Me gustaría que me dijerais si hay algo mal o mejorable y lo he comentado bien por si alguien no sabe hacerlo y quiere ver algo para guiarse (o copiarlo como hacen algunos xDD), en cualquier caso un saludo y espero que os sirva/me ayudéis.

PD: Si alguno pone el tiempo total de ejecución para 5 cifras para comparar tiempos podría ser divertido yo con mi core quad 8600 en 48seg  ;D

PD2: por las lineas 30 y 24 quizas solo puedas ejecutarlo en windows, comenta las lineas si usas otro sistema operativo y creo que ya seria multiplataforma (corregidme si me equivoco)


PD3: y 6 cifras 306 segundos!!  ;D ;D

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>  //para entrada y salida al archivo
#include <iomanip> //para setfill y setw
#include <math.h> //para funcion pow
#include <stdlib.h>
using namespace std;

//main
int main()
{
    //declaro variables para la generacion del diccionario
    int cont=0; //contador
    int maximo,cifras; //numero maximo del diccionario y cifras que se desean

    //creacion archivo para guardar numeros
    ofstream fs("diccionario.txt");

   //inicio
    cout << "\nIntroduzca la cantidad de cifras que desee para el diccionario.\nEjemplo: 6 para diccionario de seis digitos(000000-999999)\n" << endl;
    cout << "Introduce 0 para salir"<<endl;
    cin >> cifras;

    //limpiamos pantalla
    system("cls");

    if (cifras!=0){
        //calculamos el maximo segun la cifra introducida ej 3 ==> hasta 1000 (0-999)
        maximo = pow(10,cifras);
        cout << "Has seleccionado "<<cifras<<" cifras\nSe generaran "<< maximo <<" numeros"<<endl;
        system("PAUSE");
    }

    //bucle para escribir numeros
    while (cont<=maximo&&cifras!=0){

        //texto mientras se genera el diccionario
        cout << "Generando diccionario... \n" << endl;

        //escribimos numero actual en archivo
        //setfill coloca ceros a la izquierda y setw indica la cantidad de ceros
        fs << setfill('0') << setw(cifras) << cont << endl;
        cont++;

    }//fin bucle

    //cerramos el fichero
    fs.close();

    //mensaje final
    if (cifras!=0){
        cout << "Diccionario completado y guardado. "<< endl;
    }
    else {
        cout << "********************ADIOS********************"<< endl;
    }
    return 0;
}

engel lex

Si imprimes a pantalla y escribes en el archivo cada numero sera lento, ya que tiene que esperar las respuestas de impresión en pantalla y archivo, mejor genera en un array un lote como 10.000 numeros y guardas todo junto, en la pantalla solo muestras cuando guardes
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.