En este tema, aprenderemos a realizar diversas operaciones con arreglos y cadenas en Fortran. Estas operaciones son fundamentales para manipular datos de manera eficiente y efectiva en tus programas. Cubriremos desde operaciones básicas hasta técnicas más avanzadas.
Contenido
- Operaciones Básicas con Arreglos
- Operaciones Avanzadas con Arreglos
- Operaciones Básicas con Cadenas
- Operaciones Avanzadas con Cadenas
- Ejercicios Prácticos
- Operaciones Básicas con Arreglos
Asignación y Acceso a Elementos
Para asignar valores a un arreglo y acceder a sus elementos, puedes usar índices. Aquí tienes un ejemplo:
program array_operations
implicit none
integer, dimension(5) :: arr
integer :: i
! Asignar valores al arreglo
arr = (/1, 2, 3, 4, 5/)
! Acceder y mostrar los valores del arreglo
do i = 1, 5
print *, 'Elemento ', i, ': ', arr(i)
end do
end program array_operationsSuma de Elementos
Puedes sumar los elementos de un arreglo utilizando un bucle do:
program sum_array
implicit none
integer, dimension(5) :: arr
integer :: i, sum
arr = (/1, 2, 3, 4, 5/)
sum = 0
do i = 1, 5
sum = sum + arr(i)
end do
print *, 'La suma de los elementos es: ', sum
end program sum_arrayOperaciones Elementales
Fortran permite realizar operaciones elementales en arreglos de manera directa:
program elemental_operations
implicit none
integer, dimension(5) :: arr1, arr2, result
arr1 = (/1, 2, 3, 4, 5/)
arr2 = (/5, 4, 3, 2, 1/)
! Suma de arreglos
result = arr1 + arr2
print *, 'Resultado de la suma: ', result
end program elemental_operations
- Operaciones Avanzadas con Arreglos
Reducción
La reducción es una operación que reduce un arreglo a un solo valor, como la suma o el producto de todos sus elementos:
program reduction_example
implicit none
integer, dimension(5) :: arr
integer :: sum
arr = (/1, 2, 3, 4, 5/)
sum = sum(arr)
print *, 'La suma de los elementos es: ', sum
end program reduction_exampleTransformaciones
Puedes aplicar transformaciones a los arreglos utilizando funciones intrínsecas como reshape:
program reshape_example
implicit none
integer, dimension(6) :: arr
integer, dimension(2, 3) :: reshaped_arr
arr = (/1, 2, 3, 4, 5, 6/)
reshaped_arr = reshape(arr, shape(reshaped_arr))
print *, 'Arreglo reestructurado: '
print *, reshaped_arr
end program reshape_example
- Operaciones Básicas con Cadenas
Concatenación
Puedes concatenar cadenas utilizando el operador //:
program string_concatenation
implicit none
character(len=20) :: str1, str2, result
str1 = 'Hola, '
str2 = 'Mundo!'
result = str1 // str2
print *, 'Cadena concatenada: ', result
end program string_concatenationSubcadenas
Para extraer subcadenas, puedes usar índices:
program substring_example
implicit none
character(len=20) :: str, sub
str = 'Fortran Programming'
sub = str(1:7)
print *, 'Subcadena: ', sub
end program substring_example
- Operaciones Avanzadas con Cadenas
Búsqueda de Subcadenas
Puedes buscar subcadenas dentro de una cadena utilizando la función index:
program substring_search
implicit none
character(len=20) :: str
integer :: pos
str = 'Fortran Programming'
pos = index(str, 'Programming')
if (pos > 0) then
print *, 'Subcadena encontrada en la posición: ', pos
else
print *, 'Subcadena no encontrada'
end if
end program substring_searchReemplazo de Subcadenas
Para reemplazar subcadenas, puedes usar una combinación de funciones intrínsecas:
program substring_replace
implicit none
character(len=20) :: str, old_sub, new_sub
integer :: pos
str = 'Fortran Programming'
old_sub = 'Programming'
new_sub = 'Coding'
pos = index(str, old_sub)
if (pos > 0) then
str(pos:pos+len_trim(old_sub)-1) = new_sub
end if
print *, 'Cadena modificada: ', str
end program substring_replace
- Ejercicios Prácticos
Ejercicio 1: Producto de Elementos de un Arreglo
Escribe un programa que calcule el producto de todos los elementos de un arreglo de enteros.
Solución:
program product_array
implicit none
integer, dimension(5) :: arr
integer :: i, product
arr = (/1, 2, 3, 4, 5/)
product = 1
do i = 1, 5
product = product * arr(i)
end do
print *, 'El producto de los elementos es: ', product
end program product_arrayEjercicio 2: Reverso de una Cadena
Escribe un programa que invierta una cadena dada.
Solución:
program reverse_string
implicit none
character(len=20) :: str, reversed
integer :: i, len
str = 'Fortran'
len = len_trim(str)
reversed = ''
do i = 1, len
reversed(i:i) = str(len-i+1:len-i+1)
end do
print *, 'Cadena invertida: ', reversed
end program reverse_stringConclusión
En esta sección, hemos explorado diversas operaciones con arreglos y cadenas en Fortran, desde las más básicas hasta las más avanzadas. Estas habilidades son esenciales para manipular datos de manera efectiva en tus programas. Asegúrate de practicar los ejercicios para consolidar tu comprensión y prepararte para los temas más avanzados que vendrán en los siguientes módulos.
Curso de Programación en Fortran
Módulo 1: Introducción a Fortran
- Introducción a Fortran
- Configuración del Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa en Fortran
Módulo 2: Conceptos Básicos
- Variables y Tipos de Datos
- Operadores y Expresiones
- Entrada y Salida
- Estructuras de Control: Sentencias If
- Estructuras de Control: Bucles
Módulo 3: Arreglos y Cadenas
- Introducción a los Arreglos
- Arreglos Multidimensionales
- Manejo de Cadenas
- Operaciones con Arreglos y Cadenas
Módulo 4: Procedimientos y Funciones
Módulo 5: Estructuras de Datos Avanzadas
Módulo 6: Manejo de Archivos
- Lectura de Archivos
- Escritura de Archivos
- Posicionamiento de Archivos
- Operaciones con Archivos Binarios
Módulo 7: Temas Avanzados
Módulo 8: Mejores Prácticas y Optimización
- Técnicas de Optimización de Código
- Depuración y Perfilado
- Escribiendo Código Mantenible
- Estándares y Portabilidad de Fortran
