8. Függvények
- Általános felépítés
- Belső függvények
- Külső függvények
b) Belső függvények
A belső függvények a főprogramon (vagy egy
modulon) belül a CONTAINS
parancs
után következnek.
A belső függvények a főprogram változóit (azaz a
globális változókat) és azok értékeit ismerik és megváltoztathatják. Ez
akkor okozhat gondot, ha nem szeretnénk azokat
megváltoztatni. Ezért ajánlatos elkerülni a globális változónevek
használatát a belső függvényekben.
Belső függvény a
főprogramban
Példa:
containsfuggveny.f90
Az
a változó értékét megnöveli 2-vel, majd kiírja a képernyőre:
program containsfuggveny
implicit none
real :: a, eredmeny
a=2.
eredmeny = novel(a) ! a novel fuggveny meghivasa
write(*,*) 'a=',a,' kettovel megnovelve: ',eredmeny
contains
real function novel(x)
implicit none
real, intent(in) :: x
novel=x+2.0 ! a 2-vel megnovelt erteket
kapja meg a fuggveny.
! Ez az ertek a fenti meghivaskor az 'eredmeny'
! valtozoba kerul.
end function novel
end program containsfuggveny
Fordítása és futtatása:
gfortran containsfuggveny.f90 -o
containsfuggveny.exe
./containsfuggveny.exe
Az eredmény:
a=
2.00000000 kettovel
megnovelve: 4.00000000
Belső függvény modulbanPélda:
modulfuggveny.f90
module fuggvenymodul
implicit none
contains
real function novel(x)
implicit none
real :: x
novel=x+2.0 ! a 2-vel megnovelt erteket
kapja meg a fuggveny.
! Ez az ertek az alabbi meghivaskor az 'eredmeny'
! valtozoba kerul.
end function novel
end module fuggvenymodul
program modulfuggveny
use fuggvenymodul
implicit none
real :: a, eredmeny
a=2.
eredmeny = novel(a) ! a novel fuggveny meghivasa
write(*,*) 'a=',a,' kettovel megnovelve: ',eredmeny
end program modulfuggveny
Fordítása és futtatása:
gfortran modulfuggveny.f90 -o
modulfuggveny.exe
./modulfuggveny.exe
Az eredmény hasonló:
a= 2.00000000 kettovel
megnovelve: 4.00000000
Bővebb információ a modulokról (angol nyelven): http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap06/mod-syntax.html
<< Előző |
Következő
>>
Oldal
tetejére | Vissza a
főoldalra