200 likes | 313 Views
Seminario de Computación. FORTRAN 90/95. Diagrama de una computadora. Memoria principal. Memoria secundaria. Memoria interna (registros). Unidad de control. Periféricos de entrada. Periféricos de salida. Unidad aritmética y lógica. Unidad Central de procesamiento (CPU).
E N D
Seminario de Computación FORTRAN 90/95
Diagrama de una computadora Memoria principal Memoria secundaria Memoria interna (registros) Unidad de control Periféricos de entrada Periféricos de salida Unidad aritmética y lógica Unidad Central de procesamiento (CPU)
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)
El sistema de numeración binario Sistema decimal Sistema binario 2 x 100 2 x 101 • 122 • Dos dígitos 0 y 1 Ej: 12210 26 → 64 122 – 64 = 58 25 → 32 58 – 32 = 26 24 → 16 26 – 16 = 10 23 → 8 10 – 8 = 2 22 → 4 2 – 4 = Excede el 122 21 → 2 2 – 2 = 0 20 → 1 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 1 x 102 12210= 1 x 102 +2 x 101 + 2 x 100
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.
Elementos Básicos del FORTRAN Caracteres del FORTRAN El Fortran no distingue entre mayúsculas y minúsculas. Ej: Alfa=ALFA=alfa
LasSentenciasFortran Un programa FORTRAN consiste en una serie de sentencias u “ordenes“ destinadas a cumplir objetivo del programador Sentencias no ejecutables Sentencias ejecutables Provee información necesaria para la ejecución del programa. Describen acciones como operaciones aritméticas etc. • 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 & ! Suma los valores de entra1 y entra2 • &+ 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 ProgramaFORTRAN Archivo Objeto Programa Ejecutable Compilar “linkeditar” nombre.for nombre.obj nombre.exe Compilador FORTRAN 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 enuna 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.2e-5, 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 )
* 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.
! En la función exponencial usar siempre que sea posible números enteros. Nunca elevar un número negativo a una potencia real.