elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5
21  Programación / Programación C/C++ / Re: lectura y escritura de ficheros en: 20 Abril 2013, 19:16 pm
No se si es exactamente esto lo que quieres. El código que te dejo aquí guarda los fragmentos entrecomillados de un fichero, en un fichero de texto de salida. He hecho la prueba con el fragmento que dejaste y parece que funciona.

Te lo dejo en este blog: http://cypascal.blogspot.com.es/2013/04/lectura-palabras-entrecomilladas-en-cc.html

Y aquí también:

Código:
#include <stdio.h>
#include <string.h>

int main(void)
{
 FILE *dat,*dat2;
 char nombre[50],c;
 
 printf("Nombre del fichero a leer: "); scanf("%s", &nombre);
 
 
 if (fopen(nombre,"r")==NULL)
  printf("\nEl fichero no existe.\n\n");
 else
    {
  dat=fopen(nombre,"r");
  dat2=fopen("salida.txt","w");
  fscanf(dat,"%c",&c);
  while (!feof(dat))
  {
   if (c=='"')
   {
                fscanf(dat,"%c",&c);      
                while ((!feof(dat))&&(c!='"'))
                {
                      /*Aquí es donde se guardan los datos entre comillas*/
                      /*En este caso imprime en fichero de texto*/
                      fprintf(dat2,"%c",c);
                      fscanf(dat,"%c",&c);
                }
                fprintf(dat2,"\n");            
            }
   fscanf(dat,"%c",&c);
  }
  fclose(dat);
 }
 return 0;
}

Salu10

Edito: No me di cuenta que lo tenías en C++, sorry...
22  Programación / Programación C/C++ / Re: [C] Calcular 10.000 decimales de pi en: 30 Marzo 2013, 22:39 pm
Muchas gracias por los enlaces, probare mañana que tendré tiempo y ya te contaré a ver que tal, a ver si esta vez lo consigo, porque ya he estado mirando, en este enlace:

http://suchideas.com/journal/2007/07/installing-gmp-on-windows/

y me fallaba el paso 4.IV donde dice que hay que ejecutar un .exe de los ficheros que te descargas de la biblioteca.

Probaré con los tuyos, muchas gracias!!

Salu10.
23  Programación / Programación C/C++ / Re: [C] Calcular 10.000 decimales de pi en: 30 Marzo 2013, 22:08 pm
Conocía ese algoritmo, (que es el que se usa en la actualidad) pero me topaba otra vez con el problema de la precisión. Con la biblioteca gmp efectivamente se evita, y se puede calcular con ese algoritmo, y probablemente obtengas una burrada (pero burrada burrada ¿10^20 dígitos?) de dígitos. El problema que tengo es que no consigo ejecutar la librería gmp

Salu10.
24  Programación / Programación C/C++ / [C] Calcular 10.000 decimales de pi en: 30 Marzo 2013, 15:02 pm
He visto que había un tema abierto sobre el cálculo de PI, pero no dejaba comentar, así que abro éste.
Llevaba un tiempo queriendo calcular grandes cantidades de dígitos de Pi, pero siempre me encontraba con la misma limitación, no se puede trabajar en coma flotante. Así que decidí indagar por la red, y me encontré con un algoritmo que permite el cálculo de los dígitos de Pi por separado y de manera muy rápida. Este método se conoce como "Spigot Algorithm", y se basa a grosso modo en trabajar en una base distinta a la decimal.
Si queréis más información sobre el algorítmo y el código, con su ejecución y una salida, les dejo este enlace:

http://cypascal.blogspot.com.es/2013/03/calcular-pi.html

Yo he comprobado que los decimales son correctos hasta 10.000, pero supongo que se puede llegar a bastantes más. El tiempo de ejecución es muy pequeño, menor de un segundo.

Aquí también el código:

Código:
#include <stdio.h>

const int n=10000;
const int dim=((10*n)/3);
int i,j,k, resto, digant, nueves, aux;
int pi[dim+1];

int main (void)
{
    for (i=1;i<=dim;i++) pi[i]=2;
    nueves=0; digant=0;
    for (i=1;i<=n;i++)
    {
        resto=0;
        for (j=dim;j>=1;j--)
        {
            aux=10*pi[j]+resto*j;
            pi[j]=aux % (2*j-1);
            resto=aux/(2*j-1);
        }
        pi[1]=resto % 10;
        resto=resto/10;
        if (resto==9) nueves++;
        else if (resto==10)
        {
             printf("%i",digant);
             for (k=1;k<=nueves;k++) printf("0");
             digant=0;
             nueves=0;
        }
        else
        {
            printf("%i",digant);
            digant=resto;
            if (nueves!=0)
            {
                for(k=1;k<=nueves;k++) printf("9");
                nueves=0;
            }
        }
    }
    printf("%i",digant);
    scanf("%i");
}

Si conocen algoritmo que también consiga gran cantidad de dígitos, y que no sea demasiado complicado de implementar, díganmelo, que es un tema que siempre me ha interesado.

Salu10.
25  Programación / Programación C/C++ / Re: C/C++ RESOLVER SUDOKU en: 13 Enero 2013, 13:53 pm
Yo creo que en el enlace queda más o menos claro que métodos se aplica. Yo no he encontrado ningún otro sitio donde esté el problema de los sudokus resuelto con lógica, ni en C ni en ningún otro lenguaje.

Salu10.
26  Programación / Programación C/C++ / Re: Ayuda con un programa en C++ en: 5 Diciembre 2012, 00:34 am
Estoy tonto y pensé que no lo habia enviado.

Salu10
27  Programación / Programación C/C++ / Re: Ayuda con un programa en C++ en: 5 Diciembre 2012, 00:28 am
Solo me remití a leer lo que ponía en tu mensaje, no compilé ni ejecuté el codigo, que suponía que estaba bien:

Aunque ya Ferno te ha contestado a parte de la pregunta, podrías incluir la librería math y aprovechar que para que un número sea primo basta con que no sea divisible entre 2 y la raíz del número. Con todas las aportaciones te quedaría:


No quise decir que estuviera mal, pero perdón de todas formas por el mal enentdido.

Salu10
28  Programación / Programación C/C++ / Re: Ayuda con un programa en C++ en: 4 Diciembre 2012, 22:01 pm
Hay que tener cuidado con el 2, que es primo
29  Programación / Programación C/C++ / Re: Calculo de frecuencias de palabras usando dispersio con tabla HASH cerrada en: 4 Diciembre 2012, 21:52 pm
Si, ya estamos todos trabajando para resolverte el programa. En cuanto lo tengamos lo ponemos.

Salu10!
30  Programación / Programación C/C++ / Re: Separar digitos de un numero en: 1 Diciembre 2012, 16:17 pm
Si es un numero decimal entero, basta con dividir por potencias 10 para ir obteniendo cada digito (division entera).
Si esta en otra base, base n-ésima, se divide por potencias de n y ya.
Páginas: 1 2 [3] 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines