clase 5 -...

26
CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia

Upload: others

Post on 22-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

CLASE 5

Computación 2016– FCAG-UNLP – Paula Benaglia

Page 2: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Lenguaje de programación FORTRAN

• De alto nivel

• De procedimientos (procedural language)

• Especialmente adecuado para desarrollos numéricos y científicos

• Nombre de FORmula TRANslation

• Presentado en 1956; compilador en 1957 (John Backus, IBM)

• Ahorraba 20 veces las instrucciones…

Page 3: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

“Estandarizaciones” Las “estandarizaciones” fijan las reglas del lenguaje

Año Versión •  1958 FORTRAN II •  1961 FORTRAN IV •  1966 FORTRAN 66 •  1977 (78) FORTRAN 77 •  1990 (91) Fortran 90 •  1995 Fortran 95 (menor) •  2003 Fortran 2003 •  2008 Fortran 2008 (menor).

Page 4: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Fortran porque… • Es sencillo de aprender para principiantes • Está accesible fácilmente en la red • Tiene funciones ya incorporadas para manipular

construcciones matemáticas tales como matrices •  -> Útil para científicos, ingenieros •  La precisión de los cálculos se elije de acuerdo a las

necesidades de los mismos • Hay numerosas ‘bibliotecas’ (libraries) de algoritmos

numéricos ya codificados • Se puede dominar en un par de meses.

Page 5: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Receta para hacer un ejecutable 1.  Crear un archivo que contenga las instrucciones que

queremos que la computadora ejecute (programa fuente = código fuente = source code)

$ emacs miprograma.f & < > 2.  Correr el programa compilador Fortran sobre el

programa fuente, obteniendo el programa en lenguaje de máquina (ejecutable)

3.  Si el compilador detecta errores, volver a 1.

Page 6: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Programa básico

program saludo write (*,*) ‘ Hola ‘ end

miprimerprograma.f

Cols 1-6 Cols 7 en adelante … ...hasta la 72

Page 7: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Fortran: Reglas básicas • Cada orden (o SENTENCIA = instrucción, comando)

ocupará al menos una línea. sentencia: es la unidad más pequeña de un programa;

el nombre indica la operación a realizar pueden ser ejecutables o no ejecutables.

•  Las sentencias se escriben una a continuación de otra y, si no se indica lo contrario, el compilador las tomará en ese orden.

•  La única sentencia obligatoria es end • Se escribe a partir dela columna 7 y hasta la columna 72 • De la 1 a la 5: nombres (=números) de sentencias

Page 8: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Fortran: Reglas básicas • Columna 6: carácter de continuación de línea (puede ser

cualquier carácter ni cero ni blanco; máx = 19 líneas) •  La codificación es insensible a mayúsculas y minúsculas •  Los espacios en blanco no son tenidos en cuenta por el

compilador •  Las líneas de comentario se identifican con una “c” o un

signo “!” en la columna 1 •  Las líneas en blanco son ignoradas por el compilador.

Page 9: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Organización básica del código

program nombre

declaraciones

sentencias

end

Page 10: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias Caracteres: A – Z a – z 0 – 9

= : + - * / ( ) [ ] , . $ ‘ ! “ % & ; < > ?

Palabras clave: son conocidas de antemano por el compilador; tiene un significado determinado; designan el mismo concepto en todos los programas

integral real

Identificadores: son nombres que el programador utiliza para denominar un programa, un valor numérico, etc. No pueden comenzar con un número

radio saludo

Page 11: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias Constantes: son elementos que se definen por primera vez al correr el programa, y no cambian a lo largo del mismo .

• Numéricas (enteras, reales, complejas) -456 3.9833 3.9833e-10 (12.0,-7.05)

•  Lógicas •  T F .true. .false.

• Carácter Resultados

Page 12: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias VARIABLES: son nombres simbólicos bajo los que el programa guarda datos. Pueden tomar distintos valores. El nombre hace referencia a una zona de memoria donde se guardará el dato. El contenido definirá su “tipo”; pueden ser:

• Numéricas (enteras, reales, complejas) •  Lógicas • Carácter

-> Las variables son lugares de memoria con nombre y tipo de dato fijo. Ejemplo: A

Page 13: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Fortran 77 Fortran 90 à REGLA de los nombres (RN): El tipo de dato numérico (entero o real) que guardará la variable depende de la letra con que comience su nombre:

A - H , O - Z REAL I, J, K, L, M, N ENTERO (integer)

Hasta 6 caracteres Hasta 31 caracteres Se usa la RN No se usa la RN

Se usa la sentencia implicit none

Page 14: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Declaración de tipo de variable Sentencia fortran Tipo integer [lista-de-variables] entera real “ real real*8 (=double precision) real con más decimales complex “ compleja logical “ lógicas character “ alfanuméricas (cadenas)

Page 15: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Declaración de tipo de variable integer mes real momento complex voltaje

logical l1 character nombre, apellido character*15 nombre, apellido character nombre*10, apellido*15

Page 16: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias ASIGNACIONES: son sentencias que se usan para darle contenido a una variable

y = 2.0 jota = -100 preg1 = .true. label1 = ‘Resultados totales’ HCOMPN = 1.8234e-18 hdeffi = -3.652564d+02 A = sqrt(b**2 + c**2 – 2.0 *b*c*cos(alfa))

Page 17: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias ASIGNACIONES: son sentencias que se usan para darle contenido a una variable

p = p + 1

Page 18: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias Expresiones aritméticas: dan como resultado un número. Se usan para efectuar los cálculos

4 * (b – 9)

sqrt(b**2 + c**2 – 2.0 *b*c*cos(alfa)) Operadores aritméticos: + - * / ** Operadores de relación: relacionan expresiones > mayor que .gt. ≥ mayor o igual que .ge. < menor que .lt. ≤ menor o igual que .le. = igual que .eq. ≠ distinto que .ne.

Page 19: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Tipo de resultado • Cuando trabajamos con expresiones aritméticas

utilizando más de un tipo numérico, el resultado pertenecerá al tipo numérico del conjunto más grande.

• Esto minimiza la pérdida de información.

Complejos Reales Enteros

Page 20: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Tipo de resultado

a)  Y = 4.0 + 1/4 + 3/4

b)  Y = 4.0 + 1./4. + 3./4.

c)  Y = 4.0 + 1./2.

d)  I = 4.5 + 1/2

e)  I = 4.5 + 1./2.

Page 21: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Herramientas para construir las sentencias Expresiones lógicas: sirven para tomar decisiones, de acuerdo a su valor de verdad. Ejemplos: * si el dividendo de un cociente es igual a cero, no efectúe la división. * A < B Operadores lógicos: se usan para armar y comparar expresiones lógicas:

.not. .eqv. .and. .neqv. .or.

T: verdadero F: falso

Page 22: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Orden de prioridad de las operaciones Nro de orden Operación/operador Sentido 1ro paréntesis ( ) 2do exponenciación ** 3ro multiplicación y división * / 4to suma y resta + - 5to op. de relación (< > = …) 6to not 7mo and 8vo or 9no equivalent y non equivalent

Page 23: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Orden de prioridad de las operaciones ( a + b ) * c / d = ( ( a + b ) * c) / d = ( a + b ) * ( c / d ) = a + ( b * c ) / d = a + b * c / d =

Sean a = 20; b = 10; c = 15, d = 5

Page 24: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Orden de prioridad de las operaciones n = 4

Page 25: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

Orden de prioridad de las operaciones m = 3; n = 5; x = 4; y = 2

Page 26: CLASE 5 - carina.fcaglp.unlp.edu.arcarina.fcaglp.unlp.edu.ar/~rodolfo/Teorias/Clase-05-Computacion.pdf · CLASE 5 Computación 2016– FCAG-UNLP – Paula Benaglia . Lenguaje de programación

FIN CLASE 5