CLASE 6
Transcripción
CLASE 6
CLASE 6 Computación 2016– FCAG-UNLP – Paula Benaglia Herramientas para construir las sentencias Funciones intrínsecas • Son suministradas automáticamente por el sistema • Tienen nombres genéricos • Se usan con distintos argumentos Funciones matemáticas Significado Tipo de arg. Valor absoluto de x Raíz cuadrada de x Seno de x radianes Coseno de x radianes Tangente de x radianes arcoseno de x radianes arcocos de x radianes arcotg de x radianes logaritmo natural de Devuelve Herramientas para construir las sentencias Funciones de conversión de tipo: I = int(IRDX) R = real(IRDX) D = dble(IRDX) X = cmplx(IRDX) X = cmpx(IRD,IRD) Convierte a enteros, trunca Convierte a reales Convierte a doble precisión Convierte a complejos (con Im=0) Convierte a complejos Función Significado Tipo de arg. Devuelve INT (x) corta a la parte entera de x REAL ENTERO NINT (x) redondea al entero más próximo REAL ENTERO REAL (x) convierte x a REAL ENTERO REAL Ejemplos: Más funciones Significado resto Tipo de arg. Devuelve Más sentencias Sentencia PARAMETER: se usa para identificar a una constante: un valor que no se cambiará a lo lago del programa, pero que se usará varias veces, y/o es largo o complicado de escribir. Sintaxis: parameter (c=2.99e+05) parameter (n=8, m=8, pi=3.14159) [ Otra forma de usar el número π pi=4.d0 *datan(1.d0) ] Sentencia DATA Asigna valores a variables. Es común encontrarla entre las últimas sentencias de un código fuente. Sintaxis: DATA x,y / 4.0, 2.3 / , obs/ .false./ DATA epoca, abierto, archle / 2000.0, .true.,’observ1.dat’/ DATA a1, a2, a3 / -1.2e-12, -2.3e-10, +4.1e-1 / Algunos ejemplos y notas sobre constantes y variables 12 x 103 -12x103 3.45x10-8 -3.45x10-8 0x100=0 12.34-5 12E3 -12e3 3.45E-8 -3.45e-8 0E0 está mal Palabra = ‘ Dwayne ‘’’The Rock’’’ Johnson ’ Los identificadores NOMBRE, Nombre, nombre, noMBre son iguales. Más sobre de variables alfanuméricas • Se puede identificar dentro de cada cadena la posición de los distintos caracteres: Sea x = ‘mandarina criolla ’ X(1) vale “m” X(9) vale “n” [o [o NO OLVIDAR: character*18 x x(1:1) ] x(9:9) ] X(11:17) vale “criolla” Sea y0 = ‘mandarina’ z0 = ‘elendale’ Más sobre de variables alfanuméricas Sea y0 = ‘mandarina’ X1 = y0 // z0 X1 = y0 // ‘ ‘ // z0 z0 = ‘elendale’ X1 vale “mandarinaelendale” -> ‘mandarina elendale’ Otra forma: X2 = X(1:10) // X1(11:18) O X2 = X(1:10) // z0 , etc Complejos • Ejemplos de operaciones con complejos. Sean z1 = 1 + 2i; z2 = -3 + i complex z1, z2, zsuma, zdiff, zprod, zdiv z1 = (1,2) z2 = (-3,1) zsuma = z1 + z2 zdiff = z1 – z2 zprod = z1 * z2 zdiv = z1 / z2 write(*,*) zsuma … end Programa ejemplo: • Sea la ecuación Cálculo de las raíces de una ecuación de segundo grado. ax2 + bx + c = 0 -b +√ b2 – 4 a c X1 = 2a -b - √ b2 – 4 a c X2 = 2a b2 – 4 a c <0 =0 >0 raíces complejas 2 raíces reales iguales 2 raíces reales distintas Cálculo de las raíces de una ecuación de segundo grado. program raices a = 2.0 b = -4.0 c = 1.1 x1 = ( - b – sqrt(b**2 – 4*a*c) ) / (2*a) x2 = ( - b + sqrt(b**2 – 4*a*c) ) / (2*a) write(*,*) x1, x2 end ¿¿ / 2*a ?? Cálculo de las raíces de una ecuación de segundo grado. • Problemas: ¿Y si el discriminante es menor que cero? Puedo calcular solo raíces reales Puedo hacer un “truco” Puedo usar complejos Continuará ….. Formatos para mostrar salidas program tabla_aprobados character ape*15, apro, a*40 a = ‘Apellido Promedio ape = ‘Roldan’ prom = 7.1 apro = ‘S’ write (*,*) a write (*,*) ape, prom, apro end Aprobado’ Formatos para mostrar salidas write (*,*) a write (*,*) ape, prom, apro Apellido Roldan Promedio Aprobado 7.09999999 S Códigos de formato write ( *, n) ape, prom, apro n n: nombre (número) de sentencia format (<codigos que indiquen cómo escribir las variables>) Códigos de formato De datos: I : F : E : D : L : A : De posicionamiento: datos enteros datos reales sin exponente datos reales con exponente datos doble precisión datos lógicos datos alfanuméricos X : / : salta espacios salta líneas FIN CLASE 6