Sunteți pe pagina 1din 8

Estructura de datos

El lenguaje FORTRAN, como cualquier otro lenguaje de programación, posee unos


elementos básicos que se estudiarán a continuación y un conjunto de reglas que,
combinando entre si esos elementos de base, van dando lugar a una serie de instrucciones,
con las cuales el hombre llega a comunicarse con el ordenador. Antes de explicar como se
construye un algoritmo, hay que mencionar los tipos de datos que puede manejar este
lenguaje, los cuales vienen a ser bastante generales a cualquier sistema de programación.

1. Constantes. Este término designa un valor específico y determinado que se define


al hacer un programa y que no cambia a lo largo del mismo
2. Variables. El concepto de variable coincide con el concepto habitual que se tiene de
ella; es un nombre simbólico con el que se designa o hace referencia a un dato que
puede tomar valores diversos.

Tanto las constantes como las variables pueden ser de cuatro tipos principalmente:

 Entera (INTEGER). Una constante entera es una sucesión de dígitos precedidos o


no del signo positivo (+) o negativo (-) y sin coma decimal, es decir, el concepto de
constante entera en FORTRAN coincide con el concepto habitual de número entero.
El límite en la cantidad para datos enteros es de -32768 al 32767 para máquinas con
memoria de 16 bits y de -2147433647 al 2147433647 para máquinas las cuales la
memoria guarde hasta 32 bits. (Ej.: 2435, -569, +15)
 Reales (REAL). En cualquier caso, una constante real en FORTRAN equivale al
valor de un número real habitual, es decir, una cantidad formada por una parte
entera y una fraccionaria (punto decimal equivale a coma). Se define como
exponente real, el carácter alfabético E seguido por in signo + o - y por una
constante formada por dos dígitos como máximo (Ej.: E25, 1.23E-3, -5E-02)
 Lógicas (LOGICAL). Un dato lógico únicamente posee dos valores: cierto
(.TRUE.) o falso (.FALSE.) y se guardan en memoria mediante códigos binarios
especiales. Obsérvese los puntos que preceden y siguen a estos valores, los cuales
son indispensables.
 Caracteres (CHARACTER). Es un conjunto de caracteres válidos y su longitud es
el número total de caracteres que contiene. Se define una constante de este tipo
precedidos y seguidos por un apóstrofe ('), cuyo carácter denomina delimitador.
(Ej.: 'Hola que tal', 'Coste = '). No confundir el apóstrofe con las comillas, ya que
son dos cosas totalmente diferentes.
 Doble precisión (REAL*8). Se denomina exponente doble precisión en
FORTRAN, al carácter alfabético D seguido opcionalmente del signo + o - y
finalizando por una constante entera (Ej.: D01, 14.2D+3, 12D-02). La diferencia
entre este tipo de valor con el de real es que para este caso es que el compilador
reserva más memoria para la doble precisión, con lo cual el número de dígitos es
mayor.

Los nombres para las constantes y variables se forman utilizando un conjunto de caracteres,
los cuales hay que seguir varias reglas:
 No pueden empezar por un carácter numérico, por ejemplo no se puede llamar una
variable 8MAR.
 Todas aquellas variables cuyo nombre comience con los caracteres alfabéticos I, J,
K, L, M o N se dice que queda implícitamente definida como variable entera. Las
variables enteras designan zonas de memoria cuyo contenido es una constante o
valor entero.
 Todas aquellas variables cuyo primer carácter alfabético sea una letra distinta de las
mencionadas anteriormente, se dice que son variables reales definidas de forma
implícita. Una variable real contiene un valor constante real.

Como esto restringe bastante la programación, ya que por ejemplo no se podría declarar
una variable distinta a entera o real, existe una forma de indicar explícitamente las
constantes y variables, para ello se indica justo detrás del inicio del programa como se
indica en la siguiente tabla:
INTEGER contador Variable entera denominada contador
REAL numero Variable real denominada número
LOGICAL salir Variable lógica denominada salir
CHARACTER*6 mensaje Variable de 6 caracteres denominada mensaje
REAL*8 suma Variable doble precisión denominada suma

Para la declaración de constantes, se realiza mediante la orden PARAMETER, de la


siguiente forma:

PARAMETER (radio = 6.5) Constante real de valor 6.5

Esto es equivalente a indicar lo siguiente:

REAL, PARAMETER (radio = 6.5) Constante real de valor 6.5

Ya que como empieza por "r" FORTRAN entiende implícitamente que se trata de un valor
real. Mi recomendación para evitaros problemas, es que declaréis siempre al principio todas
las variables de esta forma, explícitamente, para menor confusión a la hora de que el
programa interprete de una forma u otra una variable.

Otro tipo de datos es el concepto denominado lista. Por ejemplo, la temperatura en 5


ciudades diferentes, puede disponerse convenientemente en secuencia de elementos, cada
uno puede ser identificado según el lugar que ocupa. Así el conjunto podría ser de la
siguiente forma:

TEMPERATURA = (32,27,18,24,21)

Lo mismo podría ocurrir con una matriz de doble entrada donde en cada posición se
encontrará la ciudad y en la otra la estación del año. Las listas y tablas son estructuras de
datos que vamos a designar con el nombre genérico de conjunto de datos (en inglés: array)
y que se declaran mediante la instrucción DIMENSION de la siguiente forma.

DIMENSION B(3,4) Matriz de datos reales con 3 filas y 4 columnas

Hasta aquí llega como se declaran los diferentes tipos de datos que hay en el lenguaje
FORTRAN y cómo se declaran, a continuación pasaré a detallar los conceptos generales
para escribir el algoritmo final.

Operadores aritméticos

En matemáticas se dispone de una serie de símbolos que indican determinadas operaciones


a efectuar con los datos: Así por ejemplo, el + para la suma, etcétera. De la misma forma, el
lenguaje FORTRAN posee también esos signos, los cuales se denominan operadores
aritméticos, y son los cinco indicados en el cuadro siguiente:

Operador Significado
** Exponenciación
/ División
* Multiplicación
- Resta
+ Suma

Así, las expresiones algebraicas que siguen a continuación, se escribirán en FORTRAN


como se indica:

Sumar A más B A+B


Multiplicar A con B A*B
Dividir A entre B A/B
A elevado a B A ** B
A que multiplica a la suma de B más C A * (B + C)
5 veces A al cubo 5 * A ** 3

Cabe mencionar que cuando se opera con diferentes tipos de valores, es decir un real con
un entero o cualquier otra combinación resulta un valor del tipo más dominante, el cual por
orden es primero doble precisión, real, y por último entero.

Ejemplos

 Multiplicar un entero con un real, se obtiene un real.


 Sumar un valor de doble precisión con un entero, se obtiene un doble precisión.
Por último, mencionar otros tipos de operadores como pueden ser el logaritmo y la
exponencial E

Logaritmo de A log(A)
Exponencial de a (E elevado a A) exp.(A)

Sentencias básicas

Antes de empezar con las sentencias de la programación en FORTRAN hay que mencionar
un pequeño detalle, el compilador de FORTRAN no lee los 6 primeros caracteres de una
línea, con lo cual habrá que dejar en blanco estos, para empezar a escribir a partir de la
columna número 7. Anteriormente a la versión de F-90, también había una limitación en la
banda derecha, exactamente al carácter número 72, el cual ha sido solventado en esta última
versión. Otra mención merece el comentar que solo se puede escribir una sentencia por
línea, quedando restringido el utilizar varias de ellas en una misma línea. A continuación
vamos con las sentencias básicas del FORTRAN.

Al escribir un programa FORTRAN, su primera sentencia puede ser PROGRAM, cuya


sintaxis es simplemente:

PROGRAM nombre

Siendo nombre, el nombre o denominación simbólica que quiere darse al programa que
comienza a escribirse. No es obligatorio utilizar esta sentencia; pero si figura en el
programa, debe escribirse en primer lugar.

Para indicar la terminación de la ejecución de un programa FORTRAN es necesario


emplear la sentencia STOP, cuya sintaxis o forma general es:

STOP n

Donde n es una serie de hasta cinco dígitos o bien una constante carácter (Ej.: STOP 243,
STOP 'final')

Un programa FORTRAN puede contener varias sentencias STOP o lo que es lo mismo,


varios puntos de parada. Por ello aunque el uso de n no es obligatorio, es conveniente para
poder saber donde realmente se ha detenido un programa, ya que la constante n puede ser
visualizada en una unidad de salida, cuando se produce la parada.

La última sentencia de un programa tiene que ser:

END
Esta sentencia equivale al final de un programa ejecutable e indica al compilador que ya no
existen más sentencias en el programa fuente para ser convertidas en programa objeto.

Para resumir, diríamos que STOP produce una parada lógica y definitiva y sirve para
detener un proceso; END sirve para indicar el final de una compilación.

Por último diré que cualquier línea precedida por el símbolo * o C se entenderá como un
comentario, y el compilador lo obviará a la hora de codificar el programa. Esto puede
resultar útil, ya que puede hacer un programa más legible para personas que no sea el
propio programador. Este símbolo se coloca en la primera columna, espacio destinado para
este fin.

Ejemplo:
PROGRAM suma

* Este programa efectúa la suma de dos números


DIMENSION valor(2)
valor(1)=2
valor(2)=3
* Se introduce los valores de los dos números en un vector de dos dimensiones
sumavalor=valor(1) + valor(2)

STOP
END

La sentencia CONTINUE es ejecutable pero no genera instrucción alguna al ser traducida


a código máquina por el compilador. Su uso más corriente es el siguiente: como se
mencionará después en las reglas del DO, la sentencia CONTINUE se emplea para colocar
como última sentencia en este bucle. Otra aplicación es la de sustituir CONTINUE por una
sentencia que anteriormente se hacia referencia. Su sintaxis es muy simple:

CONTINUE

Para indicar una parada temporal en la ejecución de un programa FORTRAN se utiliza la


sentencia PAUSE, cuya sintaxis o forma general es:

PAUSE n

Donde n es una serie de cinco dígitos como máximo o bien una constante carácter (Ej.:
PAUSE, PAUSE 234, PAUSE 'Parada en el programa').

Sentencia GO TO
En los programas preparados por un ordenador, las instrucciones se ejecutan, mientras no se
disponga lo contrario, secuencialmente, es decir, acabada la realización de una de ellas,
comienza la ejecución de la siguiente.

En cambio existen situaciones donde nos interesa repetir una instrucción o ejecutar una
instrucción que viene más abajo ignorando de esta manera las sentencias siguientes. Esto
saltos se denominan bifurcaciones, y se realizan mediante la instrucción GO TO o GOTO.
Esta sentencia puede ser de dos tipos: incondicional o calculada.

La sintaxis para el GO TO incondicional es la siguiente:

GO TO n

Siendo n el número o etiqueta de una sentencia ejecutable que parecerá en el mismo


programa: es, por consiguiente, una constante entera positiva y distinta de cero de valor
n<99999. La constante n representa el número de la siguiente instrucción a realizar, es
decir, el lugar preciso donde va a efectuarse la bifurcación. Este número puede escribirse
entre las columnas 1 a 5 de la hoja de codificación.

La sintaxis para el GO TO calculada es la siguiente:

GO TO (n1, n2,.., nh), i

Siendo i un nombre de una variable. n1, n2,.., nh son números o etiquetas de sentencias que
se encuentran en el programa. La coma (,) que precede a la i es opcional. Con esta
instrucción existe la posibilidad de bifurcar a diversas sentencias, según sea el valor de la
variable i. Si dicha variable toma el valor 1, se bifurcará a la sentencia número n1; si 2 a la
n2 y así sucesivamente. Cuando sea i <1 o bien i>h, esta instrucción no tiene ningún efecto
y se ejecuta la sentencia siguiente en consecuencia.

Ejemplo:
PROGRAM descuentos

...
...
* Este programa dependiendo del estado efectúa un descuento u otro
GO TO (10, 20, 30), estado
* Estado es una variable que puede optar tres valores: 1, 2 o 3
* soltero
10 paga=sueldo - 200.0
GO TO 50
* casado
20 paga=sueldo - 300.0
GO TO 50
* viudo
30 paga=sueldo - 400.0
GO TO 50

50 STOP
END

Sentencias IF y DO

Otra sentencia que se emplea para realizar bifurcaciones, según ciertas condiciones, es la
sentencia IF. Responde a la sintaxis siguiente.

IF (e), n1, n2, n3

Siendo e una expresión aritmética entera o real y n1, n2 y n3 son números o etiquetas se
sentencias ejecutables, que se encuentran en el mismo programa. El significado de esta
instrucción es: si el valor de la expresión e es menor, igual o mayor de cero, el control se
transfiere, respectivamente, a la sentencia n1, n2 o n3 respectivamente.

Ejemplo:
PROGRAM pares

* Suma de los números pares menores de 102


I=2
suma=0
10 suma=suma + I
I=I+2
IF (I-100)10,10,20
20 STOP
END

Para ejecutar repetidamente una serie de sentencias en bucle, tiene mucha utilidad en el
lenguaje FORTRAN el uso de una sentencia especial: la sentencia DO. Su sintaxis es:

DO n, i = m1, m2, m3

Siendo n una constante entera que indica el número de una sentencia posterior a la DO, que
se denomina sentencia terminal del bucle DO. i es una variable entera y m1, m2, m3 son
constantes o variables enteras, reales, o de doble precisión e indican un valor inicial, un
valor final y un incremento. La variable m3 puede omitirse si su valor es igual a 1. Se
pueden introducir tantos DO dentro de otros (DO en nido).

Reglas sobre el uso del DO

 El valor de la variable o constante m3 de una sentencia DO no puede ser nunca cero.


 La última sentencia del rango de un DO ha de terminar con la sentencia
CONTINUE.
 No esta permitido bifurcar desde fuera hacia dentro del rango de un DO, si de forma
inversa.
 El valor de la variable del DO, i, es usado automáticamente dentro del rango; pero
no está permitido redefinirla.
 Está permitido todo tipo de bifurcación dentro del propio rango.
 Tratándose de un nido de DO, debe tenerse en cuenta que todas las instrucciones del
más interno deben estar contenidas en el rango del externo.

Ejemplo:
PROGRAM cuadrados

* Suma de los cuadrados de los números impares comprendidos entre 1 y 10


DO 10 I=1, 10, 2
SUMA=SUMA + I*I
10 CONTINUE
STOP
END

S-ar putea să vă placă și