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_name
Crida 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 square
Exemple 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 sum
Exercicis 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 factorial
Exercici 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 average
Conclusió
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