En este módulo, aprenderemos sobre los tipos derivados en Fortran, una característica poderosa que permite a los programadores definir sus propios tipos de datos. Los tipos derivados son esenciales para organizar y manejar datos complejos de manera estructurada y eficiente.

Contenido

  1. ¿Qué son los Tipos Derivados?
  2. Definición de Tipos Derivados
  3. Declaración y Uso de Tipos Derivados
  4. Ejemplos Prácticos
  5. Ejercicios Prácticos

  1. ¿Qué son los Tipos Derivados?

Los tipos derivados en Fortran son similares a las estructuras en C o los objetos en otros lenguajes de programación orientados a objetos. Permiten agrupar diferentes tipos de datos bajo un solo nombre, facilitando la manipulación y el acceso a datos relacionados.

Ventajas de los Tipos Derivados

  • Organización: Agrupan datos relacionados, mejorando la legibilidad y mantenibilidad del código.
  • Reutilización: Facilitan la reutilización de estructuras de datos complejas.
  • Modularidad: Permiten una mejor modularidad y encapsulación de datos.

  1. Definición de Tipos Derivados

Para definir un tipo derivado en Fortran, se utiliza la palabra clave type. Aquí tienes la sintaxis básica:

type :: nombre_tipo
    ! Declaración de componentes
    tipo_componente :: nombre_componente
    ...
end type nombre_tipo

Ejemplo de Definición

type :: Persona
    character(len=50) :: nombre
    integer :: edad
    real :: altura
end type Persona

En este ejemplo, hemos definido un tipo derivado llamado Persona que tiene tres componentes: nombre, edad y altura.

  1. Declaración y Uso de Tipos Derivados

Una vez que hemos definido un tipo derivado, podemos declarar variables de ese tipo y acceder a sus componentes utilizando el operador %.

Declaración de Variables

type(Persona) :: individuo

Asignación y Acceso a Componentes

individuo%nombre = 'Juan Perez'
individuo%edad = 30
individuo%altura = 1.75

print *, 'Nombre: ', individuo%nombre
print *, 'Edad: ', individuo%edad
print *, 'Altura: ', individuo%altura

  1. Ejemplos Prácticos

Ejemplo 1: Registro de Estudiantes

program registro_estudiantes
    implicit none

    type :: Estudiante
        character(len=50) :: nombre
        integer :: matricula
        real :: promedio
    end type Estudiante

    type(Estudiante) :: estudiante1

    ! Asignación de valores
    estudiante1%nombre = 'Ana Gomez'
    estudiante1%matricula = 12345
    estudiante1%promedio = 8.9

    ! Impresión de valores
    print *, 'Nombre: ', estudiante1%nombre
    print *, 'Matrícula: ', estudiante1%matricula
    print *, 'Promedio: ', estudiante1%promedio
end program registro_estudiantes

Ejemplo 2: Biblioteca de Libros

program biblioteca
    implicit none

    type :: Libro
        character(len=100) :: titulo
        character(len=50) :: autor
        integer :: anio_publicacion
    end type Libro

    type(Libro) :: libro1

    ! Asignación de valores
    libro1%titulo = 'Cien Años de Soledad'
    libro1%autor = 'Gabriel Garcia Marquez'
    libro1%anio_publicacion = 1967

    ! Impresión de valores
    print *, 'Título: ', libro1%titulo
    print *, 'Autor: ', libro1%autor
    print *, 'Año de Publicación: ', libro1%anio_publicacion
end program biblioteca

  1. Ejercicios Prácticos

Ejercicio 1: Registro de Empleados

Define un tipo derivado Empleado con los siguientes componentes: nombre (cadena de 50 caracteres), id (entero), salario (real). Declara una variable de tipo Empleado, asigna valores a sus componentes e imprime los valores.

Solución

program registro_empleados
    implicit none

    type :: Empleado
        character(len=50) :: nombre
        integer :: id
        real :: salario
    end type Empleado

    type(Empleado) :: empleado1

    ! Asignación de valores
    empleado1%nombre = 'Carlos Ruiz'
    empleado1%id = 7890
    empleado1%salario = 3500.50

    ! Impresión de valores
    print *, 'Nombre: ', empleado1%nombre
    print *, 'ID: ', empleado1%id
    print *, 'Salario: ', empleado1%salario
end program registro_empleados

Ejercicio 2: Inventario de Productos

Define un tipo derivado Producto con los siguientes componentes: nombre (cadena de 50 caracteres), codigo (entero), precio (real). Declara una variable de tipo Producto, asigna valores a sus componentes e imprime los valores.

Solución

program inventario_productos
    implicit none

    type :: Producto
        character(len=50) :: nombre
        integer :: codigo
        real :: precio
    end type Producto

    type(Producto) :: producto1

    ! Asignación de valores
    producto1%nombre = 'Laptop'
    producto1%codigo = 101
    producto1%precio = 750.99

    ! Impresión de valores
    print *, 'Nombre: ', producto1%nombre
    print *, 'Código: ', producto1%codigo
    print *, 'Precio: ', producto1%precio
end program inventario_productos

Conclusión

En esta sección, hemos aprendido sobre los tipos derivados en Fortran, cómo definirlos, declararlos y usarlos. Los tipos derivados son una herramienta poderosa para manejar datos complejos de manera organizada y eficiente. En los próximos módulos, exploraremos más sobre cómo utilizar estas estructuras en contextos más avanzados y cómo combinarlas con otras características del lenguaje Fortran.

© Copyright 2024. Todos los derechos reservados