Tecnico
6.1 Caracteres y cadenas
•
En el capítulo 1 se indicó cómo tratar con variables y constantes
carácter en Fortran 90/95. Recordar que la declaración de este tipo
de variables, como ocurre con cualquier otro, puede incluir una
inicialización de las mismas. Por otro lado, las constantes carácter
pueden tener nombres simbólicos si se añade el atributo
PARAMETER en susentencia de declaración y deben encerrarse
entre comillas dobles o simples.
•
Posteriormente, en el capítulo 4 se estudió que la forma de declarar
un array es idéntica para cualquier tipo de datos.
•
Ejemplo. Escribir sentencias de declaración de diferentes datos
carácter.
CHARACTER (len=15):: apellido ! declara variable carácter
CHARACTER:: seguir=’S’ ! declara e inicializavar carácter
CHARACTER (len=10), PARAMETER:: archivo=’entrada’ ! declara
nombre simbólico para constante carácter
CHARACTER (len=25), DIMENSION(50)::alumnos ! declara array de
50 ! elementos cada uno de los cuales puede ser un conjunto de 25
!caracteres como máximo
•
Una cadena de caracteres o simplemente cadena es una sucesión
explícita de caracteres.
•
Una subcadena de caracteres osimplemente subcadena es una
porción contigua de caracteres de una cadena. Para referenciar una
subcadena de una cadena, la sintaxis general es.
nombre ( [pos_inicial]: [pos_final] )
•
nombre es el nombre de una variable o elemento de array carácter.
•
pos_inicial es una expresión numérica que especifica la posición
inicial (más a la izquierda) del primer carácter de la subcadena.Si
no se especifica, se toma como valor por defecto la posición del
primer carácter.
•
pos_final es una expresión numérica que especifica la posición
final (más a la derecha) del último carácter de la subcadena. Si no
se especifica, se toma como valor por defecto la longitud de
nombre.
•
Los valores de pos_inicial y pos_final deben cumplir la condición:
1 ≤ pos_inicial ≤pos_final ≤ longitud_nombre
•
Ejemplo. Sea la declaración:
CHARACTER (len=10):: nombre=’Susana’
139
Caracteres y cadenas
nombre(2:4)
nombre(:)
hace referencia a ‘usa’
hace referencia a ‘Susana____’ 7
6.2 Expresión carácter
•
Los operadores disponibles en Fortran 90/95 para operar con
cadenas son:
•
el operador de concatenación // para concatenar cadenas. La
sintaxisgeneral de una expresión carácter que emplea este
operador para concatenar variables carácter es:
var1_caracter // var2_caracter
•
Ejemplo. Sea la declaración:
CHARACTER (len=10):: c1,c2
c1 = ‘aero’
c2 = ‘plano’
WRITE(*,*) c1//c2 !se escribe por pantalla aeroplano_
•
los operadores relacionales (ver Tabla 2.1) para comparar
cadenas. Sin embargo, su uso está desaconsejado pues elresultado de la comparación puede variar de computador a
computador. En su lugar, se aconseja comparar cadenas
utilizando las funciones intrínsecas léxicas cuyos resultados
son independientes del procesador. Estas funciones se
estudian en la sección 6.4.
•
Ejemplo. Sean las declaraciones:
CHARACTER (len=15):: apellido1,apellido2
apellido1 < apellido2 !Expresión carácter que comparalas 2 variables
6.3 Asignación carácter
•
Una sentencia de asignación carácter asigna el valor de una
expresión carácter a una variable o elemento de array del mismo
tipo. La sintaxis general es:
variable_carácter = expresión_carácter
•
El funcionamiento es:
•
7
Se evalúa la expresión carácter.
Cada gu ión b ajo r epr esen ta un b lanco.
140
C a r a c t ere s y cad en as
•
•
Si la longitud de la variable es mayor que la de la expresión,
el valor de la expresión se ajusta a la izquierda de la variable
y se añaden blancos hasta completar la longitud total de la
variable.
•
•
Se asigna el valor obtenido a la variable carácter.
Si la longitud de la variable es menor que la de la expresión,
el valor de la expresión es truncado.
Ejemplo....
Regístrate para leer el documento completo.