View
14.505
Download
2
Category
Preview:
Citation preview
TUTORIAL DE FORTRAN (con Force 2.0)
(PVB)
Algunos datos:
-La palabra Fortran resulta de la abreviación de "Formula Translación" (Nombre original:
Speedcoding)
-Su principal objetivo era trasladar un lenguaje matemático suficientemente expresivo de
una manera económica y eficiente.
-Fue Primer compilador exitoso de un lenguaje de programación de alto nivel (HLL).
Introducción.
La estructura en general de los programas estará dada por:
C Comentario
PROGRAM Nombre-programa
Declaraciones
Etiqueta Sentencias
+Continuación-Sentencia
STOP
END
Para ejemplificar desarrollaremos un programa sencillo.
(1) Línea de comentario, se utiliza colocando una C ó * en la 1ª columna ó ! , lo añadido no
afectara al programa y se utiliza para realizar apreciaciones.
(2) El nombre del programa con el Identificador de la sentencia PROGRAM de hasta 6
caracteres, debe comenzar con una letra. Se recomienda sea igual al nombre del archivo
fuente
(3) Sentencia WRITE para desplegar un mensaje.
(4) Sentencia STOP para que el programa se detenga.
(5) Sentencia END que define el término del programa.
(*) Si la pantalla desaparece, aplicar sentencia PAUSE antes de STOP.
Damos click a RUN.
Cuadro generado por el programa HOLA
Estructura básica.
-Identificadores: son los nombres para que se utilizan identificar programas, variables,
constantes (simbólicas), y otras entidades. Los identificadores deben siempre empezar por
una letra, y pueden ir seguidos por hasta 30 letras, dígitos y guión bajo (_).
-Palabras Reservadas.
Fortran tiene algunas palabras reservadas que será necesario abstenerse de utilizar.
ALLOCATE, ALLOCATABLE,CALL, CASE, CHARACTER, COMPLEX, CONTAINS,
CYCLE,DEALLOCATE, DEFAULT, DIMENSION, DO,END, ELSE, ELSEWHERE,
EXIT, EXTERNALFUNCTION,IF, IMPLICIT, IN, INOUT, INTEGER, INTENT,
INTERFACE, INTRINSICKIND, LOGICAL, MODULE NONE, ONLY, OPEN,
OUT,PARAMETER, POINTER, PRINT, PROGRAM, READ, REAL, RECURSIVE,
RESULT, RETURNSAVE, SELECT, SIZE, STAT, STOP, SUBROUTINETARGET,
THEN, TYPEUNIT, USEWHERE, WRITE.
-Variables: Existen 5 tipos de variables o constantes (INTEGER, REAL, COMPLEX,
CHARACTER, LOGICAL). Estas se definen como las entidades que almacenan información
mediante un determinado nombre. Y puede declararse como sigue.
INTEGER :: i, j, hora, minutos=60
REAL :: pi=3.141592654, velocidad, valorMedio=0.0
CHARACTER (LEN=20) :: nombre, primerApellido, segundoApellido
CHARACTER (20) :: nombre, primerApellido, segundoApellido
CHARACTER :: nombre*20, primerApellido*20, segundoApellido*20
CHARACTER (20) :: nombre*30, primerApe
Donde 20 indica la longitud de la cadena e caracteres que puede ser variable.
Algunas variables pueden ser consideradas enteras (INTEGER) por defecto (I, J, K, L, M o
N), este tipo de implícitos han sido la causa de muchos errores de programación. La
sentencia IMPLICIT NONE obliga a declara todas la variables y evitarlo.
Constantes simbólicas.
Debido a que existen constantes que aparecen varias veces en un programa y es deseable
que se definan solo una vez al inicio del programa, existe la sentencia parameter. Esta se
define de la siguiente manera.
PARAMETER (nombre = constante, ... , nombre = constante)
Esta función permite cambiar fácilmente valores de constantes cuando estas se repiten
varias veces.
(Ver uso de PARAMETER en ejemplo en ejemplos de programa Área de un círculo.)
Funciones numéricas.
Como todos los lenguajes de programación fortran cuenta con funciones numéricas que se
utilizan incluyendo su nombre, seguido de los argumentos que irán entre paréntesis y
separados por comas. La función se evalúa y el resultado se incluye en dicha expresión
aritmética.
Las funciones más comúnmente utilizada son:
Operadores aritméticos.
Los operadores aritméticos binarios son:
Adición +
Substracción -
Multiplicación *
División /
Exponenciación **
Operaciones con caracteres.
Las cadenas de caracteres van entre apostrofe o entre comillas.
El operador de concatenación es la doble barra //.
Para extraer un subcadena sea realiza mediante el carácter (:).
Por ejemplo si la variable ANIMAL tiene como valor ORNITORRINCO la subcadena
ANIMAL(:4) será “ORNI” (primeros 4 caracteres), ANIMAL(2:8) “RNITORRI”(del
carácter 2 al 8), ANIMAL(9:) “INCO” (del carácter 9 en adelante).
También existen otras funciones de manejo de caracteres como sigue en la tabla.
Sentencias de uso general.
PRINT y WRITE: Estas dos sentencias tienen por objetivo imprimir variables y
constantes, se diferencian principalmente en que la primera utiliza la salida estándar como
puede ser la ventana MS-DOS en donde se ejecuta el programa. Mientras que la segunda
tiene la posibilidad de elegir otras unidades de salida como impresoras o ficheros.
Ejemplos PRINT:
PRINT *, "Mi nombre es ", nombre, "."
PRINT *, "Velocidad = ", velocidad, "m/s."
PRINT *
Ejemplos WRITE:
WRITE (*, *) lista_de_variables_y_constantes_a_imprimir
WRITE (*, *)
READ: Esta sentencia espera que el usuario introduzca los valores de las variables que
deben ser leídas.
READ *, lista_de_variables_separadas_por_comas
READ *, velocidad, tiempo
Es conveniente incluir un mensaje para solicitar los datos.
Comando de lectura de datos.
i: Número entero que identifica una unidad (número entero) para el archivo de entrada. Para
leer desde la pantalla se utiliza * en lugar del número entero;
n: Número de línea que contiene un determinado comando FORMAT, que identifica
formato para lectura de los datos. Un * en lugar de “n” implica lectura de datos en formato
libre (o sea, sin formato predeterminado);
ios: Indicador opcional que acusa el estado de la sentencia; caso la lectura sea considerada
exitosa arroja el valor 0, caso contrario arroja un valor diferente de cero;
err: Indicador opcional que establece el número de línea de comando al cual saltará la
ejecución del programa en caso que se detecte un error en la lectura;
s: Indicador que contiene un número de línea de comando al cual saltará la ejecución
i: Número entero que identifica la unidad que se le asigna al archivo que está siendo
abierto;
ios: Indicador opcional que acusa el estado de la sentencia; caso el formato sea considerado
exitoso arroja el valor 0, caso contrario arroja un valor diferente de cero;
err: Indicador opcional que establece el número de línea de comando al cual saltará la
ejecución del programa en caso que se detecte un error en el formato;
Nomb_arch: Nombre del archivo a ser abierto, incluida su extensión (por ejemplo
“entrada.dat”);
sta: Es una cadena de caracteres que tiene que ser necesariamente NEW, OLD o
SCRATCH. Dicha cadena de caracteres muestra el estado del archivo. Un archivo scratch
es aquel que es creado y borrado cuando el archivo se cierra, mediante el comando CLOSE,
o cuando el programa termina. Un archivo old es aquel que ya existe mientras que new es
aquel archivo que se crea en el momento que se ejecuta la sentencia OPEN.
Otra alternativa muy utilizada, para esta cadena de caracteres, es UNKNOWN, con lo cual
si el archivo no existe lo crea, mientras que si ya existe lo sobrescribe eliminando su
antiguo contenido;
acc: Indicador que establece el tipo de acceso al archivo, el cual deberá ser SEQUENTIAL
o DIRECT (acceso de tipo secuencial o directo)). El valor predefinido es SEQUENTIAL;
frm: Indicador que deberá ser FORMATTED o UNFORMATTED. El valor predefinido es
UNFORMATTED;
rl: Indica la longitud de cada registro, en un archivo de acceso directo.
Sentencia FORMAT
Esta sentencia define el formato en el que los datos serán leídos o imprimidos.
En general es de la forma
n: Número de línea que actúa como identificador del comando FORMAT.
X: Es el carácter de control de carro de impresora o del cursor (se debe utilizar cuando el
comando FORMAT esté asociado a un comando de salida). Para efectos de simplicidad del
curso momentáneamente puede obviarse.
ESPk: Especificaciones de formato, de las cuales las más importantes se verán a
continuación.
Formato numero entero.
Forma general: aIw, donde a es una constante y w es el numero de espacios que ocupa el
dato. Por ejemplo:
Siendo el dato de entrada
-1349605
Entonces la salida resulta.
72-13496059677
Donde
Y el carácter “#” indica espacio en blanco.
Formato número real.
Forma general: aFw.d, donde a es una constante, w el numero de espacios y d el numero de
decimales sin contar el punto decimal.
Ejemplo:
Siendo dato de entrada:
28.18-1345
Entonces la salida resulta
-134528.18
Formato real con exponente.
Ejemplos de programas.
-Área de un círculo.
-Factorial de un número.
- Programa para solución de ecuación cuadrática.
Recommended