Está en la página 1de 4

PROGRAMACION (Fortran 90/95)

Lista de ejercicios -Primer Parcial


Juan I. Rodrguez
Marzo-2011
NOTA: Los programas Fortran que resuelven algunos de los problemas que a continuacin se listan
se pueden escribir de distintas maneras, de acuerdo al estilo de cada quien y la robustez del
programa. La calificacin otorgada depender de que el programa entregue resultados correctos y de
que tan robusto (amigable para el usuario) sea.
1.- De acuerdo con la jerarqua de los operadores aritmticos en Fortran, evale las siguientes
expresiones paso a paso (a=2.0; b=4.0; c=2.0; d=4.0; e=-3.0; f=1.0; g=2.0), remarque las que son
iguales unas a otras y especifique cuales tiene error de escritura:
1.1)
1.2)
1.3)
1.4)
1.5)
1.6)
1.7)
1.8)
1.9)
1.10)
1.11)

a*(b+c)*(d+e)/f**g
a*(b+c)*(d+e)/(f**g)
(a*(b+c)*(d+e))/(f**g)
a*(b+c)*d+(e/f)**g
(a*(b+c)*d+(e/f))**g
(a*(b+c)*d+(e/f)*)*g
(a*(b+c)*d+(e/f))*g
((a*(b+c)*d+(e/f)))*g
a*(b+c)*d+(e/f)**g
a*(b+c)*(d+e)/f**g
(a*(b+c)*(d+e))/f**g

2.- Evale las siguientes expresiones


2.1)
2.2)
2.3)
2.4)
2.5)
2.6)
2.7)
2.8)
2.9)
2.10)

13 / 5*6
(13 / 5 ) * 6
13 / (5 * 6)
13. / 5 * 6
INT(13. / 5 ) * 6
REAL(13. / 5) * 6
REAL(13. / 5 * 6)
INT(13. / 5 * 6)
INT(13.) / 5 * 6
REAL(13/5) * REAL(6)

3.- Determine si las siguientes expresiones son falsas o verdaderas (a=1, b=0, c= 37.2, d= -5.4),
3.1)
3.2)
3.3)
3.4)
3.5)
3.6)
3.7)

(a < c) .and. (b>0)


(a < c) .or. (b>0)
(a > c) .or. (b>0) .and. (d>0)
(a > c) .or. (b>0) .or. (d>0)
(a > c) .or. (b>0) .or. (d<0)
(a == 0) .or. (b<=0) .and. (d<0)
(a >= 0) .or. (b>=0) .and. (d>0) .and. (c == -5.4)

3.8)
3.9)
3.10)

(a >= 1) .and. (b>=0) .or. (d>=-5.4) .or. (c == -5.4)


((c+b) >= 0 ) .and. ((d*c a) == -32.5) .and. ((c**2) > 0)
(c+b) >= 0 ) .or. ((d*c a) == -32.5) .or. ((c**2) > 0)

4- Escriba un programa Fortran (para cada inciso) que:


4.1) calcule la hipotenusa de un tringulo rectngulo dados lo catetos
4.2) determine los coeficientes de la recta que pasa por 2 puntos dados por el usuario,
(x1,y1) & (x2,y2) y pueda evaluar y(x) para cualquier x.
4.3) calcule la distancia d entre dos puntos (vectores) en el plano A=(x1,y1) B=(x2,y2) y el
angulo entre ellos (suponga que el usuario especifica A & B),
AB
=arccos

d= x2x12 y2 y12 ;
AB
4.4) calcule la distancia d entre dos puntos en el espacio A=(x1,y1,z1) & B=(x2,y2,z2),
d= x2x12 y2 y12 z2z12
y el ngulo entre A & B (investigue la frmula del ngulo entre 2 vectores en el espacio).
4.5) convierta un vector A=(x,y,z) en el espacio (en coordenadas cartesianas) a un vector en
coordenadas esfricas:
A=r , ,
z
y
donde
r= x 2 y 2z 2 ; =arccos 2 2 2 ; =arctan x
x y z
Al imprimir en pantalla, exprese los ngulos y en grados.
4.6) conviertan la temperatura en grados Celcius a grados Farenheith y viceversa.
4.7)
convierta kilmetros a millas y viceversa
4.8)
convierta pies a metros y viceversa.
4.9)
pulgadas a metros y viceversa.
4.10)
Kilogramos a libras y viceversa.
5.- Escriba un programa Fortran que calcule el exponente y coeficiente exponencial y la poblacin a
cualquier tiempo dados 2 puntos sobre la curva. Use 2 datos reales (obtenidos de internet o de otras
fuentes) para predecir la poblacin de:
5.1)
Mxico en el ao 2077
5.2)
Estados Unidos en el ao 2107
5.3)
la poblacin mundial en el ao 3000
6.- Modifique el programa anterior para predecir el ao en que la poblacin de Mxico, Estados Unidos
y la poblacin mundial se duplicar, se triplicar y, en general, la poblacin sea un mltiplo (definido
por el usuario) de la poblacin actual.
7.- Modifique el programa anterior para predecir la poblacin de Mxico en los aos 2050, 2100,
2150,...,5000. Imprima los resultados en un archivo. Construya con estos datos una grfica de la
poblacin respecto al tiempo (en aos) utilizando un software de su preferencia.

8.- Escriba un programa Fortran que calcule:


8.1)
la suma de los N primeros nmeros naturales
8.2)
la suma de los cuadrados de los N primeros nmeros naturales
9.- Escriba un programa Fortran que calcule, para un entero positivo N dado por el usuario, la secuencia
de Fibonacci, 1,1,2,3,5,8,. .., N (La secuencia se calcula recursivamente, donde cada nmero es
obtenido como la suma de los dos anteriores).
10.- Escriba un programa en Fortran que resuelva una ecuacin cuadrtica ax 2bxc=0
(considerando el caso de races reales o complejas) para cuando a=1 b[1,100 ] & c [ 2,25]
tomando la variaciones de b & c de 0.5 (es decir, b=1.0, 1.5, 2.0, 2.5, ; c=2.0, 2.5, 3.0, 3.5, ).
11.- Calcule el valor de la funcin exponencial para x=27.2, 35.7, -21.56 calculando los N primeros
trminos de la serie,
e x =1x

x2 x3 x4
xn
...=
2 ! 3! 4 !
n=0 n !

para N=5, 10, 50, 100. Compare los resultados en cada caso con el valor usando la funcin intrnseca
EXP(x). Imprima los resultados a un archivo y construya una grfica.
12.- Modifique el programa anterior para que el usuario defina el nmero de trminos considerados en
la serie.
13.- Repita los ejercicios #11 y #12 para la funciones f(x) = tan(x) & f(x) = arccos(x) (utilice las
expresiones de las series de tan(x) & arccos(x) de la literatura).
14.- Escriba un programa que evale la siguiente funcin de dos variables f(x,y) para valores dados de
las variables x & y:

x y
x y 4
f x , y = 2 3
x y
x 2 y 4

si
si
si
si

x0 & y0
x0 & y0
x0 & y0
x0 & y 0

15.- Modifique el problema anterior para calcular el nmero


positivo)

g definido por la suma (N es entero

2N 2N

g = f x i , y j ;

x i=N 2i ;

y j=N2j

i=1 j=1

Imprima en archivo los valores de

g para cuando N=10,20,30,40,50.

16.- Escriba un programa que evale la siguiente funcin de tres variables f(x,y,z) para valores dados
de las variables x, y & z:

x y 42z 3 si x0 & y0 & z0


x y 4 4z si x0 & y0 & z0
x4y4z si x0 & y0 & z0
3
x4y2z si x0 & y0 & z0
f x , y , z =
4
3
4x y 2z si x0 & y0 & z0
4x4y2z3 si x0 & y0 & z0
4x4y4z si x0 & y0 & z0
4x y 44z si x0 & y0 & z0
17.- Modifique el problema anterior para calcular el nmero
positivo)
N

g definido por la suma (N es entero

2N 3N

g = f x i , y j , z k ;

x i=N 2i ;

y j=N4j ;

z j=N8k

i=1 j=1 k=1

Imprima en archivo los valores de

g para cuando N=10,20,30,40,50. Construya una grfica.

También podría gustarte