Ako programovať vo Fortrane (s obrázkami)

Obsah:

Ako programovať vo Fortrane (s obrázkami)
Ako programovať vo Fortrane (s obrázkami)

Video: Ako programovať vo Fortrane (s obrázkami)

Video: Ako programovať vo Fortrane (s obrázkami)
Video: TOP 10 Počítačové lifehacky, které vám usnadní život 2024, Apríl
Anonim

Mnoho ľudí vníma Fortran ako archaický a „mŕtvy“programovací jazyk. Väčšina vedeckého a inžinierskeho kódu je však napísaná vo Fortrane. Programovanie vo F77 a F90 zostáva pre väčšinu technických programátorov nevyhnutnou zručnosťou. Najnovšie štandardy Fortran (2003, 2008, 2015) navyše umožňujú programátorovi písať vysoko efektívny kód s minimálnym úsilím a využívať všetky moderné jazykové funkcie, ako napríklad OOP (objektovo orientované programovanie). FORTRAN je skratka pre „FORmula TRANslation“a je najvhodnejšia pre matematické a numerické aplikácie než pre grafické alebo databázové aplikácie. Väčšina kódov fortran preberá textový vstup zo súboru alebo príkazového riadka, a nie z ponuky alebo rozhrania GUI.

Kroky

Časť 1 zo 4: Písanie a zostavenie jednoduchého programu

Svetový program Fortran ahoj napíšte opravené
Svetový program Fortran ahoj napíšte opravené

Krok 1. Napíšte program „Hello World“

Toto je zvyčajne prvý program na písanie v akomkoľvek jazyku a na obrazovku vytlačí „Hello world“. Napíšte nasledujúci kód do ľubovoľného textového editora a uložte ho ako helloworld.f. Dávajte pozor, aby pred každým riadkom bolo presne 6 medzier.

program helloworld implicitne žiadny znak*13 hello_string hello_string = "Ahoj, svet!" napísať (*, *) hello_string ukončiť program helloworld

Tip: Medzery sú potrebné iba vo verziách Fortranu až do FORTRAN 77. Ak používate novšiu verziu, medzery môžete vypustiť. Kompilujte programy z novšej verzie s f95, nie f77; použite.f95 ako príponu súboru, nie iba.f.

Krok 2. Zostavte program

Za týmto účelom zadajte do príkazového riadka f77 helloworld.f. Ak sa zobrazí chyba, pravdepodobne ste ešte nenainštalovali kompilátor Fortranu, ako je napríklad gfortran.

Fortran ahoj svet zostavil run
Fortran ahoj svet zostavil run

Krok 3. Spustite program

Kompilátor vytvoril súbor s názvom a.out. Spustite tento súbor zadaním./a.out.

Krok 4. Pochopte, čo ste práve napísali

  • program helloworld

    označuje začiatok programu „helloworld“. Podobne,

    ukončiť program helloworld

  • naznačuje jeho koniec.
  • Ak predvolene nenahlásite typ premennej, Fortran bude považovať premennú s názvom začínajúcim na písmeno od i do n za celé číslo a so všetkými ostatnými za skutočné číslo. Odporúča sa použiť

    implicitne žiadny

  • ak to správanie nepotrebuješ.
  • znak*13 hello_string

  • deklaruje pole znakov, ktoré sa nazýva hello_string.
  • hello_string = "Ahoj, svet!"

  • priradí hodnotu „Ahoj, svet!“do deklarovaného poľa. Na rozdiel od iných jazykov, ako je C, to nie je možné vykonať na rovnakom riadku ako deklarácia poľa.
  • napíšte (*, *) reťazec ahoj

  • vytlačí hodnotu hello_string na štandardný výstup. Prvý * znamená zápis na štandardný výstup, na rozdiel od niektorých súborov. Druhý * znamená nepoužívať žiadne špeciálne formátovanie.
Fortran comments
Fortran comments

Krok 5. Pridajte komentár

V takom jednoduchom programe to nie je potrebné, ale bude to užitočné, keď napíšete niečo zložitejšie, takže by ste mali vedieť, ako ich pridať. Existujú dva spôsoby, ako pridať komentár.

  • Ak chcete pridať komentár, ktorý má celý riadok sám, napíšte c priamo do nového riadka bez 6 medzier. Potom napíšte svoj komentár. Kvôli lepšej čitateľnosti by ste medzi znakom c a komentárom mali nechať medzeru, nie je to však povinné. Upozorňujeme, že musíte použiť! namiesto c vo Fortrane 95 a novších.
  • Ak chcete pridať komentár v rovnakom riadku ako kód, pridajte! kde chcete, aby sa váš komentár začínal. Medzera opäť nie je potrebná, ale zlepšuje čitateľnosť.

Časť 2 zo 4: Použitie vstupov a konštrukcií, ak

Dátové typy Fortran
Dátové typy Fortran

Krok 1. Pochopte rôzne typy údajov

  • INTEGER sa používa pre celé čísla, napríklad 1, 3 alebo -3.
  • REAL môže obsahovať aj číslo, ktoré nie je celé, napríklad 2,5.
  • COMPLEX slúži na ukladanie komplexných čísel. Prvé číslo je skutočné a druhé imaginárna časť.
  • CHARACTER sa používa pre znaky, ako sú písmená alebo interpunkcia.
  • LOGICKÉ môže byť buď.pravdivé. alebo.false.. Toto je ako booleovský typ v iných programovacích jazykoch.

Krok 2. Získajte informácie od používateľa

V programe „Hello world“, ktorý ste písali predtým, by bolo vstupné informácie používateľov zbytočné. Otvorte teda nový súbor a pomenujte ho compnum.f. Keď ho dokončíte, oznámi používateľovi, či je zadané číslo kladné, záporné alebo sa rovná nule.

  • Zadajte riadky program compnum a ukončite program compnum.
  • Potom deklarujte premennú typu REAL. Zaistite, aby bolo vaše vyhlásenie medzi začiatkom a koncom programu.
  • Vysvetlite používateľovi, čo má robiť. Napíšte nejaký text pomocou funkcie zápisu.
  • Prečítajte si vstup používateľa do premennej, ktorú ste deklarovali pomocou funkcie čítania.

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

Fortran if construction
Fortran if construction

Krok 3. Spracujte vstup užívateľa s konštrukciou if

Dajte to medzi

čítať (*, *) r

a

ukončiť program

  • Porovnanie sa robí s.gt. (väčšie ako),.lt. (menej ako) a. ekv. (rovná sa) vo Fortrane.
  • Fortran podporuje if, else if a else
  • Stavba Fortranu, ak sa vždy skončí, ak.

ak (r.gt. 0), napíšte (*, *) „Toto číslo je kladné.“v opačnom prípade, ak (r.lt. 0), napíšte (*, *) „Toto číslo je záporné.“inak napíšte (*, *) „To číslo je 0.“koniec Ak

Tip: V if-konštrukciách s väčším počtom medzier nemusíte odsadiť kód, ale zlepšuje to čitateľnosť.

Program na kontrolu čísla Fortran test
Program na kontrolu čísla Fortran test

Krok 4. Skompilovajte a spustite program

Na otestovanie zadajte niekoľko čísel. Ak zadáte písmeno, vyvolá to chybu, ale je to v poriadku, pretože program nekontroluje, či je zadaním písmeno, číslo alebo niečo iné.

Časť 3 zo 4: Používanie slučiek a polí

Krok 1. Otvorte nový súbor

Pretože je tento koncept odlišný, budete musieť znova napísať nový program. Pomenujte súbor addmany.f. Vložte zodpovedajúci program a ukončenie programu, ako aj implicitné žiadne. Keď skončíte, tento program načíta 10 čísel a vytlačí ich súčet.

Krok 2. Deklarujte pole s dĺžkou 10

Tu budete ukladať čísla. Pretože pravdepodobne chcete súčet reálnych čísel, mali by ste pole deklarovať ako skutočné. Také pole deklarujete pomocou

reálne čísla (50)

(čísla je názov poľa, nie výraz).

Krok 3. Deklarujte niektoré premenné

Deklarovať numSum ako skutočné číslo. Sumu použijete na neskoršie uloženie sumy, ale keďže súčet už obsahuje výraz Fortran, musíte použiť názov ako numSum. Nastavte ho na 0. Deklarujte i ako celé číslo a zatiaľ mu nepriraďte žiadnu hodnotu. To sa vykoná v do-loop.

Krok 4. Vytvorte do-loop

Ekvivalentom v iných programovacích jazykoch by bola slučka for-loop.

  • Do-loop sa vždy začína do.
  • Na tom istom riadku ako do, oddelenom medzerou, je štítok, na ktorý program prejde, keď bude hotový. Zatiaľ napíšte 1 a štítok nastavíte neskôr.
  • Potom znova zadajte iba medzeru

    i = 1, 10

    . Vďaka tomu bude premenná i, ktorú ste deklarovali pred cyklom, prechádzať od 1 do 10 v krokoch 1. Kroky nie sú v tomto výraze uvedené, takže Fortran používa predvolenú hodnotu 1. Mohli ste tiež napísať

    i = 1, 10, 1

  • Vložte do slučky nejaký kód (zarážka s medzerami pre lepšiu čitateľnosť). V prípade tohto programu by ste mali zvýšiť premennú numSum s i-tým prvkom čísel polí. To sa deje s výrazom

    numSum = numSum + číslo (i)

  • Ukončite slučku príkazom continue, ktorý má označenie. Napíšte iba 4 medzery. Potom zadajte a 1. To je štítok, o ktorom ste povedali, že do-loop má ísť po jeho dokončení. Potom zadajte medzeru a pokračujte. Pokračujúci výraz nerobí nič, ale dáva dobré miesto na umiestnenie štítku a ukazuje, že do-loop sa skončil.

Vaša slučka do by mala teraz vyzerať takto:

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

Tip: Vo Fortran 95 a novších nemusíte používať štítky. Jednoducho nevkladajte jeden do príkazu do a ukončite slučku výrazom „end do“namiesto „continue“.

Fortran do loop code
Fortran do loop code

Krok 5. Vytlačte numSum

Tiež by dávalo zmysel uviesť určitý kontext, napríklad „Súčet vašich čísel je:“. Na obidve použite funkciu zápisu. Celý váš kód by teraz mal vyzerať nasledovne:

program addmany implicitné žiadne reálne čísla (10) skutočné numSum celé číslo i numSum = 0 zápis (*, *) "Zadajte 10 čísel:" čítajte (*, *) čísla do 1 i = 1, 10 numSum = numSum + čísla (i) 1 pokračovať v zápise (*, *) „Ich súčet je:“zapísať (*, *) numSum end program addmany

Fortran pridá kód kódu test
Fortran pridá kód kódu test

Krok 6. Zostavte a spustite kód

Nezabudnite to otestovať. Môžete buď stlačiť ↵ Enter po každom zadanom čísle, alebo zadať veľa čísel do rovnakého riadka a oddeliť ich medzerou.

Časť 4 zo 4: Pochopenie pokročilých konceptov

Program vo Fortrane, krok 13
Program vo Fortrane, krok 13

Krok 1. Majte dobrú predstavu o tom, čo bude váš program robiť

Zamyslite sa nad tým, aký druh údajov sú potrebné ako vstup, ako štruktúrovať výstup a zahrnúť nejaký medziprodukt, aby ste mohli sledovať priebeh vášho výpočtu. To bude veľmi užitočné, ak viete, že váš výpočet bude trvať dlho alebo zahŕňa niekoľko komplikovaných krokov.

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

Krok 2. Nájdite dobrú referenciu Fortranu

Fortran má oveľa viac funkcií, ako je vysvetlených v tomto článku, a môžu byť užitočné pre program, ktorý chcete napísať. Referencia uvádza všetky funkcie, ktoré programovací jazyk má. Toto je jedno pre Fortran 77 a toto je pre Fortran 90/95.

Podprogramy Fortran príklad
Podprogramy Fortran príklad

Krok 3. Získajte informácie o podprogramoch a funkciách

Príklad reťazca formátu Fortran
Príklad reťazca formátu Fortran

Krok 4. Naučte sa čítať a písať zo súborov/do nich

Naučte sa tiež formátovať vstup/výstup.

Moderný príklad fortranu screenshot
Moderný príklad fortranu screenshot

Krok 5. Prečítajte si o nových funkciách Fortranu 90/95 a novších

Tento krok preskočte, ak viete, že budete iba písať/udržiavať kód Fortran 77.

Nezabudnite, že Fortran 90 predstavil zdrojový kód „Voľný formulár“, ktorý umožňuje písať kód bez medzier a bez obmedzenia počtu znakov 72

Kniha Fortran online, screenshot
Kniha Fortran online, screenshot

Krok 6. Prečítajte si alebo si vyhľadajte niektoré knihy o vedeckom programovaní

Napríklad kniha „Numerické recepty vo Fortrane“je dobrým textom o algoritmoch vedeckého programovania a dobrým úvodom do zostavovania kódov. Novšie vydania obsahujú kapitoly o programovaní v prostredí zmiešaných jazykov a paralelnom programovaní. Ďalším príkladom je „Moderný Fortran v praxi“, ktorý napísal Arjen Markus. Kniha prináša pohľad na to, ako písať programy Fortranu v štýle dvadsiateho prvého storočia v súlade s najnovšími štandardmi Fortranu.

Program Fortran kompiluje viac súborov
Program Fortran kompiluje viac súborov

Krok 7. Naučte sa zostaviť program rozložený do viacerých súborov

Predpokladajme, že váš program Fortran je rozložený medzi súbormi main.f a morestuff.f a že chcete, aby bol výsledný binárny súbor pomenovaný allstuff. Potom budete musieť do príkazového riadka napísať nasledujúce príkazy:

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

Potom spustite súbor zadaním príkazu./allstuff.

Tip: Funguje to rovnako pri novších verziách Fortranu. Stačí nahradiť.f správnym rozšírením a f77 správnou verziou kompilátora.

Krok 8. Použite optimalizáciu, ktorú poskytuje váš kompilátor

Väčšina kompilátorov obsahuje optimalizačné algoritmy, ktoré zlepšujú účinnosť vášho kódu. Spravidla sa zapínajú zahrnutím príznaku -O, -O2 alebo -O3 pri kompilácii (opäť v závislosti od vašej verzie fortranu).

  • Spravidla je najlepšia najnižšia úroveň -O alebo -O2. Uvedomte si, že používanie agresívnejšej možnosti optimalizácie môže spôsobiť chyby v zložitých kódoch a dokonca môže veci spomaliť! Otestujte si kód.

    Tipy

    • Začnite s malými programami. Pri vytváraní vlastného kódu sa pokúste identifikovať najpodstatnejšiu časť problému - či už ide o vstup údajov alebo volanie funkcií, štruktúru slučky (to sú niektoré veľmi elementárne príklady) a začnite odtiaľ. Potom na tom stavajte v malých krokoch.
    • Fortran nerozlišuje malé a veľké písmená. Môžete napríklad deklarovať premennú „skutočné číslo“a do ďalšieho riadka napísať „num = 1“, čím jej priradíte hodnotu. Ale to je zlý štýl, takže sa tomu vyhnite. Čo je dôležitejšie, Fortran sa nestará ani o prípad funkcií a vyhlásení. Je úplne bežné písať funkcie a príkazy UPPERCASE a premenné malými písmenami.
    • EMACS je dobrý bezplatný textový editor, ktorý sa používa namiesto programu Poznámkový blok.
    • Na začiatku vám môže byť jednoduchšie používať online IDE (integrované vývojové prostredie). Dobrou možnosťou je Coding Ground. Nájdete tam množstvo programovacích jazykov vrátane Fortran-95. Ďalšou možnosťou je Ideone.

Odporúča: