Hogyan kell programozni Fortranban (képekkel)

Tartalomjegyzék:

Hogyan kell programozni Fortranban (képekkel)
Hogyan kell programozni Fortranban (képekkel)

Videó: Hogyan kell programozni Fortranban (képekkel)

Videó: Hogyan kell programozni Fortranban (képekkel)
Videó: Excel formátum másolása és cseréje hatékonyan 2024, Április
Anonim

Sokan úgy vélik, hogy a Fortran archaikus és "halott" programozási nyelv. A legtöbb tudományos és mérnöki kód azonban Fortranban van írva. Mint ilyen, az F77 és F90 programozás továbbra is szükséges készség a legtöbb technikai programozó számára. Ezenkívül a legújabb Fortran szabványok (2003, 2008, 2015) lehetővé teszik a programozó számára, hogy minimális erőfeszítéssel rendkívül hatékony kódot írjon, miközben kihasználja az összes modern nyelvi szolgáltatást, például az OOP-t (objektum-orientált programozás). A FORTRAN a "FORmula TRANslation" rövidítése, és a legjobban alkalmas matematikai és numerikus alkalmazásokhoz, nem pedig grafikai vagy adatbázis -alkalmazásokhoz. A legtöbb fortran kód szövegbemenetet fájlból vagy parancssorból vesz, nem pedig menüből vagy GUI felületről.

Lépések

Rész 1 /4: Egyszerű program írása és összeállítása

A Fortran hello world program írása korrigált
A Fortran hello world program írása korrigált

1. lépés. Írjon egy "Hello World" programot

Általában ez az első program, amely bármilyen nyelven ír, és csak a "Hello world" -t nyomtatja a képernyőre. Írja be a következő kódot bármely szövegszerkesztőbe, és mentse el helloworld.f néven. Ügyeljen arra, hogy minden sor előtt pontosan 6 szóköznek kell lennie.

program helloworld implicit none karakter*13 hello_string hello_string = "Hello, világ!" write (*, *) hello_string end program helloworld

Tipp: A szóközök csak a Fortran verzióiban szükségesek a FORTRAN 77 -ig. Ha újabb verziót használ, akkor a szóközöket ejtheti. Fordítson programokat az újabb verzióból f95, nem f77; használja a.f95 fájlkiterjesztést a.f helyett.

2. lépés. Fordítsa össze a programot

Ehhez írja be az f77 helloworld.f parancsot a parancssorba. Ha ez hibát ad, akkor valószínűleg még nem telepített olyan Fortran fordítót, mint például a gfortran.

Fortran hello world compile run
Fortran hello world compile run

Lépés 3. Futtassa a programot

A fordító létrehozta az a.out nevű fájlt. Futtassa ezt a fájlt a./a.out begépelésével.

4. lépés. Értsd meg, amit most írtál

  • program helloworld

    a "helloworld" program kezdetét jelzi. Hasonlóképpen,

    vége program helloworld

  • végét jelzi.
  • Alapértelmezés szerint, ha nem deklarál változótípust, akkor a Fortran az i -től n -ig terjedő betűvel kezdődő nevű változót egész számként kezeli, a többit pedig valós számként. Használata ajánlott

    implicit egyik sem

  • ha nincs szüksége erre a viselkedésre.
  • karakter*13 hello_string

  • deklarálja a karakterek tömbjét, amelyet hello_string -nek hívnak.
  • hello_string = "Helló, világ!"

  • a "Hello, világ!" a deklarált tömbhöz. Más nyelvekkel ellentétben, mint a C, ezt nem lehet ugyanazon a soron végezni, mint a tömb deklarálását.
  • írj (*, *) hello_string

  • kiírja a hello_string értékét a standard kimenetre. Az első * azt jelenti, hogy szabványos kimenetre kell írni, szemben néhány fájllal. A második * azt jelenti, hogy ne használjon speciális formázást.
Fortran comments
Fortran comments

5. lépés. Hozzászólás hozzáadása

Ez nem szükséges egy ilyen egyszerű programban, de hasznos lesz, ha valami összetettebbet ír, ezért tudnia kell, hogyan kell hozzáadni őket. Kétféleképpen lehet megjegyzést hozzáadni.

  • Ha olyan megjegyzést szeretne hozzáadni, amely magában foglal egy egész sort, írjon egy c -t közvetlenül egy új sorba, a 6 szóköz nélkül. Ezek után írja meg a megjegyzését. A jobb olvashatóság érdekében hagyjon szóközt a c és a megjegyzés között, de ez nem kötelező. Ne feledje, hogy a -t kell használnia! c helyett a Fortran 95 -ben és újabb.
  • Ha megjegyzést szeretne hozzáadni a kóddal azonos sorhoz, adjon hozzá egy! hol szeretné kezdeni a megjegyzését. Ismételten szóköz nem szükséges, de javítja az olvashatóságot.

2. rész a 4-ből: A bemenet és az If-Constructions használata

Fortran adattípusok
Fortran adattípusok

1. lépés: A különböző adattípusok megértése

  • Az INTEGER egész számokat használ, például 1, 3 vagy -3.
  • A REAL olyan számokat is tartalmazhat, amelyek nem egészek, például 2,5.
  • A COMPLEX komplex számok tárolására szolgál. Az első szám az igazi, a második a képzeletbeli rész.
  • A CHARACTER karaktereket, például betűket vagy írásjeleket használ.
  • LOGIKAI lehet akár.igaz. vagy.hamis.. Ez olyan, mint a boolean típus más programozási nyelveken.

Lépés 2. Szerezze be a felhasználó véleményét

A "Hello world" programban, amelyet korábban írtál, haszontalan lenne a felhasználói adatok beszerzése. Nyisson meg egy új fájlt, és nevezze el compnum.f fájlnak. Ha befejezte, akkor megmondja a felhasználónak, hogy a megadott szám pozitív, negatív vagy nulla.

  • Írja be a sorokat program compnum és zárja be a program compnum sorait.
  • Ezután deklaráljon egy REAL típusú változót. Győződjön meg arról, hogy a nyilatkozat a program eleje és vége között van.
  • Magyarázza el a felhasználónak, mit kell tennie. Írjon néhány szöveget az írási funkcióval.
  • Olvassa el a felhasználó bemenetét az olvasási funkcióval deklarált változóba.

program compnum real r write (*, *) "Valódi szám megadása:" read (*, *) r end program

Fortran ha építés
Fortran ha építés

Lépés 3. Feldolgozza a felhasználó bevitelét if-konstrukcióval

Tedd a közé

olvassa el (*, *) r

és a

befejező program

  • Az összehasonlítás a.gt. (nagyobb mint),.lt. (kevesebb mint) és.eq. (egyenlő) Fortranban.
  • A Fortran támogatja az if, else if, és else lehetőséget
  • A Fortran if-konstrukciója mindig véggel végződik, ha.

ha (r.gt. 0), akkor írja (*, *) "Ez a szám pozitív." egyébként, ha (r.lt. 0), akkor írja be (*, *) "Ez a szám negatív." else írja (*, *) "Ez a szám 0." vége, ha

Tipp: Nem kell behúznia a kódot a több szóközzel rendelkező if-konstrukciókba, de javítja az olvashatóságot.

Fortran számellenőrző program teszt
Fortran számellenőrző program teszt

Lépés 4. Fordítsa össze és futtassa a programot

Írjon be néhány számot a teszteléshez. Ha betűt ír be, az hibát fog okozni, de ez nem baj, mert a program nem ellenőrzi, hogy a bevitt betű, szám vagy valami más.

Rész 3 /4: Hurok és tömb használata

1. lépés: Nyisson meg egy új fájlt

Mivel ez a koncepció más, új programot kell írnia. Nevezze el a fájlt addmany.f. Illessze be a megfelelő program- és programvégi utasításokat, valamint egy implicit egyiket sem. Ha befejezte, ez a program 10 számot olvas be, és kinyomtatja azok összegét.

2. lépés. Határozzon meg egy 10 hosszúságú tömböt

Itt tárolja a számokat. Mivel valószínűleg valós számok összegét szeretné, a tömböt valósnak kell nyilvánítania. Egy ilyen tömböt deklarál ezzel

valós számok (50)

(a számok a tömb neve, nem kifejezés).

3. Deklaráljon néhány változót

A numSum deklarálása valós számnak. Később az összeg tárolására fogja használni, de mivel az összeget már egy Fortran kifejezés veszi fel, olyan nevet kell használnia, mint a numSum. Állítsa 0 -ra. Nyilvánítsa az i -t egész számnak, és még ne rendeljen hozzá értéket. Ez a do-loop-ban fog megtörténni.

4. lépés. Hozzon létre egy do-hurkot

Más programozási nyelvek megfelelője for-loop lenne.

  • A do-loop mindig a do-val kezdődik.
  • Ugyanazon a sorban, mint a do, szóközzel elválasztva a címke, amelyhez a program a befejezés után megy. Egyelőre csak írjon 1 -et, a címkét később állítja be.
  • Ezt követően ismét csak szóközzel elválasztva írja be

    i = 1, 10

    . Így a ciklus előtt deklarált i változó 1 -ről 10 -re változik az 1 -es lépésekben. A lépések nem szerepelnek ebben a kifejezésben, így a Fortran az alapértelmezett 1 -es értéket használja.

    i = 1, 10, 1

  • Tegyen néhány kódot a ciklusba (behúzás szóközökkel a jobb olvashatóság érdekében). Ennél a programnál növelni kell a numSum változót a tömbszámok i-edik elemével. Ez a kifejezéssel történik

    számösszeg = számösszeg + szám (i)

  • Fejezze be a ciklust egy folytatási utasítással, amely rendelkezik címkével. Csak 4 szóközt írjon be. Ezt követően írja be az 1. Ezt a címkét mondta a do-loopnak, hogy menjen a befejezése után. Ezután írjon be egy szóközt, és folytassa. A folytatás kifejezés nem tesz semmit, de jó helyet biztosít a címke elhelyezéséhez, valamint azt is mutatja, hogy a do-loop befejeződött.

A do huroknak most így kell kinéznie:

do 1 i = 1, 10 numSum = numSum + számok (i) 1 folytatás

Tipp: A Fortran 95 és újabb verzióiban nem kell címkéket használni. Csak ne tegyen egyet a do utasításba, és fejezze be a ciklust "end do" -val a "folytatás" helyett.

Fortran do loop code
Fortran do loop code

5. lépés. Nyomtassa ki a numSum értéket

Ezenkívül ésszerű lenne valamilyen kontextust megadni, például "A számok összege:". Mindkettőnél használja az írás funkciót. A teljes kódnak most így kell kinéznie:

program addmany implicit nincs valós számok (10) valós számok összege egész szám 1 folytassa az írást (*, *) "Összegük:" write (*, *) numSum végprogram hozzáadása

Fortran add számok kód test
Fortran add számok kód test

6. lépés Fordítsa le és futtassa a kódot

Ne felejtse el tesztelni. Vagy nyomja meg az ↵ Enter billentyűt minden beírt szám után, vagy írjon be sok számot ugyanabban a sorban, és válassza el őket szóközzel.

4. rész a 4 -ből: A fejlett fogalmak megértése

Program a Fortranban 13. lépés
Program a Fortranban 13. lépés

1. lépés: Képzelje el, mit fog tenni a program

Gondolja át, hogy milyen adatokra van szükség bemenetként, hogyan kell felépíteni a kimenetet, és adjon hozzá közbenső kimenetet is, hogy figyelemmel kísérhesse a számítás előrehaladását. Ez nagyon hasznos lehet, ha tudja, hogy a számítás hosszú ideig fog futni, vagy több bonyolult lépést tartalmaz.

Fortran referencia weboldal screenshot
Fortran referencia weboldal screenshot

2. lépés. Keressen egy jó Fortran referenciát

A Fortran sokkal több funkcióval rendelkezik, mint amit ebben a cikkben kifejtünk, és hasznosak lehetnek az írni kívánt program számára. A hivatkozás felsorolja a programozási nyelv összes funkcióját. Ez egy a Fortran 77 -hez és ez a Fortran 90/95 -hez.

Fortran szubrutinok példa
Fortran szubrutinok példa

3. lépés. Ismerje meg az alprogramokat és a függvényeket

Fortran formátumú karakterlánc példa
Fortran formátumú karakterlánc példa

4. lépés. Ismerje meg, hogyan kell fájlokba írni és írni

Ismerje meg a bemenet/kimenet formázásának módját.

Modern fortran példa screenshot
Modern fortran példa screenshot

5. lépés. Ismerje meg a Fortran 90/95 és újabb verzióinak új funkcióit

Hagyja ki ezt a lépést, ha tudja, hogy csak a Fortran 77 kódot fogja írni/karbantartani.

Ne feledje, hogy a Fortran 90 bevezette a "szabad formátumú" forráskódot, amely lehetővé teszi a kód írását szóközök és 72 karakter korlát nélkül

Fortran könyv online screenshot
Fortran könyv online screenshot

6. Olvassa el vagy keresse meg a tudományos programozásról szóló könyveket

Például a "Numerical Recepts in Fortran" című könyv egyszerre jó szöveg a tudományos programozási algoritmusokról, és jó bevezető a kódok összeállításához. Az újabb kiadások fejezeteket tartalmaznak a vegyes nyelvű környezetben történő programozásról és a párhuzamos programozásról. Egy másik példa az Arjen Markus által írt "Modern Fortran a gyakorlatban". A könyv betekintést nyújt abba, hogyan kell a Fortran programokat huszonegyedik századi stílusban írni a legújabb Fortran szabványoknak megfelelően.

A Fortran programot több fájlra fordít
A Fortran programot több fájlra fordít

7. lépés. Ismerje meg, hogyan lehet programot összeállítani több fájl között

Tegyük fel, hogy a Fortran programja a main.f és a morestuff.f fájlokban van elosztva, és szeretné, hogy a kapott bináris nevet allstuff -nak nevezzük. Ezután a következő parancsokat kell beírnia a parancssorba:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f

Ezután futtassa a fájlt a./allstuff begépelésével.

Tipp: Ez ugyanúgy működik a Fortran újabb verzióival is. Csak cserélje le a.f fájlt a megfelelő kiterjesztéssel és az f77 -et a megfelelő fordító verzióval.

8. lépés. Használja a fordító által biztosított optimalizálást

A legtöbb fordító optimalizáló algoritmusokat tartalmaz, amelyek javítják a kód hatékonyságát. Ezeket általában úgy kapcsolják be, hogy fordításkor egy -O, -O2 vagy -O3 zászlót is tartalmaznak (ismét a fortran verziójától függően).

  • Általában a legalacsonyabb -O vagy -O2 szint a legjobb. Ne feledje, hogy az agresszívabb optimalizálási lehetőség használata hibákat okozhat az összetett kódokban, és akár le is lassíthatja a dolgokat! Tesztelje a kódot.

    Tippek

    • Kezdje kis programokkal. Amikor saját kódot készít, próbálja meg azonosítani a probléma leglényegesebb részét - ez az adatbevitel vagy a függvények meghívása, a ciklus szerkezete (ezek néhány nagyon elemi példa), és onnan kezdje. Ezután építsen erre kis lépésekben.
    • A Fortran nem különbözteti meg a kis- és nagybetűket. Például deklarálhat egy változót "valós szám" -ként, és a következő sorba írhat "szám = 1" értéket. De ez rossz stílus, ezért kerüld el. Ennél is fontosabb, hogy a Fortran -t sem érdekli a függvények és az állítások esete. Elég gyakori, hogy a függvényeket és az utasításokat nagybetűsre, a változókat pedig kisbetűre írjuk.
    • Az EMACS egy jó ingyenes szövegszerkesztő a Jegyzettömb helyett.
    • Először talán könnyebben használhatja az online IDE -t (integrált fejlesztői környezet). Egy jó lehetőség a Coding Ground. Programozási nyelvek sokaságát találja ott, köztük a Fortran-95-öt. Egy másik lehetőség az Ideone.

Ajánlott: