Sie sind auf Seite 1von 9

Taller de Introduccin a la Fsica Computacional

Licenciatura en Fsica
Facultad de Ciencias Exactas, Ingeniera y Agrimensura
Universidad Nacional de Rosario

Unidad Didtcia N 2: Algoritmos y programacin FORTRAN


FORTRAN | Programacin
Segn Niklaus Wirth, programar es la actividad que consiste en idear y proyectar una nueva
mquina cuyo funcionamiento se realiza por intermedio de una mquina preexistente.
Los algoritmos y las estructuras de datos son los materiales (recursos) a partir de los cuales
se construyen los programas. El propio procesador es una combinacin de algoritmos (reglas fijas
materializadas en circuitos electrnicos) y estructuras de datos (basadas en registros y celdas de
memoria).

Ordenador >>> Es una mquina de propsito general cuya naturaleza queda transformada
por el programa que se le proporciona.

FORTRAN | Programacin en pseudocdigo


El uso de un pseudolenguaje o pseudocdigo cercano a nuestro lenguaje natural es una
herramienta interesante para analizar problemas y disear algoritmos que los resuelvan. Adems,
nos permite independizarnos de un lenguaje de programacin especfico y concentrarnos en el
problema que queremos resolver. Luego, en una segunda instancia, las instrucciones en
pseudocdigo se traducen en un lenguaje de programacin de alto nivel.

FORTRAN | Variables y constantes


Para desarrollar algoritmos que sean procesables por un ordenador necesitamos introducir dos
conceptos fundamentales: variables y constantes.

Variables

>>> Simbolizan objetos que tienen asociados una direccin o localizacin en


memoria y un valor o contenido que puede cambiar durante la ejecucin de un algoritmo.
Poseen los siguientes atributos: un nombre que los designa y un tipo que describe su uso.

Las variables tienen asociado un valor y, por lo tanto, vamos a necesitar un procedimiento para
asignar valores a variables que indicaremos con el smbolo: .
En el siguiente ejemplo le asignamos el valor 9.8 a la variable que hemos denominado AGRAV:
AGRAV 9.8
Taller de Introduccin a la Fsica Computacional
Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

Este smbolo es el que usaremos para pensar y expresar los algoritmos en pseudocdigo.
Los lenguajes de programacin tienen sus propios smbolos para indicar la asignacin de
valores variables.
En FORTRAN, el operador de asignacin es el smbolo = (igual) y la instruccin correspondiente
al ejemplo anterior escrita en este lenguaje es:
AGRAV = 9.8

Constantes

>>> Son objetos cuyo valor no puede cambiar durante la ejecucin del
algoritmo. En el ejemplo anterior, 9.8 es un objeto constante. Tambin tienen asociado un
tipo que las caracteriza.

FORTRAN | Tipos de datos


En general, existen tres tipos de datos primitivos asociados a variables y constantes:

tipo numrico,
tipo lgico y
tipo caracter.

El tipo de una variable describe sus posibilidades de uso y la cantidad de memoria que la mquina
va a utilizar para almacenarla.
El tipo numrico est constituido por dos conjuntos:

Tipo numrico entero


Tipo numrico real

El tipo numrico entero es un subconjunto finito de los nmeros enteros comprendido entre los
valores mximos y mnimos representables por un computador. Ejemplos: -16, 49, +105
El tipo numrico real consiste en un subconjunto de los nmeros reales y siempre tienen punto
decimal. Ejemplos: 0.002, -1.26, 3.5E+03
Observacin: La notacin 3.5E+03 simboliza la constante numrica real: 3.5 10 3. Por
ejemplo, si queremos definir en un algoritmo codificado en FORTRAN el valor de la
constante de gravitacin expresado en N.m2/kg2 hacemos: G=6.67E-11.

En el lenguaje de programacin FORTRAN, las variables numricas tienen asociado un tipo por
defecto a menos que se indique lo contrario.
As, se asume que son de tipo numrico real si comienzan con una letra comprendida en los
intervalos: A-H u O-Z. Las variables cuyo nombre comienza con alguna de las letras restantes
asumen por defecto el tipo numrico entero.

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

Ejemplos:
Ndatos
AGRAV G

L
pi

IMAX
XY

Por defecto, son de tipo numrico entero


Por defecto, son de tipo numrico real

FORTRAN | Estructura de un programa FORTRAN


Un programa FORTRAN simple tiene la siguiente estructura:
PROGRAM nombre_del_programa
Sentencias de declaracin de tipo de variables
Sentencias o instrucciones FORTRAN
END
En el estndar FORTRAN-77 (versin del lenguaje FORTRAN que utilizaremos en este taller), las
sentencias (o instrucciones) deben escribirse a partir de la columna nmero 7 (se puede usar el
tabulador para simplificar la escritura del programa).
La columna 6 se utiliza para indicar que una sentencia ocupa ms de una lnea, y se lo hace
colocando un smbolo de continuacin en la misma (es comn utilizar un dgito como carcter de
continuacin de sentencia).
Si en la columna 1 se coloca una letra C, se asume que la lnea es un comentario y no una
instruccin FORTRAN; por lo tanto, esta lnea es ignorada por el compilador.

Ejemplo:
PROGRAM MTIERRA
C- Clculo aproximado de la masa de la Tierra en kg
REAL MT
G=6.67E-11
AGRAV=9.8
RT=6.37E+06
MT=AGRAV*(RT*RT)/G
WRITE(*,*) 'Masa de la Tierra (kg): ', MT
END

FORTRAN | Instrucciones de entrada y salida de datos


En los lenguajes de programacin existen instrucciones que permiten leer valores o datos que
ingresan por las unidades de entrada de informacin (teclado, por ejemplo) y escribir o mostrar
resultados por las unidades de salida (monitor, por ejemplo).

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

En pseudocdigo vamos a utilizar las siguientes instrucciones:


LEER variable
Para ingresar datos por teclado
ESCRIBIR variable
Para escribir resultados en el monitor
En FORTRAN, vamos a utilizar las siguientes instrucciones para realizar estas operaciones:
READ(*,*) variable
Para ingresar datos por teclado
WRITE(*,*) variable
Para mostrar datos en el monitor
Ejemplo:
PROGRAM DENSI
C- Densidad media de la Tierra
REAL MT
Defino como real la variable MT que, por defecto, sera entera
PI=3.1416
RT=6.37E+06
WRITE(*,*) 'Masa de la Tierra (kg): '
READ(*,*) MT
VOLT=(4.0/3.0)*PI*(RT**3)
D1=MT/VOLT
WRITE(*,*) 'Densidad media (kg/m3) = ', D1
WRITE(*,*) 'Densidad media (g/cm3) = ', D1*1.E+03/1.E+06
END

FORTRAN | Expresiones aritmticas


Una expresin describe un clculo a realizar cuyo resultado es un nico valor. Toda expresin
contiene operadores y operandos.
En la siguiente tabla se muestran los operadores aritmticos y sus smbolos.
Operador
Suma
Resta
Multiplicacin
Divisin
Potencia

Smbolo
+
*
/
**

Los operandos pueden ser constantes de tipo numrico, variables de tipo numrico, expresiones y
funciones. Los smbolos de los operadores corresponden a la sintaxis FORTRAN.
Ejemplos:
<< FORTRAN >>

VOLT=(4.0/3.0)*PI*(RT**3)

WRITE(*,*) D1*1.E+03/1.E+06

X=V0*cos(alpha)
funcin interna
Y=V0*sin(alpha)
funcin interna

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

En la evaluacin de expresiones aritmticas debemos tener en cuenta que:

Todas las expresiones encerradas entre parntesis se evalan primero.


Las operaciones aritmticas dentro de una expresin se ejecutan de acuerdo a un cierto
orden de precedencia dado por la siguiente tabla:

Operacin
**
*, /
+,-

Precedencia
1
2
3

Orden de evaluacin
Derecha a Izquierda
Izquierda a Derecha
Izquierda a Derecha

FORTRAN | Funciones internas


Los lenguajes de programacin contienen una serie de funciones ya definidas y se denominan
funciones internas.
En la tabla siguiente se presenta un listado de las principales funciones del FORTRAN.
El argumento de estas funciones debe ser de tipo numrico real, salvo para abs, int, min y max
que pueden tener argumento real o entero.
Funcin
sen x
cos x
tan x
senh x
cosh x
tanh x
sen-1 x
cos-1 x
tan-1 x
x1/2
ex
ln x
log10 x
|x|
[x]
max(x, y, z, . . .)
min(x, y, z, . . .)

FORTRAN
sin(x)
cos(x)
tan(x)
sinh(x)
cosh(x)
tanh(x)
asin(x)
acos(x)
atan(x)
sqrt(x)
exp(x)
log(x)
log10(x)
abs(x)
int(x)
max(x,y,z,...)
min(x,y,z,...)

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

FORTRAN | Proyectos Computacionales


Disee algoritmos para abordar las siguientes propuestas de trabajo y codifquelos en lenguaje
FORTRAN. Ejecute los programas, verifique resultados y anote sus conclusiones. Tenga en
cuenta que todos los proyectos se resuelven usando los recursos del lenguaje dados hasta el
momento.

PC 1: Obtener el resultado de la ejecucin de los siguientes algoritmos. Luego,


implementarlos en lenguaje FORTRAN y verificar.

Comienzo
X 2.0
Y 3.0
R X*Y-X
Escribir R
Fin

Comienzo
R4
X2
R R*X
Escribir R
Fin

Comienzo
Leer A , B
AB
BA
Escribir A , B
Fin

PC 2: Implemente un algoritmo para intercambiar los valores de dos variables reales. Los
valores se ingresan por teclado.

PC 3: Obtenga el resultado de la ejecucin del siguiente pseudocdigo. Luego, exprselo en


FORTRAN y ejectelo.

Comienzo
Leer A , B
A A+B
B A-B
A A-B
Escribir A , B
Fin

PC 4: Predecir el resultado y el tipo de las siguientes expresiones aritmticas. Luego,


implemntelas en lenguaje FORTRAN, ejecute el cdigo obtenido y verifique sus predicciones.
4**2+1
5*4/2

1/4+2
1/3+1/5.0

3.0**3+2
5+7*3.0+5**3

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

exp(1.0)
4.0*atan(1.0)

PC 5: Implemente un algoritmo que permita calcular las races de la ecuacin:

ax 2 bx c 0

PC 6: Disee un algoritmo que evale la funcin sen(x) usando los primeros 4 trminos de su
aproximacin en serie de Taylor. Comparar el resultado obtenido con el que surge de usar la
funcin de biblioteca interna del FORTRAN.

PC 7: La velocidad mnima requerida para que un objeto pueda escapar a la atraccin


gravitatoria de un astro de masa M y radio R se denomina velocidad de escape y est dada
por:

ve

2 GM
R

Disear un algoritmo para calcular las velocidades de escape de diversos astros.


Cuerpo
Tierra
Jpiter
Luna
Sol

Masa (kg) Radio Medio (m)


5.98 x 1024
6.37 x 106
27
1.90 x 10
6.99 x 107
22
7.36 x 10
1.74 x 106
1.99 x 1030
6.96 x 108

PC 8: La siguiente expresin nos permite calcular la velocidad media cuadrtica vrms de las
molculas de un gas ideal de masa molar Mmol (kg/mol) a una dada temperatura T (K):

vrms

3 RT
M mol

Siendo R=8.315 J/(mol.K) la constante universal de los gases.


Disear un cdigo FORTRAN para calcular las velocidades
correspondientes a diversos gases a temperatura ambiente.
Gas
H2
He
O2
H2O
CO
CO2

cuadrticas

medias

Masa Molar(g/mol)
2.02
4.0
32
18
28
44

PC 9: Calcular el alcance mximo de un saque de arco para una dada velocidad inicial ( v0 )
suponiendo que no hay rozamiento con el aire y que la trayectoria transcurre en el plano.

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

FORTRAN | Proyectos Computacionales adicionales

PCa 1: Disear un algoritmo que determine el mximo y el mnimo valor de una secuencia de 5
valores enteros que se ingresan por teclado.

PCa 2: Calcule el promedio de 3 valores que se ingresan por teclado.

PCa 3: Dado un nmero entero de 4 cifras, implemente un algoritmo para descomponerlo en


unidades de mil, centenas, decenas y unidades.

PCa 4: Implementar un programa que genere los primeros 4 nmeros de la secuencia:

ni 1 4 ni

n1 1

PCa 5: Ejecutar el siguiente programa FORTRAN y analizar los resultados obtenidos.


program trece
no=3.7
big=-2.8
m=2
n=3
gol=no+big
j=m/n
write(*,*) gol= ,gol
write(*,*) j= ,,j
end

PCa 6: Desarrollar un algoritmo para resolver sistemas lineales de ecuaciones del tipo:

a x b y c

d x e y f
a, b, c, d , e, f constantes

PCa 7: Obtener el caracter ASCII correspondiente a un nmero entero entre 0 y 255 que se
ingresa por teclado. Identificar los cdigos correspondientes a los dgitos decimales (0,1,..9), a
las letras minsculas (a,b,...,z) y a las maysculas (A,B,...,Z).

Cdigo

ASCII >>> Cada caracter tiene asociado un nmero entero entre 0 y 255. Esta
codificacin se resume en una tabla denominada Tabla ASCII. Los lenguajes de
programacin tienen funciones internas que permiten obtener el cdigo de un caracter o
dado un valor el caracter que le corresponde. En FORTRAN, estas funciones son
ICHAR(caracter) y CHAR(entero) respectivamente.

PCa 8: Dada una letra en minscula que se ingresa por teclado, desarrollar un algoritmo para
transformarla a mayscula.

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

PCa 9: Desarrollar algoritmos para implementar cada una de las siguientes expresiones
aritmticas. Asignarle valores a las variables y verificar los resultados obtenidos.

Y X /3

B
CD
1 X
Y

b 2 4ac

A B
CD

X3

A
1
B

G
1
C
X Y

log( x x 2 a 2 )

sin 1 ( x) cos 1 ( x) para cualquier valor de x

Al finalizar el trabajo en esta unidad usted tiene que:


Comprender qu se entiende por ejecucin secuencial.
Escribir algoritmos sencillos en pseudocdigo y codificarlos en lenguaje FORTRAN.
Comprender los conceptos de variables, constantes y tipos de datos.
Utilizar expresiones aritmticas con soltura.
Manipular funciones internas.
Editar, compilar y ejecutar programas FORTRAN usando un sistema de desarrollo de aplicaciones.

Taller de Introduccin a la Fsica Computacional


Hugo Navone | hnavone@fceia.unr.edu.ar | www.fceia.unr.edu.ar/~ifc

Das könnte Ihnen auch gefallen