Anuncio

Colapsar
No hay ningún anuncio todavía.

Números grandes en C++ / FORTRAN

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ Números grandes en C++ / FORTRAN

    Escrito por arivasm Ver mensaje
    Hace demasiado tiempo que no programo en FORTRAN. La versión en C++ para el intercambio de dos elementos de un vector sería de la forma siguiente. No creo que te cueste adaptarla al FORTRAN

    Código:
    void intercambiar (float* vector, int i, int j)
    {
        float temp = vector[i];
        vector[i] = vector[j];
        vector[j] = temp;
    }
    Por supuesto, puede reforzarse con comprobaciones de rango, previas al intercambio, pero la esencia son esas tres líneas.

    Con respecto a la ordenación existen numerosos algoritmos, de los cuales el más sencillo, pero muy poco eficiente es el humilde de burbuja (https://es.wikipedia.org/wiki/Ordenamiento_de_burbuja). Si tienes ganas de aprender algo mejor, te recomiendo el quicksort (https://es.wikipedia.org/wiki/Quicksort, quizá mejor explicado en la versión inglesa: https://en.wikipedia.org/wiki/Quicksort)
    Muchas Gracias!

    Otra pregunta que en c++ seguramente sera igual que en fortran, al ahcer otra cosa en el programa tengo qeu trabajar con numero muuuuy grandes y muuuuuy pequeños entonces con os pequeños me da 0 y con los grandes me da error el porgrama, puse doble precision y todo lo que se para trabajar con numeros grandes pero se me pasa de tamaño hay alguna forma? porque debo obtener un numero que no sea cero y algo que no me de error.

    Gracias!!

  • #2
    Re: Números grandes en C++ / FORTRAN

    Escrito por galilea Ver mensaje
    Muchas Gracias!

    Otra pregunta que en c++ seguramente sera igual que en fortran, al ahcer otra cosa en el programa tengo qeu trabajar con numero muuuuy grandes y muuuuuy pequeños entonces con os pequeños me da 0 y con los grandes me da error el porgrama, puse doble precision y todo lo que se para trabajar con numeros grandes pero se me pasa de tamaño hay alguna forma? porque debo obtener un numero que no sea cero y algo que no me de error.

    Gracias!!
    Con los tipos de datos nativos (que en inglés mucha gente llama "POD"... todo parecido es coincidencia) estás limitada por la precisión del número de bits que tenga el tipo en cuestión. Para trabajar con precisión arbitraria necesitas un tipo capaz de manejar memoria dinámicamente. Por suerte, hay múltiples librerías que proporcionan objetos así. Yo diría que la más conocida es GMP, que es nativa de C y compatible con C++, pero tiene "wrappers" para la mayoría de lenguajes (por ejemplo, es lo que utiliza Mathematica). Si quieres mirar alternativas, la wikipedia tiene una lista de librerías de precisión múltiple para C++.
    La única alternativo a ser Físico era ser etéreo.
    @lwdFisica

    Comentario

    Contenido relacionado

    Colapsar

    Trabajando...
    X