Transparencias

Anuncio
Algorítmica y Lenguajes de Programación
Declaración de variables
Sentencias de entrada/salid a
Variables y E/S.
n
Introducción
En esta lección veremos:
Estructura de un programa
FORTRAN.
n Declaración de variables.
n Variables de tipo character,
vectores y matrices.
n Entrada/Salida con formato en
FORTRAN.
n
2
1
Variables y E/S. Estructura programa (i)
n
Todo programa en FORTRAN tiene siguiente
estructura:
program nombre_programa
sentencia 1
sentencia 2
...
end
n
Las sentencias pueden ser:
n
n
n
Declaraciones de variables.
Definiciones de constantes.
Instrucciones.
3
Variables y E/S. Estructura programa (ii)
n
n
Las declaraciones de variables y definiciones de
constantes deben hacerse antes de ninguna
instrucción.
Por tanto, estructura de programa:
program nombre_programa
declaración variable o definición constante 1
declaración variable o definición constante 2
...
sentencia 1
sentencia 2
...
end
4
2
Variables y E/S. Declaración implícita
n
n
n
FORTRAN admite declaración implícita:
proporcionar un tipo (entero o real) a una
variable no declarada en base a la primera
letra de su nombre.
Declaración implícita es muy peligrosa!!
Para evitar declaración implícita hay que
incluir la sentencia IMPLICIT NONE antes de
ninguna declaración de variable.
5
Variables y E/S. Declaración explícita
n
La sintáxis de una sentencia de
declaración de variables es la siguiente:
tipo variable1 [, variable2]*
n
Ejemplos:
integer velocidad
real a, b, c
logical entrada, salida
character cadena
6
3
Variables y E/S. Declaración cadenas
n
Para declarar una variable de tipo
cadena de caracteres hay que indicar su
longitud. Sintaxis cambia un poco:
tipo*longitud variable1 [, variable2]*
n
Ejemplos:
character a, b, c
character*8 dni
character*9 telefono, nif
7
Variables y E/S. Vectores (i)
n
La notación algorítmica permite la utilización
de vectores y matrices, la sintaxis es la
siguiente:
variable ∈ vector (n [, m]*) de tipo
n
Ejemplos:
coordenadas ∈ vector (3) de real
tres_en_raya ∈ vector (3,3) de logico
8
4
Variables y E/S. Vectores (ii)
n
FORTRAN también admite vectores y
matrices con una sintaxis diferente:
tipo variable (n [,m]*)
o bien
tipo variable
dimension variable (n [,m]*)
n
Ejemplos:
real coordenadas (3)
logical tres_en_raya (3,3)
9
Variables y E/S. Vectores (iii)
n
n
n
No es posible operar con vectores ni matrices
de forma global, hay que acceder a cada
componente individual.
Sintáxis idéntica en FORTRAN y notación
algorítmica:
variable (i [,j]*)
Ejemplos:
coordenadas(2)
tres_en_raya(3,3)
10
5
Variables y E/S. Entrada/Salida (i)
n
Tanto notación algorítmica como FORTRAN
poseen sentencias de entrada/salida:
n
n
n
leer/escribir
read/print
Son similares aunque la sintaxis de las
sentencias en FORTRAN incluye un parámetro
para indicar formato:
read formato, variable1 [, variableN]*
print formato, expresión1 [, expresiónN]*
11
Variables y E/S. Entrada/Salida (ii)
n
n
n
En caso de no desear especificar
formato debe utilizarse un asterisco *
El equivalente de leer variable
sería read *, variable
El equivalente de
escribir expresión sería
print *, expresión
12
6
Variables y E/S. Códigos de formato (i)
n
Los códigos de formato más comunes son:
n
n
n
n
n
para tipo integer
y E para tipo real
para tipo logical
para tipo character
I
F
L
A
Cada formato admite diversas posibilidades
para controlar el número de posiciones, el
número de decimales, etc.
13
Variables y E/S. Códigos de formato (ii)
n
Código de formato I (integer):
n
In
n
n
Permite leer/escribir un entero empleando n posiciones (contando el signo)
Ejemplo:
print '(I1,I1,I2)', 2, 3, -1
23-1
n
In.d
n
n
Permite leer/escribir un entero empleando n posiciones de las que al menos se
utilizarán d
Ejemplo:
print '(I5.5)', 2
00002
n
cIn.d
n
n
Permite leer/escribir c enteros empleando n posiciones para cada uno de las que
al menos se utilizarán d
Ejemplo:
print '(3I5.3)',2,2,2
--002--002--002
14
7
Variables y E/S. Códigos de formato (iii)
n
Código de formato F (real):
n
Fn.d
n
n
Permite leer/escribir un real empleando n posiciones de
las que d se utilizarán para decimales
Ejemplo:
print '(F5.1,F5.3)',3.142, 3.142
--3.13.142
n
cFn.d
n
n
Permite leer/escribir c reales empleando n posiciones
para cada uno de las que d se utilizarán para decimales
Ejemplo:
print '(2F5.3)',3.142, 3.142
3.1423.142
15
Variables y E/S. Códigos de formato (iv)
n
Código de formato E (real):
n
En.d
n
n
Permite leer/escribir un real con exponente empleando n posiciones de las que d
se utilizarán para mantisa
Ejemplo:
print '(E6.1,E8.3)',3.142, 3.142
.3E+01.314E+01
n
cEn.d
n
n
Permite leer/escribir c reales con exponente empleando n posiciones para cada
uno de las que d se utilizarán para mantisa
Ejemplo:
print '(2E6.1)',3.142, 3.142
.3E+01.3E+01
n
cEn.dEe
n
n
Permite leer/escribir c reales con exponente empleando n posiciones para cada
uno de las que d se utilizarán para mantisa y e para exponente
Ejemplo:
print '(2E7.1E3)',3.142, 3.142
.3E+001.3E+001
16
8
Variables y E/S. Códigos de formato (v)
n
Código de formato L (logical):
n
Ln
Permite leer/escribir una expresión de
tipo lógico ocupando n posiciones
n Ejemplo:
n
print '(L1,L5)', .true., .true.
T----T
17
Variables y E/S. Códigos de formato (vi)
n
Código de formato A (character):
n
An
n
n
Permite leer/escribir una expresión de tipo cadena de caracteres
ocupando n posiciones
Ejemplo:
print '(A2,A4)', 'hola', 'hola'
hohola
n
cAn
n
n
Permite leer/escribir c expresiones de tipo cadena de caracteres
ocupando cada una n posiciones
Ejemplo:
print '(2A3)', 'hola', 'adios'
holadi
n
Si una expresión no puede encuadrarse en el formato solicitado
el resultado que se obtiene es una secuencia de n asteriscos
donde n es el ancho de formato especificado
18
9
Variables y E/S. Resumen (i)
n
n
n
n
Notación algorítmica y FORTRAN disponen de una zona para declarar variables y definir
constantes.
En FORTRAN variables y constantes deben declararse y definirse antes de ninguna
instrucción ejecutable.
FORTRAN posee declaración implícita de variables enteras y reale s. Para evitar esta
característica indeseable es necesario utilizar la sentencia IMPLICIT NONE antes de
ninguna declaración de variables.
La estructura de un programa FORTRAN es la siguiente:
program nombre_programa
implicit none
declaración de variable o definición de constante 1
declaración de variable o definición de constante 2
...
sentencia 1
sentencia 2
...
end
n
La sintáxis de las sentencias de declaración en FORTRAN es la siguiente:
tipo variable1 [, variable2]*
19
Variables y E/S. Resumen (ii)
n
n
n
n
n
En el caso de que se deseen declarar cadenas de caracteres la sintáxis es:
character*longitud variable1 [, variable2]*
Tanto en FORTRAN como en la notación algorítmica es posible declarar vectores
y matrices; en el caso de la notación algorítmica la sintáxis es:
variable ∈ vector (n [, m]*) de tipo
mientras que en FORTRAN es:
tipo variable (n [, m]*)
Para acceder a un componente de un vector o matriz tanto en la notación
algorítmica con en FORTRAN se emplea la sintáxis siguiente:
variable (i [, j]*)
FORTRAN tiene dos sentencias de entrada salida: read y print; estas
sentencias incluyen un parámetro para “formatear” la entrada o la salida de los
datos siendo su sintáxis la siguiente:
read formato, variable1 [, variableN]*
print formato, expresión1 [, expresiónN]*
Sin embargo, existe la posibilidad de utilizarlas con formato libre, para ello basta
con indicar un asterisco *
20
10
Descargar