< Fortran

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:

http://gcc.gnu.org/wiki/GFortranBinaries

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

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.

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