Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: m@o_614 en 14 Marzo 2014, 01:28 am



Título: usar funciones de gmp
Publicado por: m@o_614 en 14 Marzo 2014, 01:28 am
Saludos, acabo de instalar la libreria gmp en codeblocks para hacer un código en c++ y apenas me estoy enseñando a usar algunas de sus funciones, por ejemplo si quiero declarar una variable uso el mpz_t, que tengo entendido es el equivalente a un int(un int del tamaño que tu quieras), despues inicializo esa variable con mpz_init, y despues le asigno un valor a la variable, pero en los ejemplos que he visto para asignarle un valor tienes que ponerle por ejemplo:

 mpz_set_str(num1, "123456789101112131415161718192021222324252627282930", 10);

pero qué pasa si tu quieres que sea el usuario el que le ingrese el numero que se le va a asignar a num1, en vez de escribirlo directamente en el código, cómo haría esto??

gracias


Título: Re: usar funciones de gmp
Publicado por: amchacon en 14 Marzo 2014, 01:32 am
Es lo mismo, solo tienes que leer la entrada como texto:

Código
  1. string texto;
  2. cin>>texto;
  3.  
  4. mpz_set_str(num1,texto.c_str(), 10); // desconozco si tiene sobrecarga para strings, asi que lo dejo como const char*
  5.  


Título: Re: usar funciones de gmp
Publicado por: m@o_614 en 14 Marzo 2014, 02:00 am
gracias amchacon por tu respuesta, otra duda, antes de hacer lo de ingresarle el numero, si le inicializo con mpz_init(numero); me aparece un mensaje de error que dice undefined reference to '_gmpz_init' y no entiendo por qué, si la libreria no se hubiera instalado me aparecería un error, y cuando declaro la variable con mpz_t tampoco me aparece ningun mensaje de error, ¿qué puede ser lo que esta mal?

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <gmp.h>
  4. #define MAX 40
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.    mpz_t numero;
  11.    mpz_init(numero);
  12.    return 0;
  13. }


Título: Re: usar funciones de gmp
Publicado por: amchacon en 14 Marzo 2014, 02:09 am
Error de instalación, se te ha olvidado hacer algún link.

Las variables no necesitan ser linkadas, las funciones sí.


Título: Re: usar funciones de gmp
Publicado por: 0xDani en 14 Marzo 2014, 16:20 pm
Puede estar bien instalada, y que no le estés pasando las opciones de enlazado al compilador.


Título: Re: usar funciones de gmp
Publicado por: m@o_614 en 14 Marzo 2014, 19:59 pm
gracias por sus respuestas, ya por fin pude hacerlo funcionar, lo que hice fue irme a la opcion Compiler Settings >> linker settings >> add >> gmp/lib/libgmp.a y ya con esto ya no tengo problemas, una ultima duda amchacon a qué te refieres con:

desconozco si tiene sobrecarga para strings, asi que lo dejo como const char*