FORTRAN 90/95 Lenguaje FORTRAN PRIMER lenguaje de Alto nivel

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

Introducción al lenguaje C
Programación de Computadores
Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Repaso para la construcción del intérprete 2012
Técnico en programación de Software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Tema 2: Lenguaje PHP básico
1.2 Sintaxis del lenguaje Java.
FORTRAN 90 CONCEPTOS BÁSICOS.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
ESTRUCTURAS DE SECUENCIA
Algoritmo y Estructura de Datos I
Una breve introducción
Arreglos (vectores, matrices, ….)
Conceptos Básicos de Java
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
El compilador usa una técnica llamada “unificación” que comprueba que en cualquier aplicación, los tipos coinciden con los tipos correspondientes de los.
MÓDULO DE PROCEDIMIENTOS Los módulos también pueden contener subrutinas y funciones → MÓDULO DE PROCEDIMIENTOS  PROCEDIMIENTOS → son compilados como parte.
ALGORITMOS Y ESTRUCTURA DE DATOS
Tipos de Datos Básicos 1.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Tema 3 Entrada y Salida.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Fundamentos de Programación
LENGUAJE “C” Programación.
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Arrays (introducción)
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
Programación en Matlab
CARACTERÍSTICAS DE LOS PROGRAMAS
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Tema 2: Los tipos de datos
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
TIPOS DE DATOS TipoDescripciónRango IntegerEntero (2 bytes) a LongEntero largo (4 bytes) a SinglePunto flotante de simple.
Programación en Pascal
ESTRUCTURA DE DATOS ESD-243
COMPONENTES DE UN ALGORITMOS
Fórmulas y Funciones Básicas
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
VBA – Elementos del Lenguaje
Programación en C para electrónicos
PARCIAL DE JUNIO DEL 2014 LENGUAJE DE PROGRAMACIÓN UN LENGUAJE SE PUEDE DEFINIR COMO UN CONJUNTO DE PALABRAS Y FORMAS DE EXPRESIÓN POR MEDIO DE.
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
Estructura de un programa C
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
UNIVERSIDAD TECNICA PERTICULAR DE LOJA
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Sesión 4 Secuencias Básicas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
PRINCIPIOS DE PROGRAMACIÓN

Presente un cuestionario con los aspectos mas importantes sobre los
Fundamentos de Programación
Lic. Carla Aguirre Montalvo
Programación de Computadores
Lenguaje de programación c
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
Informática Ingeniería en Electrónica y Automática Industrial
MC. J. D. Pope S. ITD Unidad II. Introducción a la programación 2.1 Ejemplo de programas 2.2 Identificadores, constantes y variables 2.3 Tipos de datos:
Camilo Andrés Salazar González FORTRAN.  Estructura program circulo Real :: r, area write (*,*) 'Escribe el radio r:' read (*,*) r area = *r*r.
Transcripción de la presentación:

FORTRAN 90/95 Lenguaje FORTRAN PRIMER lenguaje de Alto nivel CÁLCULO; ANÁLISIS NUMÉRICO (FORmula TRANslation) 1954 FORTRAN II – 1958 FORTRAN IV – 1962 FORTRAN66 FORTRAN77 – 1977 en vigor! FORTRAN90 – 1990 incluye F77 FORTRAN95 – 1996 (mejoras mínimas) FORTRAN2003 – 2000/2004 F90/95

¿Por qué el Fortran? Es el lenguaje más utilizado en el ámbito científico Es el lenguaje dominante en supercomputación Es un lenguaje fácil de aprender y utilizar. Es el único lenguaje que perdura desde los años 50 hasta el momento actual. Existen miles de programas de cálculo, y librerías de uso absolutamente generalizado: IMSL (International Mathematics and Statistical Library), NAG (Numerical Algorithms Group), etc.

Compilador: traduce a código máquina ejecución muy rápida ejecutable depende de la CPU (no portabilidad) permite OPTIMIZAR la ejecución (tiempo, memoria, etc) COMPILADOR: “compila”: genera un objeto binario NO ejecutable instrucciones empaquetadas e incomunicadas “linka”: vincula paquetes entre si para comunicarse con el exterior (EJECUTARSE) EJECUTABLE/BINARIO Permite el uso de LIBRERIAS ya compiladas

ELEMENTOS DE FORTRAN 10 output = input1+input2 ! suma 1. Caracteres: a-z, A-Z, 0-9, _ case insensitive 2. Aritméticos: +,-,*,/,** 3. Otros: ( ) . = , ‘ $ : ! “ % & ; < > ? SENTENCIAS: ejecutables no ejecutables Longitud 132 caracteres 10 output = input1+input2 ! suma etiqueta de sentencia comentario output = input1 + & input2 Continuación de línea

PROGRAM myprogram ... END PROGRAM myprogram Estructura de un programa: Sección de declaración de variables Variables, tipo, arrays, parámetros, precisión,... Sección ejecutable El código principal, procedimientos,... Terminación PROGRAM myprogram ... END PROGRAM myprogram

Identificadores Es un nombre para denotar variables, constantes, programas y procedimientos. Deben empezar con una letra (a-z) y pueden tener una longitud de 31 caracteres (a-z, 0-9, _) Válidos: pepe, JUAN, PI, x0, x1, z3rt_1234 No válidos: 3luis, fifo$, R2-D2, obi/uan/kenobi

Tipos de datos en Fortran 90/95 Hay 5 tipos de datos predefinidos llamados intrínsecos para constantes y variables Fortran. Cada uno de estos tipos de datos intrínsecos admiten varias longitudes de memoria, dependiendo de la anchura de la palabra del computador. Tipo Denominación en Fortran Bytes ocupados Intervalo de valores Entero INTEGER 4 -232-1=-2147483648 232-1-1=2147483647 Real REAL -3.402823 10+39 -1.175495 10-39 y 1.175495 10-39 3.402823 10+39 Complejo COMPLEX 8 Igual que REAL Lógico LOGICAL .TRUE. o .FALSE. Carácter CHARACTER [{(len=nº caract de variab)| (nº caract de variab)}] longitud Conjunto de caracteres ASCII de 8-bits La longitud de las variables de tipo carácter viene dada por el número de caracteres que tengan. Si no se especifica, las variables sólo podrán tener un carácter. Fortran 90/95 permite al programador definir tipos de datos derivados, que son tipos de datos especiales para resolver problemas particulares.

proc. 32b proc. 64b REAL*4 REAL*8 REAL*16 Variable REAL y precisión Procesador 32bits Una variable declarada de tipo REAL es de 32 bits (4 bytes) por defecto 24 bits de mantisa y 8 de exponente: 10-39 - 10+39 Existe DOBLE PRECISIÓN de 64 bits (8 bytes) 53 bits de mantisa y 11 de exponente: 10-308 - 10+308 proc. 32b proc. 64b precisión simple REAL*4 REAL*8 doble precisión REAL*16

Declaración de variables Sintaxis de declaración explícita de tipo de variable: TIPO:: lista de variables TIPO es cualquiera de los tipos de datos Fortran válidos lista de variables es un conjunto de variables separadas por comas cuyos nombres son identificadores válidos. REAL:: radio,area INTEGER:: mesas,sillas COMPLEX:: z1,z2 LOGICAL:: testea CHARACTER (len=20):: alumno1,alumno2 CHARACTER*20::alumno1,alumno2 CHARACTER(20)::alumno1,alumno2 Fortran 90/95 permite al programador definir tipos de datos derivados, que son tipos de datos especiales para resolver problemas particulares.

Declaración implicita de variables Si una variable no ha sido definida explícitamente por una sentencia de definición de tipo, éste será determinado por la primera letra de su nombre: I, J, K, L, M, N: entera. resto de letras: real. IMPLICIT {NONE | TIPO (lista de letras)} IMPLICIT LOGICAL (L-P) IMPLICIT NONE RECOMENDADO

PARAMETROS TIPO, PARAMETER:: nombre=número Se puede declarar una “variable” como constante a lo largo del programa: TIPO, PARAMETER:: nombre=número REAL,PARAMETER:: planck=6.626E-27 No puede reasignarse el valor de una constante = error de compilación

Inicialización de variables variable = valor en la parte de código TIPO:: variable=valor al declararla Variables CHARACTER: string=‘pepe’ Variables LOGICAL: test=.FALSE. (.TRUE.) El valor de una variable no inicializada no está definido en el standard de F90/95.

variable = expresión_aritmética Si el tipo de la variable es diferente de la expresión_aritmética, se produce una conversión de tipo: expresión_aritmética es convertida al tipo de variable antes de ser asignada a variable. Pueden producirse problemas de truncamiento. INTEGER:: I I =3./2. !se asigna a I el valor 1

Expresiones aritméticas (I) Operador Descripción + Suma - Resta * Multiplicación / División ** Potencia + Signo positivo - Signo negativo Operadores aritméticos Operadores binarios Operadores unarios No se pueden escribir dos operadores seguidos. Ejemplo: la expresión a**-b es ilegal en Fortran, debe ser escrita como a**(-b) Operador ( ) ** +, - (unarios) *, / +, - La multiplicación, división, suma y resta se evalúan de izquierda a derecha. Las potencias se evalúan de derecha a izquierda. Cuando existen paréntesis anidados se evalúan desde el más interno hasta el más externo. Mayor Orden de precedencia Prioridad Menor

Expresiones aritméticas (II) Orden de precedencia de tipos Tipo COMPLEX REAL INTEGER Si se mezclan en una expresión operandos de distintos tipos, el resultado se eleva a la categoría del de mayor precedencia Mayor Prioridad Menor Ejemplo, sean: A=8.0 B=4.0 C=3.0 (Reales) I=8 J=4 K=3 (Enteros) El resultado de: A/B 2.0 (real) J/A 0.5 (real) I/J 2 (entero) B/C 1.33333... (real) A/C 2.66667 (real) J/K 1 (entero) J/I 0 (entero) J/C 1.33333... (real) La división entera puede producir resultados no deseados, los enteros deberían ser usados únicamente para variables que sean intrínsecamente enteras, como los contadores y los subíndices. Algunos números reales no pueden representarse exactamente. Por ejemplo, la representación de 1./3. puede ser 0.333333 y, como resultado, algunas cantidades que son teóricamente iguales no lo son al ser evaluadas en un computador: 3.*(1./3.) = 0.999999 ≠ 1.

Variables CHARACTER Variable_char = expresión carácter CHARACTER(LEN=3):: ext ext=‘f’ f__ ext=‘filete’ fil CHARACTER(LEN=8):: a,b,c a=‘ABCDEFGHIJ’ ABCDEFGH b=‘12345678’ 12345678 c=a(5:7) EFG_____ b(7:8)=a(2:6) b(7:8)=BC b=123456BC concatenación c=a(1:3)//b(4:5) ABC45___

Funciones intrínsecas Fortran incorpora todas las funciones matemáticas (y de otros tipos). Las funciones de esas librerías se denominan funciones intrínsecas del lenguaje. funciones externas e internas pueden crearse por el propio programador para resolver problemas específicos. apéndices de cualquier libro de texto Fortran. calcula un resultado único a partir de ellos. La sintaxis general de una función intrínseca Fortran es: NOMBRE (lista de argumentos) Lista de argumentos es una lista de variables, constantes, expresiones, o incluso los resultados de otras funciones, separadas por comas, en número y tipo fijado para cada función intrínseca. El resultado es de un tipo también fijado para cada función intrínseca. REAL::x,y Y=funcion(x)

Funciones intrínsecas en F90/95 http://www.nsc.liu.se/~boein/f77to90/a5.html Ejemplos: Raíz cuadrada SQRT SQRT R R Exponencil EXP EXP R R Logaritmo neperiano LOG ALOG R R Logaritmo decimal LOG10 ALOG10 R R Seno SIN SIN R R Coseno COS COS R R Tangente TAN TAN R R Arcoseno ASIN ASIN R R Arcocoseno ACOS ACOS R R Arcotangente ATAN ATAN R R Seno hiperbólico SINH SINH R R Coseno hiperbólico COSH COSH R R Tangente hiperbólica TANH TANH R R Versiones DOUBLE PRECISION (e.g. DEXP) y COMPLEX (e.g. CEXP)

Funciones CHARACTER (algunas): ACHAR(I) devuelve el carácter ASCII de número I IACHAR(C) devuelve el número ASCII LEN(STRING) devuelve la longitud de STRING LEN_TRIM(STRING) devuelve la longitud de STRING sin contar los blancos de relleno (a la derecha) TRIM(STRING) devuelve la cadena quitando los blancos de relleno INDEX(STRING, SUBSTRING, back) devuelve la posición inicial de SUBSTRING dentro de STRING. Si BACK es .TRUE., devuelve la última posición; si no, devuelve la primera.

INT(X) parte entera, X=REAL, devuelve INTEGER MIN(A,B) devuelve el mínimo de A y B MAX(A,B) devuelve el máximo de A y B ... y muchas más ....

Entrada/salida simple READ(*,*) A !lee del teclado !y asigna el valor a A READ(*,*) a,b,c !lee y asigna tres entradas WRITE(*,*) A !escribe en pantalla A WRITE(*,*) ´Hola mundo..’ !escribe la cadena

PROGRAM temp_conversion ! Purpose: ! To convert an input temperature from degrees Fahrenheit to ! an output temperature in kelvins. ! ! Record of revisions: ! Date Programmer Description of change ! ==== ========== ===================== ! 04/03/02 -- S. J. Chapman Original code IMPLICIT NONE ! Force explicit declaration of variables ! Data dictionary: declare variable types, definitions, & units REAL :: temp_f ! Temperature in degrees Fahrenheit REAL :: temp_k ! Temperature in kelvins ! Prompt the user for the input temperature. WRITE (*,*) 'Enter the temperature in degrees Fahrenheit: ' READ (*,*) temp_f ! Convert to kelvins. temp_k = (5. / 9.) * (temp_f - 32.) + 273.15 ! Write out the result. WRITE (*,*) temp_f, ' degrees Fahrenheit = ', temp_k, ' kelvins' ! Finish up. END PROGRAM temp_conversion