CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7...

25
CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia

Transcript of CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7...

Page 1: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

CLASE 7

Computación 2019– FCAG-UNLP – Paula Benaglia

Page 2: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Orden de las sentencias

Page 3: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Funciones intrínsecas

Page 4: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Funciones intrínsecas (continuación)

Page 5: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Funciones intrínsecas (continuación)

Page 6: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Sentencias de entrada y salida READ / WRITE

READ: como su nombre lo sugiere, sirve para leer datos. Los datos pueden estar en un archivo, o tener que ser ingresados por el usuario del programa.

Sean n, x, y las variables cuyos datos hay que ingresar.

read (*,*) n, x, y Equivalente a: read (unit=*,format=*) n, x, y Al correr el programa, ¿qué produce esta sentencia?

Page 7: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

READ y WRITE Forma general: read ( [ lista de items de control ] ) lista_de_variables lista-de-control: los items de la lista de control describen a dónde y en qué forma están los datos. Cada item tiene un nombre (o palabra) clave: fmt, unit, etc. Si los primeros items de la lista de control son la unidad y el formato (en ese orden), uno puede saltearse las palabras clave.

Page 8: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

La sentencia WRITE se escribe parecido: write (*,*) n, x, y

¿Qué produce esta sentencia? por ejemplo,

8675 -1.3456e+09 7.5033 1) ¿Qué hacemos si los datos están en un archivo? 2) ¿Cómo hacer para que aparezca esto: n = 8675; x = -1.3456e+09; y = 7.5033 ?

READ y WRITE

Page 9: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Catálogo “HD” o Henry Draper

Page 10: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Sirio = HD 48915

Page 11: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE Supongamos tener una serie de medidas salidas de un detector, guardadas en un archivo de dos columnas:

tiempo medida 1.5 45 2.2 163 … ...

Se precisa un programa que lea esos datos y luego los use.

Page 12: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE Es necesario crear una conexión entre el programa que está corriendo, y el archivo donde se guardan los datos.

Para eso se usa la sentencia OPEN

open (unit=n, file=‘nombre-del-archivo’) n es un número entero (de 0 a 99) que representa la unidad asociada al archivo. Ejemplo: open (unit=9, file=‘Mediciones_16sep16.dat’)

file guarda el nombre del archivo

Para leer los datos: read(unit=9, *) t, xm

Page 13: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE Al terminar de leer todo lo que se precise del archivo anterior, en el código fuente se debe incluir la sentencia para cerrar la(s) conexión(es) abierta(s), usando la sentencia CLOSE

close (unit=9) o close(9) NO SE PUEDE abrir una unidad que ya está abierta…

Page 14: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE Forma general de la sentencia OPEN:

open ( [lista de items de control] )

• Trabajaremos con archivos de acceso secuencial (= hay que leerlos desde el comienzo para encontrar un registro; no se puede ‘saltar’ hasta el registro).

• En estos archivos no se puede ir ‘hacia atrás’. Hay que cerrarlos y volverlos a abrir para eso.

• Se puede imaginar un ‘puntero’ que se va moviendo a medida que el programa hace recorrer el archivo.

Archivos secuenciales: son los que tienen sus registros grabados en forma de códigos de caracteres, como líneas de texto. Ocupan más lugar, pero son legibles por los usuarios y permiten registros de longitud variable. Archivos de acceso directo: guardan los datos en el código interno de la computadora. Ocupan menos memoria, son más rápidos de acceder, pero sus registros son todos de igual tamaño.

Page 15: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE La lista de items de control de la sentencia OPEN incluye:

UNIT = expresión entera de 0 a 99

STATUS = ‘old’ ‘new’ ‘scratch’ ‘unknown’ <- x defecto

FILE = (nombre del archivo a leer/crear)

Puede ser una constante o una variable ¿Qué pasa si el programador se olvida de especificar el status?

Page 16: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

OPEN y CLOSE • ERR = número de sentencia ejecutable a la que el

programa sigue en caso de error de apertura de conexión •  IOSTAT = variable entera. En ella se guardará un 0 si no

hubo errores de ejecución, o un número positivo si hubo.

Forma completa de CLOSE:

unit = n (expresión entera)

status = ‘keep’ ‘delete’ iostat (idem para open)

Page 17: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Códigos de formato De datos:

I : datos enteros F : datos reales sin exponente E : datos reales con exponente D : datos doble precisión L : datos lógicos A : datos alfanuméricos

De posicionamiento: X : salta espacios

/ : salta líneas

Page 18: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Código “ I ” • Forma general: I n n: cantidad de caracteres

read(*,100) ivar write (*,120) ll 100 format(i4) 120 format (i3)

read(9,110) m1, m2, m3 write (1,101) I1,l2,l3 110 format (i3, i2, i2) 101 format(i5,i4,i3)

o: (i3, 2i2) (sean l1=-276, l2=10, l3= -2008 )

¿Qué pasa si no alcanza el formato para el valor?

1234 -> 123 1234 -> **

Page 19: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Código F • Forma general: Fn.d d: cantidad de decimales

n: cantidad total de caracteres Ejemplos:

read (*,100) a read(2,101) a,kim,c,x 100 format (F8.3) 101 format(f7.2, i5, f6.4, f7.3)

write(7,120) w 120 format (<codigo>)

w=25.338 F9.3 ___25.338 w=0.32547 f9.1 ______0.3

Page 20: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Código E • Forma general: En.d d: cantidad de decimales

n: cantidad total de caracteres

Ejemplos:

Valor interno Código Valor externo s = 83.974 E10.2 __0.84E+02

e10.3 _0.840E+02 e10.4 0.8397E+02

s = -6.3 e9.1 -0.6E+01 El código de formato debe tener n >= 8: ±0._E±__ El programa escribe los valores “tipificados” (cero coma…).

Page 21: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Código D • Forma general: Dn.d d: cantidad de decimales

n: cantidad total de caracteres

Funciona de la misma manera que el código E, pero con mayor cantidad de decimales y de caracteres.

Page 22: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

Programas ejemplo 1.  Construir un programa en el que se ingresen tres

valores (lados de un triángulo) y se obtenga como resultados el perímetro y el área.

[ Recordar: s = ½ (l1 + l2 + l3), area = √ s (s - l1) (s - l2) (s - l3) ]

2.  Construir un programa que calcule el volumen de una esfera, a partir de su radio como dato.

3.  Calcular el centro de masa de un sistema de 3 cuerpos unidimensionales. Rehacer para 3 dimensiones.

Page 23: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones

FIN CLASE 7

Page 24: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones
Page 25: CLASE 7 - UNLPvalhalla.fcaglp.unlp.edu.ar/computacion/Teorias-2019-SS/Clase-7_20… · CLASE 7 Computación 2019– FCAG-UNLP – Paula Benaglia . Orden de las sentencias . Funciones