casass

Páginas: 7 (1627 palabras) Publicado: 24 de marzo de 2013
Electromagnetismo & FORTRAN Capítulo 9
Grupo de Electromagnetismo
4
program ejmplo2
real a,b,d
read(*,*)a,b
d=suma(a,b)
write(*,*)d
end
function suma(a,b)
suma=a+b
return
end
EJERCICIO 9.3

Copiar el programa anterior y ejecutarle.
El ejemplo anterior constituye un programa en el que existen dos
m
ódulos uno el programa principal denominado
ejemplo2
y otro la FUNCION EXTERNAde nombre
suma.
Este último módulo correspondiente a la suma
podría estar en otro fichero independiente con extensión *.FOR de tal modo que habría sido preciso compilar por un
l
ado el programa principal y por otro la función externa y proceder después a su lincado, finalizando con la creación
de un único ejecutable. Este división por ficheros como se ha podido comprobar no es obligatoria yúnicamente se
emplea para programas con
un grado de modularidad elevado.
De una manera general las FUNCIONES EXTERNAS tienen la siguiente configuración:
SENTENCIA
DESCRIPCION
FUNCTION NOMBRE(V1, V2,........VN)
NOMBRE = valor
V1= valor
(OPCIONAL)
RETURN
END
NOMBRE
: Será el nombre simb
ólico mediante el cual realizaremos
la llamada a esta función en el programa principal.V1,.......VN
: Nombre de las variables que intervienen el la función,
son los argumentos ficticios.
El nombre simbólico asignado a la función será una variable de tipo
global y por lo tanto será conocida por todos los programas que
forman parte de la estructura modular diseñada. Por otro lado dentro
de la función externa deberá aparecer la sentencia:
NOMBRE = valor
en la que se hará la asignación delvalor correspondie
nte.
La función externa devolverá al programa principal la variable
NOMBRE con el valor asignado, pero también puede devolver a
través de los argumentos ficticios V1......VN valores asignados a
estos argumentos durante la ejecución de la función externa.
Este
tipo de asignación
V1= valor
es opcional.
En resumen, una FUNCION EXTERNA puede emplearse para
devolver unúnico valor como en el caso de las funciones sentencia o
para devolver un numero determinado de valores en forma de
argumentos de salida a tra
vés de los argumentos V1........VN.
Por último, recalcar que la función externa deberá incluir al menos
una sentencia RETURN y la sentencia END.
En el caso de que la función posea bifurcaciones operacionales podremos incluir una sentencia RETURN en cada
Electromagnetismo & FORTRAN Capítulo 9
Grupo de Electromagnetismo
5
bifurcación con el fin de volver al programa principal. A continuación se muestra un ejemplo:
program ejemplo3
real a,b,d
read(*,*)a,b
d=suma(a,b)
write(*,*)d,a,b
end
function suma(a,b)
suma=a+b
if (suma.lt.0) then
a=10
b=10
return
else
a=0
b=0
return
endif
end
Obsérvese detenidamente la inclusión de dossentencia RETURN una en cada bifurca
ción y obsérvese también que
la función suma no solo devuelve el valor de la suma de a y b, sino que además dependiendo del resultado de a+b,
asigna nuevos valores a las argumentos a y b que serán devueltos al programa principal.
EJERCICIO 9.4

Copiar
e
l programa anterior y ejecutarle. Obsérvese detenidamente la salida de las
variables d,a,c paravalores de a+b positivos y negativos.
EJERCICIO 9.5

Desarrollar un programa que mediante una función externa calcule la integral de una
función f(x)=3x
2
+4 em
pleando el método de los trapecios:
)
2
.....
..........
2
2
(
2
)
(
1
2
1
0
n
n
b
a
f
f
f
f
f
h
dx
x
f
+
+
+
+
+
=


)
(
,
)
(
,
)
(
,
)
(
1
0
h
a
f
f
h
a
f
f
a
f
f
n
a
bh
i
+
=
+
=
=

=
9.3.
-
SUBRUTINAS
Los dos tipos de funciones presentados anteriormente son válidos para determinadas situaciones en las que es
conveniente realizar una estructura
modular del código, sin embargo presentan limitaciones si las necesidades y
complejidad de las operaciones aumenta. Por ejemplo si precisamos un modulo que calcule el producto entre dos
matrices de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • casassa
  • casass
  • Casass
  • Enric Casasses
  • Zuleta, wallerstein, sartori, lozada y casass
  • casass de fuego
  • Fil I Cotó, Enric Casasses

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS