Anda di halaman 1dari 10

Sentencias de control en Fortran

Sentencia IF
El lenguaje FORTRAN ejecuta las sentencias en el orden en el que estn escritas. Sin embargo, hay varias formas de
romper este orden, bien continuando la ejecucin en alguna sentencia posterior o anterior, o bien eligiendo entre
ejecutar un grupo de sentencias u otro, segn el valor que tome una o varias variables.

IF
Comenzamos analizando esta segunda alternativa, la cual es permitida utilizando la sentencia IF combinada con la
sentencia ELSE. Tiene la forma siguiente
IF (expresin lgica) THEN
(bloque 1 de sentencias)
ELSE
(bloque 2 de sentencias)
END IF
Si la expresin lgica es verdadera, ejecuta el bloque de sentencias 1 y si es falsa el bloque de sentencias 2
Cuando la decisin a tomar radica entre ejecutar un bloque de sentencias o no, no es necesario la sentencia ELSE,
con lo que el conjunto toma la forma:
IF (expresin lgica) THEN
(bloque de sentencias)
END IF
De forma que si la expresin lgica es verdadera ejecuta el bloque de sentencias y si es falsa no.
Las expresiones lgicas ms usadas son tipo comparativo, entre variables y combinaciones de las mismas.
As para indicar A<B expresamos
A.LT.B indicando LT less tan (menor que)
Asimismo se tiene
LE

(les sor equal)

(menor o igual)

EQ

(equal)

(igual)

GT

(greater than)

(mayor que)

GE

(greater or equal)

(mayor o igual)

NE

(non equal)

(distinto)

Para combinar estas expresiones pueden utilizarse los conectores

AND

y lgico

OR

o lgico

NOT

negacin lgica

El saludo Hola se imprime siempre, pero el resto depende de n. (La funcin mod sirve para calcular el resto de
la divisin entera).

1. Dado el siguiente diagrama de flujo, elabore el programa respectivo.

2. Elabore un programa que muestre un mensaje de acuerdo a la nota obtenida por un alumno en una
determinada asignatura. Si la nota es mayor a 12, el programa debe ser capaz de emitir un mensaje que
felicite al alumno, en caso contrario el programa debe emitir un mensaje que le indique que debe
esforzarse para mejorar.
3. Elabore un programa que encuentre el valor mnimo entre los valores reales a,b,c y guarde el resultado
en la variable Result

CICLOS EN FORTRAN 90

Construccin de repeticin
Esquema repetitivo tipo 1 (DO)

Repetir indefinidamente el conjunto de instrucciones 1

Esquema repetitivo tipo 2 (DO indexado)

Para cada valor del ndice IND en un rango fijado, ejecutar el conjunto de instrucciones 1

Esquema repetitivo tipo 3 (DO WHILE)

Mientras que se verifica la condicin c, ejecutar el conjunto de instrucciones 1.

La construccin DO y la instruccin EXIT


Permite escribir un esquema de tipo 1, en el que un determinado conjunto de instrucciones, simplemente, se
ejecuta indefinidamente. Su forma general es:

DO
instrucciones
END DO
Lgicamente, en un programa que tenga sentido, el conjunto de instrucciones en cuestin deber contener
algn mecanismo que interrumpa en algn momento la repeticin, bien deteniendo el programa (STOP), bien
enviando el control de la ejecucin a otro punto del mismo. Una forma de hacerlo es utilizar la instruccin EXIT
que finaliza la ejecucin del bucle y pasa el control a la instruccin siguiente al END DO

EJEMPLO

EJERCICIO 1
Podemos obtener la raz cuadrada de cualquier nmero x usando operaciones aritmticas tales como suma,
resta y divisin, basados en el mtodo de Newton (proceso iterativo). Para ello realizamos un algoritmo de
programa para obtener la raz cuadrada para A=2.

Ingresar un valor para A


Inicializar la variable x a 1
Hacer que se repita 6 (seis) veces la sentencias

Reemplace x por

Imprima el nuevo valor de x


Fin de la repeticin

(+ )
2

EJERCICIO 2
Utilizando los comandos IF y DO, elabore un programa que calcule el factorial de un nmero.
EJERCICIO 3
Utilizando el comando DO, encuentre la sumatoria de los 10 primeros trminos de la siguiente sucesin:
=1 ( + 1).

El DO indexado
Permite escribir un esquema de tipo 2, en el que una variable, denominada ndice del DO, va tomando una serie
de valores en un rango prefijado, y para cada nuevo valor se ejecuta un determinado conjunto de instrucciones.
Su forma general es:

DO ndice = valor-inicial, valor-final, incremento


instrucciones
END DO
Su funcionamiento es el siguiente:
1. Inicialmente, se hace ndice= valor-inicial.
2. En el caso que incremento es positivo, si ndice es menor o igual que valor-final, se ejecuta el conjunto
de instrucciones. Si no, se termina la ejecucin del DO. En el caso en que incremento es negativo, si el
ndice es mayor o igual al valor que valor-final, se ejecuta el conjunto de instrucciones. Si no, se termina
la ejecucin del DO.
3. Se incrementa el valor del ndice, es decir, se hace ndice=indice+incremento y se repite la

etapa anterior hasta que, en alguna iteracin, se termina la ejecucin del DO.
4. Cuando se termina la ejecucin del DO, el programa contina por la instruccin siguiente al

END DO.
Algunas observaciones sobre esta construccin:
a) El ndice del DO, ndice, debe ser una variable entera. Su valor puede ser utilizado dentro del

conjunto de instrucciones que forman el cuerpo del DO, pero no debe ser modificado.
b) valor-inicial, valor-final y incremento pueden ser constantes o variables enteras o expresiones

que produzcan valores enteros. Sus valores son determinados al comienzo del DO, es decir,

antes de que ninguna instruccin sea ejecutada. Cualquier modificacin dentro del cuerpo del
DO no tendra ninguna consecuencia sobre el mbito del DO.
c) Si, inicialmente, valor-final es mayor que valor-inicial (recprocamente, menor que, si

incremento es negativo), entonces el conjunto de instrucciones no se ejecuta ninguna vez,


debido a que en la primera iteracin ya se verifica la condicin de parada.
d) Si el valor de incremento es 1, entonces no es necesario indicarlo, es decir, se puede escribir,

solamente:
DO ndice = valor-inicial, valor final

e) Cuando se termina la ejecucin del DO, la variable-ndice conserva el ltimo valor que tom

(tras el ltimo incremento), que puede no ser el ltimo valor para el que se ejecut el bucle,
como puede observarse en el ejemplo siguiente.

EJEMPLO

El DO indexado puede tambin escribirse de la forma siguiente

Do iet ndice = valor-inicial, valor-final, incremento


instrucciones
iet CONTINUE

Donde iet es un nmero de etiqueta, es decir: un nmero del 1 al 99999 que se pone delante de
determinadas instrucciones, en las columnas 1-5, para identificarlas. El programa anterior se
escribirlas, con este formato:

EJERCICIO 1
Escriba un programa que muestre los cuadrados de todos los nmeros impares comprendidos entre 1 y 25
EJERCICIO 2
Elabore un programa que realice la siguiente sucesin 1 +

1
32

1
52

1
72

+ +

1
,
(+1)2

par que usted ingresara por teclado. Verifique su programa para el valor de n = 15.

donde n es un numero

El DO WHILE (mientras)

Permite escribir un esquema de tipo 3, en el que un conjunto de instrucciones se ejecutara en tanto se


verifique una determinada condicin. Su forma general es:
DO WHILE (expresin-lgica)
instrucciones
END DO

Su funcionamiento es el siguiente: al comenzar cada iteracin, se evala la expresion-logica y, si toma


el valor .TRUE., se ejecuta el conjunto de instrucciones y se vuelve a iterar, pero si toma el valor .FALSE.
se detiene la ejecucin del DO WHILE y el programa se sigue ejecutando por la instruccin siguiente al
END DO.

Los bucles se pueden anidar (crear un bucle dentro de otro). En el ejemplo siguiente el ndice interno
depende del externo:

EJERCICIO 1

Dado el siguiente algoritmo, escribir el cdigo fortran correspondiente.

Inicializar el valor de f a 1..0


Inicializar la variable k a 2
Ingresar el valor de n
Mientras k=<n ; reemplace f por f*k ; k = k+1
Imprima el nuevo valor de k, f
Fin de la repeticin

Anda mungkin juga menyukai