Tuesday, October 16, 2018

Operaciones numéricas en Fortran

En Fortran se pueden realizar diversas operaciones numéricas, aunque se debe ser claro al momento de declarar variable y parámetros, de modo que en la ejecución del código no presenten problemas.


Para la mayoría de los ejemplos se usará el comando "IMPLICIT NONE" casi al principio de cada programa, el cual se usa generalmente para que el compilador pueda hacer un seguimiento preciso de parámetros y variables utilizados, de modo que cuando exista algún error en la compilación, los errores sean marcados explícitamente, ayudando a solucionar los problemas del código de una manera más eficiente.

Se podría continuar del modo tradicional respecto a lo que se hace para suma, resta, multiplicación y división de números, lo cual se muestra en el siguiente programa:

PROGRAM muestra_101

  IMPLICIT NONE
  INTEGER     :: a, b
  INTEGER     :: suma, resta, multiplicacion
  REAL         :: division

  PRINT *, "Operaciones aritmeticas"

  ! Asigna valores numéricos
  ! y luego realiza diversas operaciones
 
  a = 99
  b = 10
  suma     = a + b
  resta = a - b
  multiplicacion = a * b
  division = a / b
 
  PRINT *, "a = ", a     
  PRINT *, "b = ", b
  PRINT *, "a + b = ", suma 
  PRINT *, "a - b = ", resta
  PRINT *, "a * b = ", multiplicacion
  PRINT *, "a / b = ", division 

END PROGRAM muestra_101



Los resultados son lo que uno espera, excepto con lo que se tiene para la división, lo cual se debe a que Fortran considera que los números usados "a" y "b" son enteros, los cuales dejan como resultado a su parte entera y no a sus valores decimales.




Este tipo de detalles se deben tener muy en cuenta a la hora de usar entre enteros y decimales, a veces será de caracter estricto que algun parámetro pertenezca a cierta categoría dependiendo del uso o función que desempeñe dentro del programa.






Nota: Se estan usando algunos espaciamientos adicionales con fines decorativos. Por otra parte, en lenguaje Fortran, estos espaciamientos no afectan a los programas (al menos hasta donde se probaron los códigos), lo mismo pasa con lo de escribir en mayusculas los comandos, y en minusculas los parametros y variables, este tipo de escritura viene a raiz de ejemplos que se encontraron en diversos códigos antiguos, pero eso ya depende de cada uno, y de si el compilador lanza errores cuando se use otro estilo de escritura en Fortran.

A continuación se cambia todo al tipo  "REAL", en el cual se manejan los decimales.

PROGRAM muestra_101

  IMPLICIT NONE
  REAL     :: a, b
  REAL     :: suma, resta, multiplicacion
  REAL     :: division

  PRINT *, "Operaciones aritmeticas"

  ! Asigna valores numéricos
  ! y luego realiza diversas operaciones
 
  a = 99
  b = 10
  suma     = a + b
  resta = a - b
  multiplicacion = a * b
  division = a / b
 
  PRINT *, "a = ", a     
  PRINT *, "b = ", b
  PRINT *, "a + b = ", suma 
  PRINT *, "a - b = ", resta
  PRINT *, "a * b = ", multiplicacion
  PRINT *, "a / b = ", division 

END PROGRAM muestra_101

Los resultados ahora si se ven como esperábamos en un inicio.



Nota: Al declarar que los parámetros usados sean del tipo "REAL", se podría haber escrito todo en una sola línea y no abría diferencia alguna con los resultados. Este tipo de cuestiones se deja a criterio y gusto de quien escriba el código.

Ahora, para el siguiente programa se mostrará el cuadrado de varios números en el rango de 9 al 20.

PROGRAM muestra_101

  IMPLICIT NONE
  INTEGER :: i, a

  PRINT *, "Cuadrado de un numero"

  DO i = 9, 20
    ! Calcula directamente el
    ! cuadrado de un numero
    ! con el operador ' ** '
    a  = i ** 2
    PRINT *, i, " ** 2 = ", a     
  END DO

END PROGRAM muestra_101

Para este caso los parámetros son del tipo "INTEGER"



Los resultados se mostrarán en un listado.



En Fortran, las operaciones iterativas que usan al comando "DO" (bucle "DO") siguen ciertas reglas, en este caso, las iteraciones empiezan desde " i = 9 ", y se continuará incrementando el valor de "i" de uno en uno hasta que se termine la última iteración con "i = 20". También existirán reglas creadas por el programador dentro del bucle "DO", en esta ocasión las instrucciones dadas fueron que calcule el cuadrado de "i" para los valores que adopte, y luego imprima en pantalla los resultados.

No comments:

Post a Comment