Beruflich Dokumente
Kultur Dokumente
, siendo los x
i
ledos por pantalla. El valor de N (nmero de datos), es el
primer valor que se lee por pantalla.
INTEGER N
REAL SUMA, X
.
READ (*,*) N
SUMA =0
DO 10 I =1, N
READ (*,*) X
SUMA =SUMA +X
10 CONTINUE
WRITE (*,*) SUMA =, SUMA
.
Comando GO TO.
Suele utilizarse acompaado de un bloque IF, y realiza un salto
incondicional hacia la lnea de comandos n:
Forma general:
GO TO n
en la cual
n: Nmero de lnea de comando ejecutable hacia la cual el
control es transferido.
Ejemplos:
Un fragmento de programa que calcula el factorial de un nmero N puede
quedar, en forma alternativa, de la siguiente forma:
INTEGER M, N
REAL FACT
.
READ (*,*) N
FACT =1
M =N
10 IF (M. GE. 2) THEN
C INICIO ESTRUCTURA EN CUANTO... - HAGA...
FACT =FACT * M
M =M 1
GO TO 10
C FIN ESTRUCTURA EN CUANTO... - HAGA...
ENDIF
WRITE (*,*) FACTORIAL DE , N, =, FACT
.
1.4. Otras formas de estructuras de control.
Los compiladores antiguos de lenguaje FORTRAN no incluan estructuras
como los bloque IF, por lo que se utilizaban estructuras similares, aunque ms
rudimentarias, para controlar el flujo de ejecucin de los programas. Algunos de estas
estructuras se sealan dentro de lo que sigue.
IF aritmtico:
Forma general:
IF (<a>) n
1
, n
2
, n
3
en la que
<a>: Es una expresin aritmtica (entera o real);
n
1
, n
2
, n
3
: Son nmeros de lneas de comandos (pueden ser repetidos).
Funcionamiento:
El valor de la expresin <a>es obtenido y as el control es transferido a la
lnea de comandos sealada con el nmero siguiente:
n
1
si <a><0
n
2
si <a>=0
n
3
si <a>>0
Ejemplo:
INTEGER I, J , N
.
15 J =I ** 2
.
.
IF (I N) 15, 15, 30
30 STOP
END
IF lgico:
Forma general:
IF (<a>) <sentencia>
en la que
<a>: Es una expresin lgica;
<sentencia>: Conjunto de comandos excepto DO, IF, END, etc.
Funcionamiento:
La expresin lgica <a>es evaluada y <sentencia>ser ejecutada si <a>es
verdadera; en caso que <a>sea falsa, <sentencia>ser ignorada.
Ejemplo:
INTEGER I, J , N
.
15 J =I ** 2
.
.
IF (I. LE. N) GO TO 15
STOP
END
Este ejemplo es equivalente al anterior.
GO TO computado:
Forma general:
GO TO ( n
1
, n
2
,... , n
k
) , i
en la que
n
k
: Son nmeros de lneas de comandos ejecutables (pueden ser
repetidas);
i: Consiste de una expresin entera; la coma antes de i es
opcional.
Funcionamiento:
La expresin i es evaluada y el control de ejecucin del programa es
transferido hacia la lnea de comando n
m
cuando el valor de i es igual a m; si el valor
de i estuviese fuera del intervalo [ 1 , k ] , el GO TO computado es ignorado.
Ejemplo:
GO TO ( 10 , 20 , 30 , 40 ) j
Significa que para
j =1 desva el control hacia la lnea de comando nmero 10,
j =2 desva el control hacia la lnea de comando nmero 20,
j =3 desva el control hacia la lnea de comando nmero 30,
j =4 desva el control hacia la lnea de comando nmero 40.
Para cualquier otro valor de j el comando GO TO es ignorado.
Ejemplo:
El siguiente programa, dados los nmeros de orden de los das de la semana,
entrega por extenso tales nombres.
INTEGER DIA
.
READ (*,*) DIA
GO TO (10, 20, 30, 40, 50, 60, 70) DIA
GO TO 80
C INICIO CASE
10 WRITE (*,*) LUNES
GO TO 80
20 WRITE (*,*) MARTES
GO TO 80
30 WRITE (*,*) MIERCOLES
GO TO 80
40 WRITE (*,*) JUEVES
GO TO 80
50 WRITE (*,*) VIERNES
GO TO 80
60 WRITE (*,*) SABADO
GO TO 80
70 WRITE (*,*) DOMINGO
GO TO 80
C FIN CASE
80 .
2. Variables compuestas.
Las variables compuestas homogneas (conjuntos de variables del mismo
tipo) permiten la implementacin de estructuras de datos algo ms complejas que aquellas
permitidas por el uso de variables simples, sin embargo se tornan extremadamente tiles,
por ejemplo al representar y realizar operaciones sobre conjuntos de ecuaciones. Tales
conjuntos homogneos son representados por secuencias de variables identificadas
mediante uno o varios ndices.
2.1. Formas de representacin para vectores y matrices; generalidades.
Los vectores corresponden a conjuntos unidimensionales de variables,
mientras que las matrices a conjuntos de ms de una dimensin.
Observaciones:
La dimensin de variables compuestas se representa mediante ndices; as
dichas variables pueden tener hasta 7 ndices;
El ndice de una variable puede asumir valores enteros cualesquiera;
Todos los elementos de un vector deben ser del mismo tipo, el cual es
definido como en el caso de variables simples (INTEGER, REAL,
CHARACTER, LOGICAL, COMPLEX, etc.);
En caso que el tipo de variable no se haya declarado, para la variable
compuesta, se hace obligatoria la declaracin por medio del comando
DIMENSION;
Un determinado elemento de un vector o matriz puede utilizarse como una
variable cualquiera en FORTRAN, por ejemplo
A (I +1) =2 * A (I) +B (I 1)
B (3) =0
A (I +1) =A (I)
Los elementos de un vector son almacenados en posiciones consecutivas de
la memoria del computador.
2.2. Declaracin DIMENSION para vectores.
Forma general:
DIMENSION a
1
(e
11
: e
12
) , a
2
(e
21
: e
22
) , ... , a
k
(e
k1
: e
k2
)
en la cual
a
i
: Nombres de variables de tipo vector;
e
i1
: Lmite inferior del ndice correspondiente (opcional);
e
i2
: Lmite superior del ndice.
Los lmites e
i1
y e
i2
deben ser constantes enteras tal que
2 1 i i
e e > .
Observaciones:
DIMENSION es una declaracin, y debe ir antes del primer comando
ejecutable del programa y despus de las declaraciones de tipo y de
constantes simblicas;
Si no se especifica el lmite inferior e
i1
, se asume igual a 1;
Las declaraciones de tipo de variable pueden substituir completamente la
aparicin de la declaracin DIMENSION, como ser visto a continuacin.
Ejemplos:
a) DIMENSION VECTOR1(100), VECTOR2(50)
Esta declaracin informa al compilador que VECTOR1 y VECTOR2 son
vectores; VECTOR1 est constituido por 100 elementos y VECTOR2 por 50 elementos.
Dichos elementos o componentes quedan identificados a partir de los subndices, los cuales
de 1 a 100 y de 1 a 50, respectivamente.
b) DIMENSION VECTOR3(0:9) , VECTOR4(-3:1)
En este ejemplo los subndices varan de 0 a 9 para VECTOR3 (o sea, se
trata de un vector de 10 componentes), y de -3 a 1 para VECTOR4 (vector de 4
componentes).
2.3. Declaraciones de tipo para vectores.
Forma general:
<Tipo>a
1
(e
11
: e
12
) , a
2
(e
21
: e
22
) , ... , a
k
(e
k1
: e
k2
)
en la que
<Tipo>: INTEGER, REAL, LOGICAL, etc.;
a
i
, e
i1 ,
e
i2
: Tienen el mismo significado antes definido para la
declaracin DIMENSION.
2.4. Declaracin DIMENSION para matrices.
Las matrices corresponden a conjuntos con ms de una dimensin, no
obstante la declaracin DIMENSION se utiliza en forma absolutamente anloga respecto a
los vectores.
Ejemplos:
DIMENSION MATRIZ (3, 4), CUBO (5, 10, 17)
DIMENSION EXOTIC (0:3, -1:1, 2:10)
2.5. Declaracin de tipo para matrices.
Al igual que los vectores, para conjuntos multidimensionales; sus nombres,
cardinalidad y lmites para los subndices pueden especificarse en declaraciones de tipo,
omitiendo as la necesidad de acudir al uso de la declaracin DIMENSION.
Ejemplos:
INTEGER MATRIZ ( 3 , 4 ) , CUBO ( 5 , 10 , 17 )
REAL EXOTIC ( 0 : 3 , -1 : 1 , 2 : 10 )
2.6. Entrada y salida de conjuntos DO implcito.
En FORTRAN existe un recurso muy caracterstico en lo que respecta a la
entrada y salida de datos pertenecientes a variables compuestas, normalmente conocida
como DO implcito. Esta estructura se utiliza, por ejemplo, para leer una secuencia de
componentes de un vector o matriz a lo largo de una sola lnea, dentro de un archivo de
datos.
Forma general:
(<Lista de variables>, i =m
1
, m
2
, m
3
)
en la cual
i , m
1
, m
2
, m
3
tienen el mismo significado ya visto para la utilizacin del
comando DO.
El DO implcito debe ir siempre asociado a un comando de entrada o salida
de datos, y su funcionamiento es similar al del comando DO.
Ejemplos:
Este ejemplo imprime las diez componentes del vector X a lo largo de una
misma lnea:
WRITE (*, 20) (X(I), I =1, 10)
20 FORMAT (1X, 10F5.2)
Este otro ejemplo escribe cinco componentes del vector A cada valor en una
lnea:
WRITE (*, 20) (A(J ), J =1, 5)
20 FORMAT (1X, F5.2)
Este ltimo ejemplo lee consecutivamente en una lnea los valores de
A(1) , B(1) , A(2) , B(2) , A(3) , B(3):
READ (*, 20) (A(K), B(K), K =1, 3)
20 FORMAT (6F5.2)