En este módulo, aprenderemos cómo manejar cadenas de caracteres en Fortran. Las cadenas son secuencias de caracteres que se utilizan para almacenar y manipular texto. Fortran proporciona varias funciones y técnicas para trabajar con cadenas de manera eficiente.

Contenido

  1. Declaración y Asignación de Cadenas
  2. Operaciones Básicas con Cadenas
  3. Funciones Intrínsecas para Cadenas
  4. Ejemplos Prácticos
  5. Ejercicios

  1. Declaración y Asignación de Cadenas

En Fortran, las cadenas se declaran utilizando el tipo de datos CHARACTER. La longitud de la cadena puede ser fija o variable.

Declaración de Cadenas de Longitud Fija

CHARACTER(LEN=10) :: cadena_fija

Declaración de Cadenas de Longitud Variable

CHARACTER(LEN=*) :: cadena_variable

Asignación de Cadenas

cadena_fija = 'Hola'
cadena_variable = 'Mundo'

  1. Operaciones Básicas con Cadenas

Concatenación de Cadenas

La concatenación de cadenas se realiza utilizando el operador //.

CHARACTER(LEN=20) :: cadena1, cadena2, resultado

cadena1 = 'Hola'
cadena2 = ' Mundo'
resultado = cadena1 // cadena2
! resultado ahora contiene 'Hola Mundo'

Comparación de Cadenas

Las cadenas se pueden comparar utilizando los operadores relacionales (==, /=, <, >, <=, >=).

IF (cadena1 == cadena2) THEN
    PRINT *, 'Las cadenas son iguales'
ELSE
    PRINT *, 'Las cadenas son diferentes'
END IF

  1. Funciones Intrínsecas para Cadenas

Fortran proporciona varias funciones intrínsecas para manipular cadenas. A continuación, se presentan algunas de las más comunes:

LEN

Devuelve la longitud de una cadena.

INTEGER :: longitud
longitud = LEN(cadena1)

TRIM

Elimina los espacios en blanco al final de una cadena.

CHARACTER(LEN=20) :: cadena_con_espacios, cadena_sin_espacios
cadena_con_espacios = 'Hola     '
cadena_sin_espacios = TRIM(cadena_con_espacios)

ADJUSTL y ADJUSTR

Ajusta una cadena a la izquierda o a la derecha.

CHARACTER(LEN=20) :: cadena_ajustada
cadena_ajustada = ADJUSTL('Hola')

INDEX

Devuelve la posición de la primera aparición de una subcadena dentro de otra cadena.

INTEGER :: posicion
posicion = INDEX('Hola Mundo', 'Mundo')

  1. Ejemplos Prácticos

Ejemplo 1: Concatenación y Comparación de Cadenas

PROGRAM ejemplo_cadenas
    CHARACTER(LEN=10) :: cadena1, cadena2, resultado

    cadena1 = 'Hola'
    cadena2 = ' Mundo'
    resultado = cadena1 // cadena2

    PRINT *, 'Resultado de la concatenación: ', resultado

    IF (resultado == 'Hola Mundo') THEN
        PRINT *, 'Las cadenas son iguales'
    ELSE
        PRINT *, 'Las cadenas son diferentes'
    END IF
END PROGRAM ejemplo_cadenas

Ejemplo 2: Uso de Funciones Intrínsecas

PROGRAM funciones_cadenas
    CHARACTER(LEN=20) :: cadena
    INTEGER :: longitud, posicion

    cadena = '   Hola Mundo   '
    longitud = LEN(cadena)
    PRINT *, 'Longitud de la cadena: ', longitud

    cadena = TRIM(cadena)
    PRINT *, 'Cadena sin espacios: ', cadena

    posicion = INDEX(cadena, 'Mundo')
    PRINT *, 'Posición de "Mundo": ', posicion
END PROGRAM funciones_cadenas

  1. Ejercicios

Ejercicio 1: Concatenación de Cadenas

Escribe un programa que solicite al usuario dos cadenas de caracteres y las concatene. Luego, imprime la cadena resultante.

Solución

PROGRAM concatenar_cadenas
    CHARACTER(LEN=50) :: cadena1, cadena2, resultado

    PRINT *, 'Introduce la primera cadena:'
    READ *, cadena1
    PRINT *, 'Introduce la segunda cadena:'
    READ *, cadena2

    resultado = TRIM(cadena1) // ' ' // TRIM(cadena2)
    PRINT *, 'Cadena resultante: ', resultado
END PROGRAM concatenar_cadenas

Ejercicio 2: Contar Caracteres

Escribe un programa que solicite al usuario una cadena de caracteres y cuente el número de caracteres (sin contar los espacios en blanco).

Solución

PROGRAM contar_caracteres
    CHARACTER(LEN=100) :: cadena
    INTEGER :: i, contador

    PRINT *, 'Introduce una cadena:'
    READ *, cadena

    contador = 0
    DO i = 1, LEN_TRIM(cadena)
        IF (cadena(i:i) /= ' ') THEN
            contador = contador + 1
        END IF
    END DO

    PRINT *, 'Número de caracteres (sin espacios): ', contador
END PROGRAM contar_caracteres

Conclusión

En este módulo, hemos aprendido cómo manejar cadenas en Fortran, incluyendo su declaración, asignación y las operaciones básicas que se pueden realizar con ellas. También hemos explorado algunas funciones intrínsecas útiles para manipular cadenas y hemos trabajado con ejemplos prácticos y ejercicios para reforzar los conceptos aprendidos. Con este conocimiento, estarás preparado para manejar texto de manera eficiente en tus programas de Fortran.

© Copyright 2024. Todos los derechos reservados