Cómo programar en Fortran (con imágenes)

Tabla de contenido:

Cómo programar en Fortran (con imágenes)
Cómo programar en Fortran (con imágenes)

Video: Cómo programar en Fortran (con imágenes)

Video: Cómo programar en Fortran (con imágenes)
Video: Tutorial Evernote en Español - Completo tutorial de Evernote para principiantes 2021 2024, Abril
Anonim

Mucha gente percibe Fortran como un lenguaje de programación arcaico y "muerto". Sin embargo, la mayor parte del código científico y de ingeniería está escrito en Fortran. Como tal, la programación en F77 y F90 sigue siendo una habilidad necesaria para la mayoría de los programadores técnicos. Además, los últimos estándares de Fortran (2003, 2008, 2015) permiten al programador escribir código altamente eficiente con el mínimo esfuerzo, mientras utiliza todas las características del lenguaje moderno, como OOP (programación orientada a objetos). FORTRAN es un acrónimo de "FORmula TRANslation" y es más adecuado para aplicaciones matemáticas y numéricas en lugar de aplicaciones gráficas o de bases de datos. La mayoría de los códigos de fortran toman la entrada de texto de un archivo o línea de comandos en lugar de un menú o interfaz GUI.

Pasos

Parte 1 de 4: Escribir y compilar un programa simple

Fortran hello world program write corregido
Fortran hello world program write corregido

Paso 1. Escriba un programa "Hola mundo"

Este suele ser el primer programa que escribe en cualquier idioma y simplemente imprime "Hola mundo" en la pantalla. Escriba el siguiente código en cualquier editor de texto y guárdelo como helloworld.f. Preste atención a que debe haber exactamente 6 espacios delante de cada línea.

programa helloworld implícito ningún carácter * 13 hello_string hello_string = "¡Hola, mundo!" escribir (*, *) hello_string finalizar el programa helloworld

Propina: Los espacios solo son necesarios en las versiones de Fortran hasta FORTRAN 77. Si está usando una versión más nueva, puede eliminar los espacios. Compile programas de una versión más reciente con f95, no con f77; use.f95 como extensión de archivo en lugar de solo.f.

Paso 2. Compile el programa

Para hacer esto, escriba f77 helloworld.f en la línea de comando. Si esto da un error, probablemente aún no haya instalado un compilador de Fortran como, por ejemplo, gfortran.

Fortran hello world compile run
Fortran hello world compile run

Paso 3. Ejecute su programa

El compilador ha producido un archivo llamado a.out. Ejecute este archivo escribiendo./a.out.

Paso 4. Comprenda lo que acaba de escribir

  • programa helloworld

    indica el inicio del programa "helloworld". Similar,

    final del programa helloworld

  • indica su final.
  • De forma predeterminada, si no declara un tipo de variable, Fortran trata una variable con un nombre que comienza con una letra de la i a la n como un número entero y todas las demás como un número real. Se recomienda utilizar

    ninguno implícito

  • si no necesitas ese comportamiento.
  • carácter * 13 hello_string

  • declara una matriz de caracteres que se llama hello_string.
  • hello_string = "¡Hola, mundo!"

  • asigna el valor "¡Hola, mundo!" a la matriz declarada. A diferencia de otros lenguajes como C, esto no se puede hacer en la misma línea que declarar la matriz.
  • escribir (*, *) hello_string

  • imprime el valor de hello_string en la salida estándar. El primer * significa escribir en la salida estándar, a diferencia de algún archivo. El segundo * significa no utilizar ningún formato especial.
Comentarios de Fortran
Comentarios de Fortran

Paso 5. Agrega un comentario

Esto no es necesario en un programa tan simple, pero será útil cuando escriba algo más complejo, por lo que debe saber cómo agregarlos. Hay dos formas de agregar un comentario.

  • Para agregar un comentario que tiene una línea completa por sí solo, escriba una c directamente en una nueva línea, sin los 6 espacios. Después de eso, escribe tu comentario. Debe dejar un espacio entre la cy su comentario para una mejor legibilidad, pero esto no es obligatorio. Tenga en cuenta que debe utilizar un! en lugar de una c en Fortran 95 y versiones posteriores.
  • Para agregar un comentario en la misma línea que el código, agregue un! donde quieres que comience tu comentario. Nuevamente, no se requiere un espacio, pero mejora la legibilidad.

Parte 2 de 4: Uso de construcciones de entrada y if

Tipos de datos de Fortran
Tipos de datos de Fortran

Paso 1. Comprender los diferentes tipos de datos

  • INTEGER se usa para números enteros, como 1, 3 o -3.
  • REAL también puede contener un número que no es entero, como 2.5.
  • COMPLEJO se utiliza para almacenar números complejos. El primer número es la parte real y el segundo la imaginaria.
  • CARACTER se utiliza para caracteres, como letras o puntuación.
  • LOGICAL puede ser.verdadero. o.false.. Esto es como el tipo booleano en otros lenguajes de programación.

Paso 2. Obtenga la entrada del usuario

En el programa "Hola mundo" que escribiste antes, obtener la entrada del usuario sería inútil. Así que abra un nuevo archivo y asígnele el nombre compnum.f. Cuando lo haya terminado, le dirá al usuario si el número que ingresó es positivo, negativo o igual a cero.

  • Ingrese el compnum del programa de líneas y el compnum del programa final.
  • Luego, declare una variable de tipo REAL. Asegúrese de que su declaración esté entre el principio y el final del programa.
  • Explique al usuario lo que se supone que debe hacer. Escribe un texto con la función de escritura.
  • Lea la entrada del usuario en la variable que declaró con la función de lectura.

programa compnum real r escribir (*, *) "Ingresar un número real:" leer (*, *) r finalizar el programa

Fortran if construction
Fortran if construction

Paso 3. Procese la entrada del usuario con una construcción if

Ponlo entre el

leer (*, *) r

y el

final del programa

  • La comparación se realiza con.gt. (mayor que),.lt. (menor que) y.eq. (es igual a) en Fortran.
  • Fortran admite if, else if y else
  • Una construcción if de Fortran siempre termina con end if.

si (r.gt. 0) entonces escribe (*, *) "Ese número es positivo". de lo contrario, si (r.lt. 0) entonces escriba (*, *) "Ese número es negativo". de lo contrario, escriba (*, *) "Ese número es 0". terminara si

Propina: No es necesario sangrar el código dentro de las construcciones if con más espacios, pero mejora la legibilidad.

Prueba del programa de verificación de números de Fortran
Prueba del programa de verificación de números de Fortran

Paso 4. Compile y ejecute su programa

Ingrese algunos números para probarlo. Si ingresa una letra, generará un error, pero está bien porque el programa no verifica si la entrada es una letra, un número u otra cosa.

Parte 3 de 4: Uso de bucles y matrices

Paso 1. Abra un archivo nuevo

Dado que este concepto es diferente, tendrá que escribir un nuevo programa nuevamente. Nombra el archivo addmany.f. Inserte el programa correspondiente y las instrucciones del programa final, así como un ninguno implícito. Cuando haya terminado, este programa leerá 10 números e imprimirá su suma.

Paso 2. Declare una matriz de longitud 10

Aquí es donde almacenarás los números. Dado que probablemente desee una suma de números reales, debe declarar la matriz como real. Declaras tal matriz con

números reales (50)

(números es el nombre de la matriz, no una expresión).

Paso 3. Declare algunas variables

Declare numSum como un número real. Lo usará para almacenar la suma más tarde, pero como la suma ya está tomada por una expresión de Fortran, debe usar un nombre como numSum. Póngalo en 0. Declare i como un número entero y no le asigne ningún valor todavía. Eso se hará en el do-loop.

Paso 4. Cree un bucle de ejecución

El equivalente a eso en otros lenguajes de programación sería un bucle for.

  • Un do-loop siempre comienza con do.
  • En la misma línea que el do, separada de él por un espacio, está la etiqueta a la que irá el programa cuando esté terminado. Por ahora, solo escribe un 1, establecerás la etiqueta más tarde.
  • Después de eso, nuevamente solo separados por un espacio, escriba

    i = 1, 10

    . Esto hará que la variable i, que había declarado antes del ciclo, vaya de 1 a 10 en pasos de 1. Los pasos no se mencionan en esta expresión, por lo que Fortran usa el valor predeterminado de 1. También podría haber escrito

    i = 1, 10, 1

  • Ponga algo de código dentro del ciclo (sangría con espacios para una mejor legibilidad). Para este programa, debe aumentar la variable numSum con el elemento i-ésimo de los números de la matriz. Esto se hace con la expresión

    numSum = numSum + número (i)

  • Termine el ciclo con una declaración de continuación que tenga una etiqueta. Escriba solo 4 espacios. Después de eso, escriba un 1. Esa es la etiqueta a la que le dijo al bucle de ejecución que vaya después de que termine. Luego, escriba un espacio y continúe. La expresión continue no hace nada, pero ofrece un buen lugar para colocar una etiqueta, además de mostrar que el do-loop terminó.

Su bucle do ahora debería verse así:

hacer 1 i = 1, 10 numSum = numSum + números (i) 1 continuar

Propina: En Fortran 95 y versiones posteriores, no es necesario utilizar etiquetas. Simplemente no ponga uno en la instrucción do y termine el ciclo con "end do" en lugar de "continue".

Fortran do loop code
Fortran do loop code

Paso 5. Imprima numSum

Además, tendría sentido dar algún contexto, por ejemplo, "La suma de sus números es:". Utilice la función de escritura para ambos. Su código completo ahora debería verse de la siguiente manera:

programa addmany implícito ninguno números reales (10) real numSum integer i numSum = 0 write (*, *) "Ingresa 10 números:" lee (*, *) números do 1 i = 1, 10 numSum = numSum + números (i) 1 continúe escriba (*, *) "Su suma es:" escriba (*, *) numSum finalice el programa addmany

Fortran agregar números código test
Fortran agregar números código test

Paso 6. Compile y ejecute su código

No olvide probarlo. Puedes presionar ↵ Enter después de cada número que ingreses o ingresar muchos números en la misma línea y separarlos con un espacio.

Parte 4 de 4: Comprensión de conceptos avanzados

Programa en Fortran Paso 13
Programa en Fortran Paso 13

Paso 1. Tenga una buena idea de lo que hará su programa

Piense en qué tipo de datos se necesitan como entrada, cómo estructurar la salida e incluya alguna salida intermedia para que pueda monitorear el progreso de su cálculo. Esto será muy útil si sabe que su cálculo se ejecutará durante mucho tiempo o implica varios pasos complicados.

Captura de pantalla del sitio web de referencia de Fortran
Captura de pantalla del sitio web de referencia de Fortran

Paso 2. Encuentre una buena referencia de Fortran

Fortran tiene muchas más funciones de las que se explican en este artículo, y pueden ser útiles para el programa que desea escribir. Una referencia enumera todas las funciones que tiene un lenguaje de programación. Este es uno para Fortran 77 y este es uno para Fortran 90/95.

Ejemplo de subrutinas de Fortran
Ejemplo de subrutinas de Fortran

Paso 3. Aprenda sobre subrutinas y funciones

Ejemplo de cadena de formato Fortran
Ejemplo de cadena de formato Fortran

Paso 4. Aprenda a leer y escribir desde / hacia archivos

También aprenda a formatear su entrada / salida.

Modern fortran example screenshot
Modern fortran example screenshot

Paso 5. Conozca las nuevas funciones de Fortran 90/95 y versiones posteriores

Omita este paso si sabe que solo estará escribiendo / manteniendo el código de Fortran 77.

Recuerde que Fortran 90 introdujo el código fuente "Free Form", que permite escribir el código sin espacios y sin el límite de 72 caracteres

Fortran book online screenshot
Fortran book online screenshot

Paso 6. Lea o busque algunos libros sobre programación científica

Por ejemplo, el libro "Recetas numéricas en Fortran" es tanto un buen texto sobre algoritmos de programación científica como una buena introducción a cómo armar códigos. Las ediciones más recientes incluyen capítulos sobre cómo programar en un entorno de lenguaje mixto y programación paralela. Otro ejemplo es "Modern Fortran en la práctica" escrito por Arjen Markus. El libro da una idea de cómo escribir programas de Fortran al estilo del siglo XXI de acuerdo con los últimos estándares de Fortran.

Programa de compilación Fortran en varios archivos
Programa de compilación Fortran en varios archivos

Paso 7. Aprenda a compilar un programa distribuido en varios archivos

Supongamos que su programa Fortran se distribuye entre los archivos main.f y morestuff.f, y que desea que el binario resultante se llame allstuff. Entonces tendrás que escribir los siguientes comandos en la línea de comandos:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f

Luego ejecute el archivo escribiendo./allstuff.

Propina: Esto funciona de la misma manera con las versiones más recientes de Fortran. Simplemente reemplace.f con la extensión correcta y f77 con la versión correcta del compilador.

Paso 8. Utilice la optimización que proporciona su compilador

La mayoría de los compiladores incluyen algoritmos de optimización que mejoran la eficiencia de su código. Por lo general, estos se activan al incluir un indicador -O, -O2 o -O3 al compilar (nuevamente, dependiendo de su versión de fortran).

  • Generalmente, el nivel más bajo -O o -O2 es el mejor. Tenga en cuenta que el uso de la opción de optimización más agresiva puede introducir errores en códigos complejos e incluso ralentizar las cosas. Prueba tu código.

    Consejos

    • Empiece con programas pequeños. Cuando esté creando su propio código, intente identificar la parte más esencial del problema: si es la entrada de datos o la llamada de las funciones, la estructura del ciclo (estos son algunos ejemplos muy elementales) y comience desde allí. Luego, construya sobre eso en pequeños incrementos.
    • Fortran no distingue entre mayúsculas y minúsculas. Por ejemplo, podría declarar una variable "Num real" y escribir "num = 1" en la siguiente línea para asignarle un valor. Pero ese es un mal estilo, así que evítalo. Más importante aún, Fortran tampoco se preocupa por el caso de funciones y declaraciones. Es bastante común escribir funciones y declaraciones en MAYÚSCULAS y variables en minúsculas.
    • EMACS es un buen editor de texto gratuito para usar en lugar del Bloc de notas.
    • Es posible que al principio le resulte más fácil utilizar un IDE (entorno de desarrollo integrado) en línea. Una buena opción es Coding Ground. Allí encontrará una gran cantidad de lenguajes de programación, incluido Fortran-95. Otra opción es Ideone.

Recomendado: