Tartalomjegyzék
Fortran
- Szerző: Sallai András
- Copyright © Sallai András, 2011
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
Fortran 95 fordító Debian rendszeren:
apt-get install gfortran
Windowson:
A nyelv nem különbözteti meg a kis- és nagybetűket.
A leírásban Fortran95 fordítót és nyelvet írom le. Egy fortran95 forrás kiterjesztése:
.f95
Helló Világ
main.f95
- main.f95
program main write (*,*) 'Helló Világ' read (*,*) stop end
Fordítás:
f95 -o main main.c
A program és a stop utasítás csak formai, a fordító nem követeli meg, de hozzátartozik a szerkezethez. A write és a read utáni (*,*) karakterek fájl írás/olvasáshoz és formátumozott kivitelhez tartoznak. Az első „*” karakter jelen esetben arra utal, hogy a monitor eszközre szeretnénk írni. A második „*” karakter pedig arra, hogy az alapértelmezett formában írunk a képernyőre, vagyis nincs formázás.
Fortran program felépítése
program neve deklarációk utasítások/parancsok stop end
Megjegyzések
A megjegyzéseket egy sorosak lehetnek, és felkiáltó jellel vezetjük be őket:
! megjegyzés egy sora
Korábbi Fortan fordítók nem felkiáltó jelet használtak, hanem egy „c” karaktert (comment)
Változók használata
A változókat nem kötelező deklarálni, de van rá lehetőség. Ha nem deklaráljuk a fordító egész és valós számként is kezelheti, attól függően mi az első karaktere. Ha az első karakter i és n közzé esik az ábécében, akkor egész számként kezeli, egyébként valósként.
- main.f95
program elso write (*,*) "Helló Világ!" read (*,*) n write (*,*) n read (*,*) stop end
A programban az n változó egészként lesz kezelve. Ha a változó nevét átnevezem például o-ra akkor már valós számként kezeli a fordító.
Típus | Jelentés | |
---|---|---|
integer | egész | |
real | valós | |
double precision | pontosabb valós szám | |
complex | komplex | pl.: (3.0,-1.5) az első a valós szám a második a képzetes rész |
logical | logikai | |
character | karakter |
Komplex számok
program elso complex szam write (*,*) "Komplex szam: " read (*,*) szam write (*,*) szam read (*,*) stop end
Beírunk egy komplex számot a következő formában:
(3.0,-1.5)
Kimenet:
( 3.0000000 , -1.5000000 )
Szelekció
a = 3 if (a < 10) then write (*, *) "Kisebb" end if end
Ha csak egy soros if szerkezetünk van, akkor is le kell zárni end if szavakkal.
Egy else ág megvalósítása:
a = 15 if (a < 10) then write (*, *) "Kisebb" else write (*, *) "Nagyobb" end if end
Iteráció
Növekményes ciklus
do i = 1, 6, 2 write (*, *) i end do
Az i a ciklusváltozó. Az egyenlőség jel jobb oldalán sorra:
- 1 kezdőérték (ciklus változót kezdőértéke)
- 6 maximum (a ciklusváltozó értéke ennél nagyobb nem lehet
- 2 növekmény (ha 1, akkor elhagyható)
Amíg ciklus
i = 1 do while (i < 6) write (*, *) i i = i + 1 end do