Jak programovat ve Fortranu (s obrázky)

Obsah:

Jak programovat ve Fortranu (s obrázky)
Jak programovat ve Fortranu (s obrázky)

Video: Jak programovat ve Fortranu (s obrázky)

Video: Jak programovat ve Fortranu (s obrázky)
Video: TOP 10 Počítačové lifehacky, které vám usnadní život 2024, Duben
Anonim

Mnoho lidí vnímá Fortran jako archaický a „mrtvý“programovací jazyk. Většina vědeckých a technických kódů je však napsána ve Fortranu. Programování ve F77 a F90 tak zůstává nezbytnou dovedností pro většinu technických programátorů. Nejnovější standardy Fortran (2003, 2008, 2015) navíc umožňují programátorovi psát vysoce účinný kód s minimálním úsilím a využívat všechny moderní jazykové funkce, jako je OOP (objektově orientované programování). FORTRAN je zkratka pro „FORmula TRANslation“a je nejvhodnější pro matematické a numerické aplikace než pro grafické nebo databázové aplikace. Většina kódů fortran přijímá text ze souboru nebo příkazového řádku, nikoli z nabídky nebo rozhraní GUI.

Kroky

Část 1 ze 4: Psaní a kompilace jednoduchého programu

Světový program Fortran ahoj opravený
Světový program Fortran ahoj opravený

Krok 1. Napište program „Hello World“

Toto je obvykle první program pro psaní v jakémkoli jazyce a na obrazovku vytiskne „Hello world“. Napište následující kód do libovolného textového editoru a uložte jej jako helloworld.f. Dávejte pozor, aby před každým řádkem bylo přesně 6 mezer.

program helloworld implicitně žádný znak*13 hello_string hello_string = "Ahoj, světe!" napište (*, *) hello_string ukončete program helloworld

Spropitné: Mezery jsou nutné pouze ve verzích Fortranu až do FORTRAN 77. Pokud používáte novější verzi, můžete mezery vypustit. Kompilace programů z novější verze s f95, ne f77; použijte.f95 jako příponu souboru namísto pouze.f.

Krok 2. Zkompilujte program

Chcete -li to provést, zadejte do příkazového řádku f77 helloworld.f. Pokud dojde k chybě, pravděpodobně jste ještě nenainstalovali kompilátor Fortran jako například gfortran.

Fortran ahoj svět kompilace run
Fortran ahoj svět kompilace run

Krok 3. Spusťte program

Kompilátor vytvořil soubor s názvem a.out. Spusťte tento soubor zadáním./a.out.

Krok 4. Pochopte, co jste právě napsali

  • program helloworld

    označuje začátek programu „helloworld“. Podobně,

    ukončete program helloworld

  • označuje jeho konec.
  • Pokud ve výchozím nastavení nedeklarujete typ proměnné, Fortran považuje proměnnou se jménem začínajícím na písmeno od i do n za celé číslo a všechny ostatní za skutečné číslo. Doporučuje se použít

    implicitní žádný

  • pokud takové chování nepotřebujete.
  • znak*13 hello_string

  • deklaruje pole znaků, které se nazývá hello_string.
  • hello_string = "Ahoj, světe!"

  • přiřadí hodnotu „Ahoj, světe!“do deklarovaného pole. Na rozdíl od jiných jazyků, jako je C, to nelze provést na stejném řádku jako deklarace pole.
  • napište (*, *) hello_string

  • vytiskne hodnotu hello_string na standardní výstup. První * znamená zápis na standardní výstup, na rozdíl od nějakého souboru. Druhý * znamená nepoužívat žádné speciální formátování.
Komentáře Fortranu
Komentáře Fortranu

Krok 5. Přidejte komentář

V tak jednoduchém programu to není nutné, ale bude to užitečné, když napíšete něco složitějšího, takže byste měli vědět, jak je přidat. Komentář lze přidat dvěma způsoby.

  • Chcete -li přidat komentář, který má celý řádek sám, napište c přímo do nového řádku bez 6 mezer. Poté napište svůj komentář. Pro lepší čitelnost byste měli nechat mezeru mezi c a komentářem, ale není to nutné. Všimněte si, že musíte použít! místo c ve Fortranu 95 a novějších.
  • Chcete -li přidat komentář na stejný řádek jako kód, přidejte! kde chcete, aby váš komentář začínal. Opět není zapotřebí mezera, ale zlepšuje čitelnost.

Část 2 ze 4: Použití vstupů a konstrukcí If

Datové typy Fortran
Datové typy Fortran

Krok 1. Pochopte různé datové typy

  • INTEGER se používá pro celá čísla, například 1, 3 nebo -3.
  • REAL může také obsahovat číslo, které není celé, například 2,5.
  • COMPLEX slouží k ukládání komplexních čísel. První číslo je skutečné a druhé imaginární část.
  • CHARACTER se používá pro znaky, jako jsou písmena nebo interpunkce.
  • LOGICKÉ může být buď.pravdivé. nebo.false.. To je jako booleovský typ v jiných programovacích jazycích.

Krok 2. Získejte vstup uživatele

V programu „Hello world“, který jste psali dříve, by vstup uživatelů byl zbytečný. Otevřete tedy nový soubor a pojmenujte jej compnum.f. Až to dokončíte, sdělí to uživateli, zda je zadané číslo kladné, záporné nebo rovné nule.

  • Zadejte řádky programu compnum a ukončete program compnum.
  • Potom deklarujte proměnnou typu REAL. Ujistěte se, že je vaše prohlášení mezi začátkem a koncem programu.
  • Vysvětlete uživateli, co má dělat. Napište nějaký text pomocí funkce zápisu.
  • Přečtěte si vstup uživatele do proměnné, kterou jste deklarovali pomocí funkce čtení.

program compnum real r write (*, *) "Enter a real number:" read (*, *) r end program

Fortran if construction
Fortran if construction

Krok 3. Zpracujte vstup uživatele pomocí konstrukce if

Dejte to mezi

číst (*, *) r

a

ukončení programu

  • Porovnání se provádí s.gt. (větší než),.lt. (méně než) a. ekv. (rovná se) ve Fortranu.
  • Fortran podporuje if, else if a else
  • Stavba Fortran if vždy končí end if.

if (r.gt. 0) then write (*, *) "This number is positive." jinak if (r.lt. 0) then write (*, *) "This number is negative." jinak napište (*, *) „To číslo je 0.“konec pokud

Spropitné: Nemusíte odsazovat kód uvnitř if-konstrukcí s více mezerami, ale zlepšuje čitelnost.

Program pro kontrolu čísel Fortran test
Program pro kontrolu čísel Fortran test

Krok 4. Zkompilujte a spusťte program

Chcete -li to vyzkoušet, zadejte některá čísla. Pokud zadáte písmeno, vyvolá to chybu, ale to je v pořádku, protože program nekontroluje, zda je zadáno písmeno, číslo nebo něco jiného.

Část 3 ze 4: Použití smyček a polí

Krok 1. Otevřete nový soubor

Protože je tento koncept odlišný, budete muset znovu napsat nový program. Pojmenujte soubor addmany.f. Vložte odpovídající program a ukončete programová prohlášení a také implicitní žádné. Když skončíte, tento program přečte 10 čísel a vytiskne jejich součet.

Krok 2. Deklarujte pole o délce 10

Zde budete ukládat čísla. Protože pravděpodobně chcete součet skutečných čísel, měli byste deklarovat pole jako skutečné. Takové pole deklarujete pomocí

reálná čísla (50)

(čísla je název pole, nikoli výraz).

Krok 3. Deklarujte některé proměnné

Deklarovat numSum jako skutečné číslo. Slouží k pozdějšímu uložení částky, ale protože součet je již převzat výrazem Fortran, musíte použít název jako numSum. Nastavte jej na 0. Deklarujte i jako celé číslo a zatím mu nepřiřazujte žádnou hodnotu. To bude provedeno v do-smyčce.

Krok 4. Vytvořte smyčku

Ekvivalentem toho v jiných programovacích jazycích by byla for-loop.

  • Do-loop vždy začíná do.
  • Na stejném řádku jako do, oddělený mezerou, je štítek, na který program přejde, až skončí. Prozatím stačí napsat 1, štítek nastavíte později.
  • Poté opět pouze oddělené mezerou, zadejte

    i = 1, 10

    . To způsobí, že proměnná i, kterou jste deklarovali před smyčkou, přejde od 1 do 10 v krocích po 1. Kroky nejsou v tomto výrazu uvedeny, takže Fortran používá výchozí hodnotu 1. Mohli jste také napsat

    i = 1, 10, 1

  • Vložte do smyčky nějaký kód (odsazení s mezerami pro lepší čitelnost). U tohoto programu byste měli zvýšit proměnnou numSum s i-tým prvkem čísel polí. To se provádí pomocí výrazu

    numSum = numSum + číslo (i)

  • Ukončete smyčku příkazem continue, který má popisek. Zadejte pouze 4 mezery. Poté zadejte 1. To je štítek, na který jste řekli do-loop, aby se na něj dostal, až skončí. Potom zadejte mezeru a pokračujte. Výraz continue nic nedělá, ale poskytuje dobré místo pro umístění štítku a také ukazuje, že do-loop skončil.

Vaše smyčka do by nyní měla vypadat takto:

do 1 i = 1, 10 numSum = numSum + čísla (i) 1 pokračujte

Spropitné: Ve Fortranu 95 a novějších nemusíte používat štítky. Jednoduše nevkládejte jeden do příkazu do a smyčku ukončete „end do“místo „continue“.

Fortran do smyčky code
Fortran do smyčky code

Krok 5. Vytiskněte numSum

Také by dávalo smysl uvést nějaký kontext, například „Součet vašich čísel je:“. Pro oba použijte funkci zápisu. Celý váš kód by nyní měl vypadat následovně:

program addmany implicitní žádná reálná čísla (10) skutečné numSum celé číslo i numSum = 0 zápis (*, *) "Zadejte 10 čísel:" přečtěte (*, *) čísla do 1 i = 1, 10 numSum = numSum + čísla (i) 1 pokračovat v zápisu (*, *) „Jejich součet je:“zapisovat (*, *) numSum konec programu addmany

Fortran přidejte čísla test
Fortran přidejte čísla test

Krok 6. Zkompilujte a spusťte kód

Nezapomeňte to vyzkoušet. Můžete buď stisknout ↵ Enter za každým zadaným číslem, nebo zadat více čísel na stejný řádek a oddělit je mezerou.

Část 4 ze 4: Porozumění pokročilým konceptům

Program ve Fortranu, krok 13
Program ve Fortranu, krok 13

Krok 1. Mějte dobrou představu o tom, co bude váš program dělat

Zamyslete se nad tím, jaký druh dat je potřeba jako vstup, jak strukturovat výstup a zahrnout nějaký mezivýstup, abyste mohli sledovat průběh výpočtu. To bude velmi užitečné, pokud víte, že váš výpočet poběží dlouhou dobu nebo zahrnuje několik komplikovaných kroků.

Referenční webová stránka Fortran screenshot
Referenční webová stránka Fortran screenshot

Krok 2. Najděte dobrou referenci Fortranu

Fortran má mnohem více funkcí, než je vysvětleno v tomto článku, a mohou být užitečné pro program, který chcete napsat. Reference uvádí všechny funkce, které programovací jazyk má. Toto je jedno pro Fortran 77 a toto je pro Fortran 90/95.

Podprogramy Fortran příklad
Podprogramy Fortran příklad

Krok 3. Přečtěte si o podprogramech a funkcích

Příklad řetězce formátu Fortran
Příklad řetězce formátu Fortran

Krok 4. Naučte se číst a zapisovat ze/do souborů

Přečtěte si také, jak formátovat vstup/výstup.

Modern fortran example screenshot
Modern fortran example screenshot

Krok 5. Seznamte se s novými funkcemi Fortran 90/95 a novějších

Tento krok přeskočte, pokud víte, že budete pouze psát/udržovat kód Fortran 77.

Pamatujte, že Fortran 90 představil zdrojový kód „Free Form“, který umožňuje psát kód bez mezer a bez limitu 72 znaků

Kniha Fortran online screenshot
Kniha Fortran online screenshot

Krok 6. Přečtěte si nebo si vyhledejte nějaké knihy o vědeckém programování

Například kniha „Numerické recepty ve Fortranu“je dobrým textem o vědeckých programovacích algoritmech a dobrým úvodem do sestavování kódů. Novější edice obsahují kapitoly o programování ve smíšeném jazykovém prostředí a paralelním programování. Dalším příkladem je „Modern Fortran in Practice“od Arjena Markuse. Kniha poskytuje pohled na to, jak psát programy Fortran ve stylu dvacátého prvního století v souladu s nejnovějšími standardy Fortranu.

Program Fortran kompiluje více souborů
Program Fortran kompiluje více souborů

Krok 7. Zjistěte, jak kompilovat program rozložený do více souborů

Předpokládejme, že váš program Fortran je rozložen do souborů main.f a morestuff.f a že chcete, aby výsledný binární soubor byl pojmenován allstuff. Poté budete muset do příkazového řádku napsat následující příkazy:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o all mainuff.o morestuff.f

Potom spusťte soubor zadáním./allstuff.

Spropitné: To funguje stejným způsobem s novějšími verzemi Fortranu. Stačí nahradit.f správným rozšířením a f77 správnou verzí kompilátoru.

Krok 8. Použijte optimalizaci, kterou poskytuje váš kompilátor

Většina kompilátorů obsahuje optimalizační algoritmy, které zlepšují účinnost vašeho kódu. Ty jsou obvykle zapnuty zahrnutím příznaku -O, -O2 nebo -O3 při kompilaci (opět v závislosti na vaší verzi fortran).

  • Obecně platí, že nejlepší je nejnižší úroveň -O nebo -O2. Uvědomte si, že použití agresivnější možnosti optimalizace může vložit chyby do složitých kódů a dokonce může věci zpomalit! Otestujte si kód.

    Tipy

    • Začněte s malými programy. Když vytváříte vlastní kód, zkuste identifikovat nejpodstatnější část problému - je to vstup dat nebo volání funkcí, struktura smyčky (to jsou některé velmi elementární příklady) a začněte odtud. Pak na tom stavte v malých krocích.
    • Fortran nerozlišuje velká a malá písmena. Můžete například deklarovat proměnnou „skutečné číslo“a do dalšího řádku napsat „num = 1“a přiřadit jí hodnotu. Ale to je špatný styl, takže se tomu vyhněte. Ještě důležitější je, že Fortran se nestará ani o případ funkcí a příkazů. Je zcela běžné zapisovat funkce a příkazy VE VELKÉ Proměnné a proměnné malými písmeny.
    • EMACS je dobrý bezplatný textový editor, který lze použít místo programu Poznámkový blok.
    • Nejprve může být jednodušší použít online IDE (integrované vývojové prostředí). Dobrou volbou je Coding Ground. Najdete tam mnoho programovacích jazyků, včetně Fortran-95. Další možností je Ideone.

Doporučuje: