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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación General / Python para cálculo científico en: 15 Febrero 2017, 18:07 pm
Buenas compañeros, recomendáis algún libro o documento para iniciarse en el lenguaje Python? Sobre todo me interesa si está más centrado en el cálculo (interpolacion, integracion, diferenciabilidad, graficas...). Me da igual si está en inglés.


Muchas gracias.



(No sé por qué pero no me ha dejado crear el tema en documentación e información o aglo así, lo digo por si este no es su lugar)
2  Programación / Programación C/C++ / Re: Copiar fichero a vector strings en: 16 Enero 2017, 00:18 am
Muchas gracias de nuevo ivancea96,

He intentado poner lo de 'move', pero me da un fallo al compilar, lo he "googleado" y me dice que es por culpa del compilador, que esa version no lo rece del tonoce o algo. Da igual, lo he dejado como estaba.


Por otro lado, he dejado que se ejecute del todo, habrá tardado más de 10min xDD (tendrá cerca de 60000 palabras el diccionario ese o más no estoy seguro).
El problema es que me meto en el fichero nuevo para ver el resultado y lo que ha hecho ha sido dejar muchísimas lineas en blanco al principio, y a la mitad o más del archivo, aparece el diccionario sin ordenar.

Supongo que estará el fallo en el método de la burbuja, pero no lo veo.

Espero vuestras respuestas xD, gracias.
3  Programación / Programación C/C++ / Re: Copiar fichero a vector strings en: 15 Enero 2017, 11:56 am
Muchas gracias ivancea96, ya si me funciona correctamente.

Ahora estoy intentando ordenar el vector de strings, atendiendo a la longitud de las cadenas de mayor a menor, mediante el metodo de la buruja. El código que tengo es el siguiente:

Código
  1. //Comenzamos el metodo de la burbuja y declaramos las variables que utilizaremos para dicho metodo
  2. unsigned long int r, j;
  3. string temp ;
  4.  
  5.  //Comienza el metodo de la burbuja
  6. for (r=0; r<v.size()-1; r++){
  7.   for (j=r+1; j<v.size();j++)
  8.       if (v[r] > v[j])
  9.       {
  10.           temp  = v[r];
  11.           v[r] = v[j];
  12.           v[j] = temp;
  13.           }
  14. }

El problema es que no sé si está bien, ya que entre otras cosas al ejecutarlo tarda mucho, tanto que lo he tenido que cerrar el programa xD.

¿Hay algo mal o poco eficiente?


También he hecho para que el programa me copie todo lo de un vector de strings en un archivo de texto nuevo, para el que le haga falta:
Código
  1.    ofstream archivo2 ("Palabras2.txt");
  2.  
  3.     if (archivo2.fail()) cout<<"El archivo no se abrio correctamente."<<endl;
  4.    for (long int z=0; z<v.size(); z++)
  5.    {
  6.        archivo2<<v[z]<<endl;
  7.    }
  8.    archivo2.close();
  9.  

Muchas gracias.DFF.
4  Programación / Programación C/C++ / Copiar fichero a vector strings en: 14 Enero 2017, 22:35 pm
Buenas noches a todos,

Estoy intentando hacer un programa que copie un fichero de texto (un diccionario), en un vector de strings. El problema es que no he trabajado apenas ni con vectores ni ficheros, ni si quiera los he visto en clase...

Bueno lo que tenog es lo siguiente:

Código
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <fstream>
  5. #include <cstdlib>
  6. #define MAX 90000
  7. using namespace std;
  8.  
  9. int main (void)
  10. {
  11.    vector <string> v (MAX);
  12.    ifstream archivo1 ("palabras.txt");
  13.    int i=0;
  14.  
  15.    if (archivo1.fail()) cout<<"El archivo no se abrio correctamente."<<endl;
  16.  
  17.    while (getline(archivo1, v()))
  18.    {
  19.    cout<<v.at(i)<<endl;
  20.    i++;
  21.  
  22.    }
  23.  
  24.  archivo1.close();
  25.  
  26.   system ("PAUSE");
  27.   return 0;
  28.  
  29.  
  30.  
  31. }
  32.  

Al compilar me da el fallo en el getline, pero no sé que es lo que falla ahí.
En el while, aunque no hace falta, que me muestre las palabras que se guarden en cada posición del vector, para ver si funciona principalmente.

Muchas gracias de antemano.
5  Programación / Programación C/C++ / Re: Funcion exponencial con desarrollo de Taylor C++ en: 20 Noviembre 2016, 16:45 pm
Gracias ivancea96, es que no suelo utilizar nunca los long, long long, casi tampoco signed, unsigned, asi que no tengo mucho manejo con ellos.

Me acabo de dar cuenta que el ejercicio no estaba acabado, ya que para valores negativos no funciona xDD.
Este creo que ya es el codigo definitivo  ;-) :-*:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. double funcionexp ( double x, int n);
  5. double potencia ( double x, int n);
  6. double factorial (int n);
  7.  
  8. int main (void)
  9. {                        //exponega=(1/(funcionexp(x,n)));
  10.    int n;
  11.    double x, expo;
  12.    expo=0.0;
  13.    cout<<"Introduce dos valores, el primero sera el valor de x de la funcion exponencial:\n";
  14.    cin>>x;
  15.    cout<<"\nY el segundo el numero de terminos que se consideraran en la serie de Taylor: "<<endl;
  16.    cin>>n;
  17.    cout<<endl<<endl;
  18.    if (x<=0) expo=(1/(funcionexp(x,n)));   //Lo añadido
  19.    else expo=(funcionexp(x,n));                //Lo añadido
  20.    cout<<"El valor de la funcion exponencial con x="<<x<<" y numero de terminos de la serie de Taylor, n="<<n<<" es: "<<expo<<endl;
  21.    system("PAUSE");
  22.    return 0;
  23. }
  24.  
  25.  
  26. double potencia ( double x, int n)
  27. {
  28.    if (x<=0) x=-x; //Lo añadido
  29.    int h;
  30.    double pote=1.0;
  31.    for (h=1;h<=n;h++) pote*=x;
  32.    return pote;
  33. }
  34. double factorial ( int n)
  35. {
  36.    int k;
  37.    double fact=1.0;
  38.    for (k=1;k<=n;k++)
  39.    {
  40.        fact*=k;
  41.    }
  42.    return fact;
  43. }
  44. double funcionexp ( double x,  int n)
  45. {
  46.    int z;
  47.    double exp, sii;
  48.    exp=0.0;
  49.    sii=0.0;
  50.    for (z=0;z<=n;z++)
  51.    {
  52.        exp=(potencia(x,z))/(factorial(z));
  53.        sii+=exp;
  54.    }
  55.    return sii;
  56. }
  57.  
  58.  
6  Programación / Programación C/C++ / Re: Funcion exponencial con desarrollo de Taylor C++ en: 20 Noviembre 2016, 12:21 pm
Hola muchas gracias a los dos,

Aurquiel sé que podía hacerlo con la función pow de la biblioteca cmath, pero como el ejercicio no especificaba si se podian usar funciones predefinidas pues creé la mía. Pero de todas formas las dos funcionan más o menos igual xD.

engel lex, ya ví el artículo ese antes de crear mi tema, por si me podía ayudar, y entendía todo lo que hacías, lo que no entendía era por qué a mí no me funcionaba mi programa.

Ya he encontrado mi fallo, estaba en la funcion exponencial, dentro del for :
Código
  1.       exp=(potencia(x,n))/(factorial(n));
ahí en las n, abría que poner z, como es lógico...

El código bien hecho quedaría así, para quien le haga falta:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. double funcionexp (double x,int n);
  5. double potencia (double x, int n);
  6. double factorial (int n);
  7.  
  8. int main (void)
  9. {
  10.    int n;
  11.    double x, expo;
  12.    cout<<"Introduce dos valores, el primero sera el valor de x de la funcion exponencial:\n";
  13.    cin>>x;
  14.    cout<<"\nY el segundo el numero de terminos que se consideraran en la serie de Taylor: "<<endl;
  15.    cin>>n;
  16.    cout<<endl<<endl;
  17.    expo=funcionexp(x,n);
  18.    cout<<"El valor de la funcion exponencial con x="<<x<<" y numero de terminos de la serie de Taylor, n="<<n<<" es: "<<expo<<endl;
  19.    system("PAUSE");
  20.    return 0;
  21. }
  22.  
  23.  
  24. double potencia (double x, int n)
  25. {
  26.    int h;
  27.    double pote=1.0;
  28.    for (h=1;h<=n;h++) pote*=x;
  29.    return pote;
  30. }
  31. double factorial ( int n)
  32. {
  33.    int k;
  34.    double fact=1.0;
  35.    for (k=1;k<=n;k++)
  36.    {
  37.        fact*=k;
  38.    }
  39.    return fact;
  40. }
  41. double funcionexp (double x,  int n)
  42. {
  43.    int z;
  44.    double exp, sii;
  45.    exp=0.0;
  46.    sii=0.0;
  47.    for (z=0;z<=n;z++)
  48.    {
  49.        exp=(potencia(x,z))/(factorial(z)); //Aquí estaba el fallo.
  50.        sii+=exp;
  51.    }
  52.    return sii;
  53. }
  54.  
Otra cosa, ¿sería mejor definir las variables como long o long long?
7  Programación / Programación C/C++ / Funcion exponencial con desarrollo de Taylor C++ en: 19 Noviembre 2016, 23:11 pm
Buenas noches a todos, estoy intentando calcular la funcion exponencial a través del desarrollo de Taylor en c++ y los valores que me dan no son los correctos. He estado repasando mucho rato y sigue sin funcionar.
Si podéis echarle un ojo al siguiente código y ayudarme os lo agradecería mucho. (El codigo no está muy claro xD).

Gracias. (PD: Estoy en 1ero de fisica y llevo poco tiempo programando)
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. double funcionexp (double x, int n);
  5. double potencia (double x, int n);
  6. double factorial (int n);
  7.  
  8. int main (void)
  9. {
  10.    int n;
  11.    double x, expo;
  12.    cout<<"Introduce dos valores, el primero sera el valor de x de la funcion exponencial\n";
  13.    cin>>x;
  14.    cout<<"\n Y el segundo el numero de terminos que se consideraran en la serie de Taylor: "<<endl;
  15.    cin>>n;
  16.    cout<<endl<<endl;
  17.    expo=funcionexp(x,n);
  18.    cout<<expo;
  19.    system("PAUSE");
  20.    return 0;
  21. }
  22.  
  23.  
  24. double potencia (double x, int n)
  25. {
  26.    int h;
  27.    double pote=1.0;
  28.    for (h=1;h<=n;h++) pote*=x;
  29.    return pote;
  30. }
  31. double factorial ( int n)
  32. {
  33.    int k;
  34.    double fact=1.0;
  35.    for (k=1;k<=n;k++)
  36.    {
  37.        fact*=k;
  38.    }
  39.    return fact;
  40. }
  41. double funcionexp (double x, int n)
  42. {
  43.    int z;
  44.    double exp, sii;
  45.    exp=0.0;
  46.    sii=0.0;
  47.    for (z=0;z<=n;z++)
  48.    {
  49.        exp=(potencia(x,n))/(factorial(n));
  50.        sii+=exp;
  51.    }
  52.    return sii;
  53. }
  54.  
  55.  

Mod: los códigos deben ir en geshi
8  Foros Generales / Noticias / Re: El fundador de Megaupload desaconseja utilizar Gmail, iCloud y Skype en: 19 Febrero 2013, 16:36 pm
las cuentas en mega son gratutitas o hay que pagar,en el caso que sean de pago,hay algun sistema de subida de archivos donde el registro sea gratuito,cual me recomiendan,gracias y saludos.
Las cuentas de Mega son totalmente gratuitas.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines