10

Click here to load reader

Tutorial de Fortran (Pvb) Con Force

Embed Size (px)

Citation preview

Page 1: Tutorial de Fortran (Pvb) Con Force

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.

Page 2: Tutorial de Fortran (Pvb) Con Force

(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.

Page 3: Tutorial de Fortran (Pvb) Con Force

-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.

Page 4: Tutorial de Fortran (Pvb) Con Force

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).

Page 5: Tutorial de Fortran (Pvb) Con Force

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 (*, *)

Page 6: Tutorial de Fortran (Pvb) Con Force

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”);

Page 7: Tutorial de Fortran (Pvb) Con Force

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:

Page 8: Tutorial de Fortran (Pvb) Con Force

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.

Page 9: Tutorial de Fortran (Pvb) Con Force

Ejemplos de programas.

-Área de un círculo.

-Factorial de un número.

Page 10: Tutorial de Fortran (Pvb) Con Force

- Programa para solución de ecuación cuadrática.