En mi primera clase de Física Computacional se supone nos dieron una intro super express de lo que es un sistema unix-like y FORTRAN, me aburrí la mitad como la mayoría puede suponer. Aunque la parte de FORTRAN si me hacía bastante falta, no sabía una pizca. Nos dejaron la primera tarea, bastante sencilla por cierto. Sólo 3 problemas:

  • Realizar un programa que calcule el factorial de un número.
  • Escribir un programa que calcule la suma de los primeros N naturales.
  • Calcular los primeros 100 términos de la sucesión de Fibonacci.

Sencilla la tarea, cualquier muchacho con un rato programando puede hacerlos. El detalle que me pareció interesante es el tamaño de los ejecutables generados por distintos compiladores. He aquí el resultado:

  1. Realizar un programa que calcule el factorial de un número.
    • Compilando con g77:
      g77 -o factorial.g77 factorial.f
    • Compilando con gfortran(g95):
      g95 -o factorial.g95 factorial.f
    • Compilando con ifc(Intel Fortran Compiler):
      ifort -ofactorial.ifc factorial.f
  2. La tabla de tamaños de archivo y tiempo de ejecución es la siguiente:

    Compilador Tamaño de Ejecutable(KB) Tiempo de Ejecución(s)
    g77 8 0.037
    g95 8 0.095
    ifort 476 0.065

    Y el código es:

    data N/5/      integer i
    real fact      fact=1
    do i=1,N
        fact=fact*i
    end do
    print *,'El factorial de',N,'es',fact
    END
  3. Escribir un programa que calcule la suma de los primeros N naturales.
    • Compilando con g77:
      g77 -o nnaturales.g77 nnaturales.f
    • Compilando con gfortran(g95):
      g95 -o nnaturales.g95 nnaturales.f
    • Compilando con ifc(Intel Fortran Compiler):
      ifort -onnaturales.ifc nnaturales.f
  4. La tabla de tamaños de archivo y tiempo de ejecución es la siguiente:

    Compilador Tamaño de Ejecutable(KB) Tiempo de Ejecución(s)
    g77 8 0.051
    g95 8 0.101
    ifort 476 0.087

    Y el código es:

    data N/100/      integer i
    real sum
    sum=0
    do i=1,N
        sum=sum+i
    end do
    print *,'La suma de los primeros',N,'naturales es',sum
    END
  5. Calcular los primeros 100 términos de la sucesión de Fibonacci.
    • Compilando con g77:
      g77 -o fibonacci.g77 fibonacci.f
    • Compilando con gfortran(g95):
      g95 -o fibonacci.g95 fibonacci.f
    • Compilando con ifc(Intel Fortran Compiler):
      ifort -ofibonacci.ifc fibonacci.f
  6. La tabla de tamaños de archivo y tiempo de ejecución es la siguiente:

    Compilador Tamaño de Ejecutable(KB) Tiempo de Ejecución(s)
    g77 12 0.033
    g95 12 0.066
    ifort 476 0.338

    Y el código es:

    data N/100/      integer i
    real a0,a1,tmp      
    i = 0
    a0 = 0
    a1 = 1
    print *,'El termino',i,'de la sucesion de fibonacci es',a0
    i = i+1
    print *,'El termino',i,'de la sucesion de fibonacci es',a1
    i = i+1
    do i=2,N
        print *,'El termino',i,'de la sucesion de fibonacci es',a0+a1
        tmp = a0
        a0 = a1
        a1 = tmp+a1
    end do
    END

¿Opioniones al respecto?.

Seguiré posteando códigos y curiosidades, saludos a todos.

One response »

  1. hunk says:

    chale que friki checando el tamaño del compilado, tenias que ser fisico, supongo que en unos años seras como los de big bang theory jajaj, saludos morro

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s