1 / 14

Wyrażenia

Wyrażenia. Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są “jednozdaniowymi” przepisami na obliczanie/tworzenie jakichś wartości. Typy wyrażeń: arytmetyczne logiczne łańcuchowe. Przykłady wyrażeń:

kineta
Download Presentation

Wyrażenia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wyrażenia • Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. • Wyrażenia są “jednozdaniowymi” przepisami na obliczanie/tworzenie jakichś wartości. • Typy wyrażeń: • arytmetyczne • logiczne • łańcuchowe Przykłady wyrażeń: 2.0+sqrt(x**3)+log(x) ! Wyrażenie arytmetyczne A1 .GT. A2 .OR. DELTA .LT. 0 ! Wyrażenie logiczne 3HAla//1H //’ma kota’ ! Wyrażenie łańcuchowe

  2. Operatory w Fortranie Operatory działają na operandy Unarne (jeden operand) Binarne (dwa operandy) Arytmetyczne (4 działania ) Relacyjne (dla liczb lub dla łańcuchów) Logiczne Bitowe Łańcuchowe

  3. Wynik operacji binarnej ma zawsze typ najwyższy z typów operandów np. operandy typów REAL*8 i INTEGER dają REAL*8 W przypadku typów liczbowych mamy hierarchię INTEGER<REAL<COMPLEX Hierarchia operandu tego samego typu jest tym wyższa im więcej bajtów zajmuje operand np. INTEGER*1 < INTEGER*2 < INTEGER*4)

  4. Operatory arytmetyczne (operandy muszą być INTEGER, REAL lub COMPLEX) Priorytet: **>*>+/->zmiana znaku

  5. Niektóre użyteczne funkcje arytmetyczne

  6. Użycie nazw funkcji podanych w tabelce jest na ogół bezpieczne ponieważ typ funkcji dostosowuje się do najwyższego typu argumentu; np. SIN(1.0d0) automatycznie zostanie obliczony dla argumentu podwójnen precyzji. Dla przejrzystości i przenaszalności warto jednak uwzględniać typ funkcji: • Obowiązuje reguła pierwszej litery, czyli MIN jest typu INTEGER a SIN REAL. • Jeżeli funkcja o nazwie zaczynającej się na [I-N] ma być REAL to dodajemy na początku “A”, np. AMIN. Podobnie, dodanie “I” na początku nazwy nie zaczynającej się na [I-N] implikuje typ INTEGER (np. IABS zamiast ABS). • Jeżeli funkcja ma być podwójnej precyzji, dodajemy “D”, np. DSQRT. • Dla COMPLEX lub DOUBLE COMPLEX dodajemy odpowiednio “C” lub “CD”, np. CSQRT lub CDSQRT.

  7. Przepełnienia, niedomiary, nieokreśloności

  8. Operatory relacyjne Operandy muszą być typów REAL lub INTEGER. Wynik działania operatora relacyjnego jest typu LOGICAL

  9. Operatory logiczne Operandy muszą być typu LOGICAL. Priorytet: .NOT. > .AND. > OR. > .EQV. = .NEQV.

  10. Operatory łańcuchowe

  11. Instrukcja podstawienia (przypisania) zmienna=wyrażenie Typ zmiennej musi być zgodny z typem wyrażenia, którego wartość jest przypisywana do tej zmiennej. Jeżeli zmienna jest typu niższego, niż wartość wyrażenia następuje konwersja to typu niższego; w przeciwnym wypadku do typu wyższego, np: I=SQRT(2.0) wynik: 1 X=2*3 wynik: 6.0 X=(1.0,2.0) wynik: 1.0 Należy unikać pułapek, np.: X=2/3 wynik: 0.0 (bo dzielenie liczb całkowitych jest dzieleniem całkowitym)

  12. Kompilacja programu przy użyciu g77 (Gnu Fortran) f77 [opcje] [-o plik_wynikowy] pliki_wejściowe g77 [opcje] [-o plik_wynikowy] pliki_wejściowe Pliki wejściowe: Pliki źródłowe w Fortranie 77 (rozszerzenie .f lub .for) Pliki źródłowe w Fortranie 77 zawierające metakomendy dla kompilatora (rozszerzenie .F) Pliki w języku c lub C++ (rozszerzenia .c lub .C) Pliki w języku asemblera (rozszerzenie .s) Pliki zawierające moduły relokowalne w kodzie maszynowym Pliki wejściowe wymienia się jednym ciągiem po odstępach.

  13. Typy plików wynikowych: Bez opcji: moduł wykonywalny (z atrybutem x); jeżeli nie podamy jego nazwy po –o nazywa się a.out Przykład: f77 –o hello hello.f Z opcją –c: moduł relokowalny; domyślnie nazywa się plik.o jeżeli plik źródłowy nazywał się plik.f Przykład: f77 –c hello.f Z opcją –s: tłumaczenie na język asemblera; domyślnie nazywa się plik.s jeżeli plik źródłowy nazywał się plik.f Przykład: f77 –S hello.f

  14. Użyteczne opcje: -g wstawiana jest informacja ułatwiająca odrobaczenie programu -fbounds-check sprawdzanie indeksów tablic -c tylko kompilacja i asemblowanie -s tylko kompilacja do języka asemblera -E tylko implementacja dyrektyw dla preprocesora --help wydruk krótkiego samouczka

More Related