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

Documentos relacionados