Transcript Color

FORTRAN 90/95
Diagrama de una computadora
Memoria
principal
Memoria
secundaria
Memoria interna
(registros)
Periféricos de
entrada
Unidad de
control
Unidad
aritmética y
lógica
Unidad Central de
procesamiento (CPU)
Periféricos de
salida
La CPU es el alma de la computadora:
• Unidad de Control: controla todas las otras partes de la computadora.
• Unidad Aritmética y lógica: realiza los cálculos matemáticos lógicos
• Memoria Interna: almacena temporariamente de los resultados intermedios
durante los cálculos.
Memoria Principal: es utilizada para almacenar temporariamente el programa
que está ejecutando la computadora y los datos que el programa requiere.
Memoria secundaria: almacena los programas y los datos por el tiempo
requerido por el usuario. Ej.: Disco rígidos, CD etc.
Las memorias de la computadora está compuesta de millones de interruptores
Cada interruptor representa in digito binario (bit)
SI=1
NO=0
Varios bits agrupados pueden ser usados para representar un número en el
sistema de numeración binario.
Un byte= 8bit es la agrupación mas pequeña de bits para representar un
número en sistema binario.
Los bytes son usados para medir la capacidad de memoria de una
computadora.
Ej
Memoria Principal 256 megabytes (256 millones de bytes)
Disco Rígido 40 Gigabytes (40 billones de bytes )
 Actualmente las CPU usan agrupaciones de 32 bits (4 bytes) o 64 bits (8 bytes,
windows vista) . A esta agrupación dependiente de cada computadora se lo llama
word (no es un valor fijo → 2n bytes)
Sistema decimal

Sistema binario
122
Dos dígitos 0 y 1
Ej: 12210

2 x 100
2x
101
1 x 102
12210= 1 x 102 +2 x 101 + 2 x 100
26 →
25 →
24 →
23 →
22 →
64
32
16
8
4
122 – 64 = 58
58 – 32 = 26
26 – 16 = 10
10 – 8 = 2
2 – 4 = Excede
el 122
21 → 2
20 → 1
2–2=0
0 – 1 =Excede
el 122
11110102 = 1 x26 + 1 x 25 +1 x 24 + 1 x
23 + 0 x 22 + 1 x 21 + 0 x 20
Usamos 7 bits para representar al 122
En general, si se agrupan n bits se pueden representar 2n posibles valores.
Ej:
 8bits = 1 byte puede representar 256 valores numéricos desde -128 a +127
inclusive (la mitad valores negativos y la otra mitad el 0 mas los valores positivos).
 16 bits = 2 bytes pueden representar 65536 posibles valores (-32768 a
+32767)}
 32 bits = 4 bytes pueden representar 4294967296 posibles valores.
Caracteres del FORTRAN
N° de Símbolos
Tipo
Caracter
26
Letras mayúsculas A – Z
26
Letras minúsculas
a-z
10
Digitos
0-9
1
Guión Bajo
_
5
Símbolos
aritméticos
+ - * / **
17
Miscelánea de
símbolos
( ) . = , ´ $ :
! “ %& ; < >
? y blanco
El Fortran no distingue entre mayúsculas y minúsculas.
Ej: Alfa=ALFA=alfa
Un programa FORTRAN consiste en una serie de sentencias u “ordenes“
destinadas a cumplir objetivo del programador
Sentencias
ejecutables
Describen acciones como
operaciones aritméticas etc.
Sentencias no
ejecutables
Provee información
necesaria para la ejecución
del programa.
La sentencias en Fortran 90/95 pueden ser escritas en cualquier lugar de una
línea y superar los 132 caracteres.
Si una línea es muy larga para continuar en la línea siguiente debe finalizar con
un amperson (&) ( se puede empezar en la siguiente con también con un
amperson).
 Puede continuarse hasta 40 líneas
Ej: 3 formas de escribir la misma sentencia
Sum = entra1+ entra2 ! Suma los valores de entra1 y entra2
Sum = entra1 &
+ entra2 ! Suma los valores de entra1 y entra2
999 Sum = entra1 &
&+ entra2
! Suma los valores de entra1 y entra2
Los textos que se encuentran después del signo de admiración son
comentarios. Son ignorados por el FORTRAN y ayudan para la
documentación del programa. Se utilizan al final de la sentencia.
La última sentencia esta precedida por un número . Éste es como el
“nombre” se la sentencia, se llama nivel y puede tener un número entre 1 y
99999. Se utiliza para invocar a esa sentencia desde otro lugar del
programa. No es el número de línea.
La estructura de un programa FORTRAN
La sección de declaración: Grupo de sentencias no ejecutables al comienzo
del programa que define el nombre del programa y el numero y tipo de variables
utilizadas en el programa.
La sección de ejecución: Sentencias que describen las acciones a ser
realizadas por el programa
La sección de terminación: Sentencias que paran la ejecución del programa
y le indican al compilador que el programa esta completo
Ej: Leer 2 números enteros multiplicarlos e imprimir su resultado
PROGRAM mi_primer_programa
! Objetivo: Ejemplificar las secciones de un programa FORTRAN
! Declaro las variables usadas en el programa
INTEGER : : i, j, k
! Leo los números que hay que multiplicar y los guardo en las variables i y j
WRITE(*,*) ´entrar los numeros que hay que multiplicar´ !Cartel
READ(*,*) i, j
k=i*j
! Multiplico los números
WRITE(*,*) ‘resultado=‘, k ! Imprimo el resultado
! Finalización
STOP
END PROGRAM mi_primer_programa
Compilar, Conectar (linking → “linkeditar”) Ejecutar un Programa FORTRAN
Programa
FORTRAN
Archivo
Objeto
Compilar
nombre.for
“linkeditar”
nombre.obj
Compilador
FORTRAN
Programa
Ejecutable
nombre.exe
Sistema de
librerías
Ayuda a identificar
errores del lenguaje
FORTRAN
Constantes y Variables en FORTRAN
Constantes: Se definen al comienzo del programa. El compilador le asigna un
valor constante en la memoria y luego se la puede invocar en cualquier punto del
programa.
Variables: Se le asigna un lugar variable en la memoria. Los nombres de las
variables pueden tener hasta 31 caracteres y pueden ser alfabéticos, numéricos
y el guión bajo pero deben comenzar con un carácter alfabético.
Ej:
mes, z500, vorti_300
Buenas Costumbres:
 Poner nombres que nos ayuden a identificar las variables.
Ej: mes
 Hacer un diccionario de los nombres de las variables.
Ej: z500 geopotencial en 500 Hpa
vorti_300 vorticidad relativa en 300 HPa
Hay 5 tipos de constantes y variables FORTRAN
Enteras
Reales
Complejas
Lógicas
Character (grafía)
Constantes y variables enteras: “No pueden tener ni puntos ni comas”
No representan números con fracciones
Se almacenan en una word ⇒ la magnitud del valor
del entero que se pueda almacenar va a depender de la computadora (si trabaja en 16, 32 o
64 bits).
Constantes y variables reales:“Pueden tener punto decimal pero no comas”
Representan números con fracciones
Pueden ser escritos con o sin exponente entero (1.2e5, 0.000012, 0.12E1) La mantisa debe tener el punto decimal.
La mantisa (precisión) y el exponente (rango) se
almacenan en 2 partes. (Ver Tabla )
Computado- Bits totales
ra
para el
Bits para
mantisa
número
Precisión
en dígitos
decimales
Bits para el Rango del
exponente exponente
IEEE (PC)
32
24
7
8
10-38 a 1038
IEEE
(Macitosh,
Sun Sparc,
etc)
64*
53
15
11
10-308 a 10308
VAX
32
64*
24
56
7
15
8
8
10-38 a 1038
10-38 a 1038
Cray
64
49
14
15
10-2465 a
102465
* Indica longitud opcional
Constantes y variables character: Sucesión de símbolos alfanuméricos.
Constantes → se escriben entre ‘ o “ Ej:
‘Resultado = ‘ o “Resultado =“.
Definición implícita o explícita de Variables:
Implícita: Las variables que comienzan con la letras I, J, K, L, M y N son
consideradas enteras Las que comienzan con alguna otra letra es
considerada real.
Explícita: Las variables son definidas al comienzo del programa en la
sección de declaración (sentencias no ejecutables)
Integer : : var1, var2, var3
REAL : : var4, var5
Los dobles 2 puntos son opcionales pero se usan para funciones más
complejas
En los programa Fortran, es posible no declarar algunas variables y
dejar que el compilador asuma su tipo a partir de la primera letra de
su nombre. Esto es muy poco recomendable por lo que vamos a
utilizar la modalidad en la que todas las variables son declaradas y le
vamos a indicar al compilador que vamos a trabajar de esta manera
utilizando la sentencia
IMPLICIT NONE
Esta sentencia se ubica luego del nombre del programa y antes de
empezar con la declaración de variables.
Las variables Character: deben ser definidas explícitamente y
especificar su longitud.
CHARACTER (len= <longitud>) : : var1, var2, var3
Ej:
CHARACTER (len=20) : : presion, temperatura, humedad
CHARACTER (20) : : presion, temperatura, humedad
Puede usarse:
CHARACTER*20 presion, temperatura, humedad (FORTRAN 77)
Esta última forma fue declarada obsoleta en Fortran 95 por lo cual no
se recomienda su utilización en nuevos programas
Otra forma para declarar constantes:
Tipo, PARAMETER : : nombre = valor
Ej:
REAL, Parameter : : PI=3.141593, Omega= 7.28E-5
Setencias de asignación:
El signo = significa una asignación. La expresión a la derecha de una
igualdad esta asignando ese valor a la que está a la izquierda.
Ej:
i = i + 1 → significa que al valor almacenado en la memoria con el nombre i
se le suma 1.
Cálculos aritméticos:
Son: + → adición, - → sustracción, * → multiplicación, / → división,
** → potenciación
Los cálculos: No pueden aparecer 2 operadores seguidos:
K= 2* -2 → No
K= 2* (-2) → Correcto
Las operaciones deben se explicitas
p= x(y + z) → No
p = x * (y + z) → Correcto
Los paréntesis se resuelven de adentro hacia afuera:
q = 2**((8+2)/5) = 2**(10/5) = 2**2 = 4
Aritmética Entera
El resultado de una operación entre números enteros es un entero
El resultado fraccionario de un cociente entre enteros es
truncado
Aritmética Real
El resultado de una operación entre números reales es un real
Tener en cuenta los errores de precisión
Las operaciones entre reales y enteros se llaman mixtas y resultan
confusas.
Ej: 1+ 1/4 =1
1.+ 1/4 =1.
1+ 1./4=1.25
La operación entre un real y un entero da un real.
El FORTRAN 90/95 tiene funciones para transformar los números enteros en
reales y los reales en enteros.
Nombre de
la función
Argumento
Resultado
Comentario
INT(x)
REAL
ENTERO
Parte entera
de x (trunca)
NINT(x)
REAL
ENTERO
Redondea
REAL(i)
ENTERO
REAL
Convierte en
entero un
valor real
En la función exponencial usar siempre que sea posible números enteros.
Nunca elevar un número negativo a una potencia real.