Jak programować w Fortran (ze zdjęciami)

Spisu treści:

Jak programować w Fortran (ze zdjęciami)
Jak programować w Fortran (ze zdjęciami)

Wideo: Jak programować w Fortran (ze zdjęciami)

Wideo: Jak programować w Fortran (ze zdjęciami)
Wideo: Merge multiple notes into a single note in the Evernote desktop app 2024, Kwiecień
Anonim

Wiele osób postrzega Fortran jako archaiczny i „martwy” język programowania. Jednak większość kodu naukowego i inżynierskiego jest napisana w Fortranie. Jako takie, programowanie w F77 i F90 pozostaje niezbędną umiejętnością dla większości programistów technicznych. Co więcej, najnowsze standardy Fortran (2003, 2008, 2015) pozwalają programiście na pisanie wysoce wydajnego kodu przy minimalnym wysiłku, przy jednoczesnym wykorzystaniu wszystkich nowoczesnych funkcji językowych, takich jak OOP (programowanie obiektowe). FORTRAN to akronim od „FORMULA TRANSLATION” i najlepiej nadaje się do zastosowań matematycznych i numerycznych, a nie graficznych lub aplikacji bazodanowych. Większość kodów fortran pobiera tekst z pliku lub wiersza poleceń, a nie z menu lub interfejsu GUI.

Kroki

Część 1 z 4: Pisanie i kompilowanie prostego programu

Fortran hello world program zapisz poprawiony
Fortran hello world program zapisz poprawiony

Krok 1. Napisz program „Hello World”

Jest to zwykle pierwszy program, który pisze w dowolnym języku i po prostu wyświetla na ekranie „Witaj świecie”. Napisz następujący kod w dowolnym edytorze tekstu i zapisz go jako helloworld.f. Zwróć uwagę, że przed każdą linią musi być dokładnie 6 spacji.

program helloworld niejawny brak znak*13 hello_string hello_string = "Witaj świecie!" napisz (*, *) hello_string koniec programu helloworld

Wskazówka: Spacje są potrzebne tylko w wersjach Fortran do FORTRAN 77. Jeśli używasz nowszej wersji, możesz usunąć spacje. Kompiluj programy z nowszej wersji z f95, a nie f77; użyj.f95 jako rozszerzenia pliku zamiast samego.f.

Krok 2. Skompiluj program

Aby to zrobić, wpisz f77 helloworld.f w wierszu poleceń. Jeśli to daje błąd, prawdopodobnie nie zainstalowałeś jeszcze kompilatora Fortran, takiego jak na przykład gfortran.

Fortran hello world kompilacja run
Fortran hello world kompilacja run

Krok 3. Uruchom swój program

Kompilator utworzył plik o nazwie a.out. Uruchom ten plik, wpisując./a.out.

Krok 4. Zrozum, co właśnie napisałeś

  • program helloworld

    wskazuje początek programu "helloworld". Podobnie,

    koniec programu helloworld

  • wskazuje na jego koniec.
  • Domyślnie, jeśli nie zadeklarujesz typu zmiennej, Fortran traktuje zmienną o nazwie zaczynającej się od litery od i do n jako liczbę całkowitą, a wszystkie inne jako liczbę rzeczywistą. Zaleca się używać

    niejawny żaden

  • jeśli nie potrzebujesz takiego zachowania.
  • znak*13 cześć_ciąg

  • deklaruje tablicę znaków, która nazywa się hello_string.
  • hello_string = "Witaj świecie!"

  • przypisuje wartość "Hello, world!" do zadeklarowanej tablicy. W przeciwieństwie do innych języków, takich jak C, nie można tego zrobić w tym samym wierszu, co deklarowanie tablicy.
  • napisz (*, *) hello_string

  • wypisuje wartość hello_string na standardowe wyjście. Pierwsza * oznacza zapis na standardowe wyjście, w przeciwieństwie do jakiegoś pliku. Druga * oznacza, że nie należy używać żadnego specjalnego formatowania.
Fortran komentarze
Fortran komentarze

Krok 5. Dodaj komentarz

Nie jest to konieczne w tak prostym programie, ale przyda się, gdy napiszesz coś bardziej złożonego, więc powinieneś wiedzieć, jak je dodać. Komentarz można dodać na dwa sposoby.

  • Aby dodać komentarz, który ma cały wiersz, wpisz c bezpośrednio w nowym wierszu, bez 6 spacji. Następnie napisz swój komentarz. Aby zapewnić lepszą czytelność, należy zostawić spację między literą c a komentarzem, ale nie jest to wymagane. Pamiętaj, że musisz użyć ! zamiast c w Fortran 95 i nowszych.
  • Aby dodać komentarz w tej samej linii co kod, dodaj ! od którego chcesz zacząć swój komentarz. Ponownie spacja nie jest wymagana, ale poprawia czytelność.

Część 2 z 4: Korzystanie z konstrukcji wejściowych i if

Typy danych Fortran
Typy danych Fortran

Krok 1. Zrozum różne typy danych

  • INTEGER jest używany dla liczb całkowitych, takich jak 1, 3 lub -3.
  • REAL może również zawierać liczbę, która nie jest pełna, np. 2.5.
  • COMPLEX służy do przechowywania liczb zespolonych. Pierwsza liczba to część rzeczywista, a druga część urojona.
  • CHARACTER jest używany dla znaków, takich jak litery lub znaki interpunkcyjne.
  • LOGICAL może mieć wartość.true. lub.false.. To jest jak typ logiczny w innych językach programowania.

Krok 2. Uzyskaj dane wejściowe użytkownika

W programie "Hello world", który napisałeś wcześniej, pobieranie danych od użytkownika byłoby bezużyteczne. Więc otwórz nowy plik i nazwij go compnum.f. Kiedy skończysz, poinformuje użytkownika, czy wprowadzona przez niego liczba jest dodatnia, ujemna czy równa zeru.

  • Wprowadź wiersze program compnum i koniec programu compnum.
  • Następnie zadeklaruj zmienną typu REAL. Upewnij się, że Twoja deklaracja znajduje się między początkiem a końcem programu.
  • Wyjaśnij użytkownikowi, co ma zrobić. Napisz tekst za pomocą funkcji write.
  • Wczytaj dane wprowadzone przez użytkownika do zmiennej, którą zadeklarowałeś funkcją read.

program compnum real r write (*, *) "Wprowadź liczbę rzeczywistą:" odczyt (*, *) r koniec programu

Fortran, jeśli konstrukcja
Fortran, jeśli konstrukcja

Krok 3. Przetwórz dane wprowadzone przez użytkownika za pomocą konstrukcji if

Umieść to między

przeczytaj (*, *) r

i

koniec programu

  • Porównanie odbywa się z.gt. (większe niż),.lt. (mniej niż) i.eq. (równa się) w Fortranie.
  • Fortran obsługuje if, else if i else
  • Konstrukcja fortranowa if zawsze kończy się na end if.

if (r.gt. 0) to napisz (*, *) „Ta liczba jest dodatnia”. else if (r.lt. 0) to napisz (*, *) "Ta liczba jest ujemna." w przeciwnym razie napisz (*, *) "Ta liczba to 0". koniec jeśli

Wskazówka: Nie musisz wcinać kodu wewnątrz konstrukcji if z większą ilością spacji, ale poprawia to czytelność.

Program sprawdzania numeru Fortran test
Program sprawdzania numeru Fortran test

Krok 4. Skompiluj i uruchom swój program

Wprowadź kilka liczb, aby to przetestować. Jeśli wprowadzisz literę, zgłosi to błąd, ale to jest w porządku, ponieważ program nie sprawdza, czy dane wejściowe są literą, cyfrą, czy czymś innym.

Część 3 z 4: Używanie pętli i tablic

Krok 1. Otwórz nowy plik

Ponieważ ta koncepcja jest inna, będziesz musiał ponownie napisać nowy program. Nazwij plik addmany.f. Wstaw odpowiedni program i instrukcje zakończenia programu, a także niejawny brak. Kiedy skończysz, ten program odczyta 10 liczb i wydrukuje ich sumę.

Krok 2. Zadeklaruj tablicę o długości 10

Tutaj będziesz przechowywać numery. Ponieważ prawdopodobnie chcesz otrzymać sumę liczb rzeczywistych, powinieneś zadeklarować tablicę jako rzeczywistą. Taką tablicę deklarujesz za pomocą

liczby rzeczywiste(50)

(liczby to nazwa tablicy, a nie wyrażenie).

Krok 3. Zadeklaruj kilka zmiennych

Zadeklaruj numSum jako liczbę rzeczywistą. Użyjesz go do późniejszego przechowywania sumy, ale ponieważ suma jest już przyjmowana przez wyrażenie Fortran, musisz użyć nazwy takiej jak numSum. Ustaw ją na 0. Zadeklaruj i jako liczbę całkowitą i nie przypisuj jej jeszcze żadnej wartości. Zostanie to zrobione w pętli.

Krok 4. Utwórz pętlę do wykonania

Odpowiednikiem tego w innych językach programowania byłaby pętla for.

  • Pętla do zawsze zaczyna się od do.
  • W tej samej linii co do, oddzielona od niej spacją, znajduje się etykieta, do której program przejdzie po zakończeniu. Na razie po prostu wpisz 1, etykietę ustawisz później.
  • Następnie ponownie oddzielone tylko spacją, wpisz

    ja = 1, 10

    . Spowoduje to, że zmienna i, którą zadeklarowałeś przed pętlą, przejdzie od 1 do 10 w krokach co 1. Kroki nie są wymienione w tym wyrażeniu, więc Fortran używa domyślnej wartości 1. Mogłeś również napisać

    ja = 1, 10, 1

  • Umieść trochę kodu wewnątrz pętli (wcięcie ze spacjami dla lepszej czytelności). W przypadku tego programu należy zwiększyć zmienną numSum o i-ty element numerów tablicy. Odbywa się to za pomocą wyrażenia

    sumaliczb = sumaliczb + liczba(i)

  • Zakończ pętlę instrukcją continue, która ma etykietę. Wpisz tylko 4 spacje. Następnie wpisz 1. To jest etykieta, do której poleciłeś pętli do po jej zakończeniu. Następnie wpisz spację i kontynuuj. Wyrażenie kontynuuje nic nie robi, ale daje dobre miejsce do umieszczenia etykiety, a także pokazuje, że pętla dokończyła się.

Twoja pętla do powinna teraz wyglądać tak:

wykonaj 1 i = 1, 10 sumaliczb = sumalicz + liczby(i) 1 kontynuuj

Wskazówka: W Fortran 95 i nowszych nie musisz używać etykiet. Po prostu nie umieszczaj go w instrukcji do i nie kończ pętli „end do” zamiast „continue”.

Fortran do pętli code
Fortran do pętli code

Krok 5. Wydrukuj numSum

Warto też podać kontekst, na przykład „Suma twoich liczb to:”. Użyj funkcji zapisu dla obu. Twój cały kod powinien teraz wyglądać następująco:

program addwiele niejawny brak liczby rzeczywiste(10) liczba rzeczywista numSum liczba całkowita i numSum = 0 napisz (*, *) "Wprowadź 10 liczb:" odczyt (*, *) liczby wykonaj 1 i = 1, 10 numSum = numSum + liczby(i) 1 kontynuuj napisz (*, *) "Ich suma to:" napisz (*, *) numSum koniec programu addmany

Fortran dodaj numery kod test
Fortran dodaj numery kod test

Krok 6. Skompiluj i uruchom swój kod

Nie zapomnij go przetestować. Możesz nacisnąć ↵ Enter po każdej wprowadzonej cyfrze lub wprowadzić wiele cyfr w tym samym wierszu i oddzielić je spacją.

Część 4 z 4: Zrozumienie zaawansowanych pojęć

Program w Fortran Krok 13
Program w Fortran Krok 13

Krok 1. Miej dobre pojęcie o tym, co zrobi twój program

Zastanów się, jakiego rodzaju dane są potrzebne jako dane wejściowe, jak ustrukturyzować dane wyjściowe i uwzględnij niektóre dane wyjściowe, aby móc monitorować postęp obliczeń. Będzie to bardzo przydatne, jeśli wiesz, że Twoje obliczenia będą działać przez długi czas lub będą obejmować wiele skomplikowanych kroków.

Strona referencyjna Fortranu screenshot
Strona referencyjna Fortranu screenshot

Krok 2. Znajdź dobre referencje Fortran

Fortran ma o wiele więcej funkcji niż wyjaśniono w tym artykule i mogą być przydatne w programie, który chcesz napisać. W odnośniku wymieniono wszystkie funkcje, jakie posiada język programowania. To jest dla Fortran 77, a to dla Fortran 90/95.

Podprogramy Fortran przykład
Podprogramy Fortran przykład

Krok 3. Dowiedz się o podprogramach i funkcjach

Przykładowy ciąg formatu Fortran
Przykładowy ciąg formatu Fortran

Krok 4. Naucz się czytać i pisać z/do plików

Dowiedz się również, jak sformatować wejście/wyjście.

Nowoczesny przykład fortranu screenshot
Nowoczesny przykład fortranu screenshot

Krok 5. Poznaj nowe funkcje Fortran 90/95 i nowszych

Pomiń ten krok, jeśli wiesz, że będziesz pisać/konserwować tylko kod Fortran 77.

Pamiętaj, że Fortran 90 wprowadził kod źródłowy „Free Form”, umożliwiający pisanie kodu bez spacji i bez limitu 72 znaków

Książka Fortran online zrzut ekranu
Książka Fortran online zrzut ekranu

Krok 6. Przeczytaj lub poszukaj książek na temat programowania naukowego

Na przykład książka „Receptury liczbowe w Fortran” jest zarówno dobrym tekstem na temat algorytmów programowania naukowego, jak i dobrym wprowadzeniem do tworzenia kodów. Nowsze wydania zawierają rozdziały dotyczące programowania w środowisku mieszanym i programowania równoległego. Innym przykładem jest „Modern Fortran w praktyce” napisany przez Arjena Markusa. Książka daje wgląd w to, jak pisać programy Fortranu w stylu XXI wieku zgodnie z najnowszymi standardami Fortranu.

Fortran kompiluje program w wielu plikach
Fortran kompiluje program w wielu plikach

Krok 7. Dowiedz się, jak skompilować program rozłożony na wiele plików

Załóżmy, że twój program Fortran jest rozłożony na pliki main.fi morestuff.f i chcesz, aby wynikowy plik binarny miał nazwę allstuff. Następnie będziesz musiał wpisać następujące polecenia w wierszu poleceń:

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

Następnie uruchom plik, wpisując./allstuff.

Wskazówka: Działa to w ten sam sposób z nowszymi wersjami Fortran. Wystarczy zastąpić.f poprawnym rozszerzeniem, a f77 poprawną wersją kompilatora.

Krok 8. Użyj optymalizacji zapewnianej przez kompilator

Większość kompilatorów zawiera algorytmy optymalizacji, które poprawiają wydajność kodu. Są one zazwyczaj włączane przez włączenie flagi -O, -O2 lub -O3 podczas kompilacji (znowu w zależności od wersji fortranu).

  • Generalnie najlepszy jest najniższy poziom -O lub -O2. Należy pamiętać, że użycie bardziej agresywnej opcji optymalizacji może wprowadzić błędy w złożonych kodach, a nawet spowolnić działanie! Przetestuj swój kod.

    Porady

    • Zacznij od małych programów. Kiedy tworzysz własny kod, postaraj się zidentyfikować najistotniejszą część problemu - czy jest to wprowadzanie danych, czy wywołanie funkcji, struktura pętli (to kilka bardzo elementarnych przykładów) i od tego zacznij. Następnie buduj na tym w małych przyrostach.
    • Fortran nie rozróżnia wielkości liter. Możesz na przykład zadeklarować zmienną „real Num” i napisać „num = 1” w następnym wierszu, aby przypisać jej wartość. Ale to zły styl, więc unikaj go. Co ważniejsze, Fortran nie przejmuje się również przypadkiem funkcji i instrukcji. Często zdarza się, że funkcje i instrukcje pisane są WIELKIMI LITERAMI, a zmienne małymi.
    • EMACS to dobry darmowy edytor tekstu do użycia zamiast Notatnika.
    • Na początku może być łatwiej korzystać z internetowego IDE (zintegrowanego środowiska programistycznego). Dobrą opcją jest Coding Ground. Znajdziesz tam wiele języków programowania, w tym Fortran-95. Inną opcją jest Ideone.

Zalecana: