En aquest tema, aprendrem sobre les funcions en Fortran, una part fonamental de la programació modular. Les funcions permeten dividir el codi en blocs més petits i manejables, facilitant la seva reutilització i manteniment.
Continguts
Què és una Funció?
Una funció és un bloc de codi que realitza una tasca específica i retorna un valor. Les funcions són útils per evitar la duplicació de codi i per organitzar el programa de manera més clara i estructurada.
Declaració de Funcions
En Fortran, les funcions es declaren amb la paraula clau function. La declaració d'una funció inclou el tipus de retorn, el nom de la funció i els seus arguments.
Sintaxi
type: El tipus de dada que retorna la funció (per exemple,integer,real,character).function_name: El nom de la funció.arguments: Els arguments que la funció rep (opcional).
Definició de Funcions
La definició d'una funció inclou el codi que especifica què fa la funció. A més de la declaració, la definició inclou el cos de la funció, que conté les instruccions que s'executen quan la funció és cridada.
Sintaxi
type function function_name(arguments)
! Declaració dels arguments
type :: argument1, argument2, ...
! Declaració de variables locals
type :: local_variable1, local_variable2, ...
! Cos de la funció
...
! Retorn del valor
function_name = value
end function function_nameCrida a Funcions
Per cridar una funció, simplement utilitzem el seu nom seguit dels arguments entre parèntesis. El valor retornat per la funció es pot assignar a una variable o utilitzar directament en expressions.
Exemple de Crida
Exemples Pràctics
Exemple 1: Funció que Calcula el Quadrat d'un Nombre
program main
implicit none
real :: number, result
! Assignar un valor a la variable
number = 5.0
! Cridar la funció square
result = square(number)
! Imprimir el resultat
print *, "El quadrat de ", number, " és ", result
end program main
! Definició de la funció square
real function square(x)
real, intent(in) :: x
square = x * x
end function squareExemple 2: Funció que Calcula la Suma de Dos Nombres
program main
implicit none
real :: num1, num2, result
! Assignar valors a les variables
num1 = 3.0
num2 = 4.0
! Cridar la funció sum
result = sum(num1, num2)
! Imprimir el resultat
print *, "La suma de ", num1, " i ", num2, " és ", result
end program main
! Definició de la funció sum
real function sum(a, b)
real, intent(in) :: a, b
sum = a + b
end function sumExercicis Pràctics
Exercici 1: Funció que Calcula el Factorial d'un Nombre
Escriu una funció que calculi el factorial d'un nombre enter positiu.
Pista
El factorial d'un nombre n es defineix com n! = n * (n-1) * (n-2) * ... * 1.
Solució
program main
implicit none
integer :: number, result
! Assignar un valor a la variable
number = 5
! Cridar la funció factorial
result = factorial(number)
! Imprimir el resultat
print *, "El factorial de ", number, " és ", result
end program main
! Definició de la funció factorial
integer function factorial(n)
integer, intent(in) :: n
integer :: i
factorial = 1
do i = 1, n
factorial = factorial * i
end do
end function factorialExercici 2: Funció que Calcula la Mitjana de Tres Nombres
Escriu una funció que calculi la mitjana de tres nombres reals.
Solució
program main
implicit none
real :: num1, num2, num3, result
! Assignar valors a les variables
num1 = 4.0
num2 = 5.0
num3 = 6.0
! Cridar la funció average
result = average(num1, num2, num3)
! Imprimir el resultat
print *, "La mitjana de ", num1, ", ", num2, " i ", num3, " és ", result
end program main
! Definició de la funció average
real function average(a, b, c)
real, intent(in) :: a, b, c
average = (a + b + c) / 3.0
end function averageConclusió
En aquest tema, hem après què són les funcions, com es declaren, defineixen i criden en Fortran. Les funcions són una eina poderosa per organitzar i modularitzar el codi, facilitant la seva reutilització i manteniment. Hem vist exemples pràctics i hem practicat amb exercicis per reforçar els conceptes apresos. En el següent tema, explorarem com passar arguments a les funcions i subrutines en més detall.
Curs de Programació en Fortran
Mòdul 1: Introducció a Fortran
- Introducció a Fortran
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Escrivint el teu Primer Programa en Fortran
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Entrada i Sortida
- Estructures de Control: Sentències If
- Estructures de Control: Bucles
Mòdul 3: Arrays i Cadenes
Mòdul 4: Procediments i Funcions
Mòdul 5: Estructures de Dades Avançades
Mòdul 6: Gestió de Fitxers
Mòdul 7: Temes Avançats
Mòdul 8: Millors Pràctiques i Optimització
- Tècniques d'Optimització de Codi
- Depuració i Perfilat
- Escrivint Codi Mantenible
- Estàndards i Portabilitat de Fortran
