Константы и переменные встроенных типов

Константу нельзя изменить в процессе исполнения программы, она может быть записана явно как 3.14 или иметь имя, например Pi. Переменная – это именованный объект, значение которого можно изменить.

Имеется пять встроенных типов:

- числовые:целые integer,вещественные real, комплексные complex;

- логические logical;

- строковые (символьные) character.

 

Таблица 16. Примеры оформления констант разных типов

Тип Примеры явных констант Разновидности и диапазоны порядков Пояснения
integer –2147 integer*1 *2 *4 ±1010 Точное значение
Real -1.76 1e7 1.2e7 1.3D+123 1.2Q-1234 real* 4 10±38 7 цифр real* 8 10±308 17 цифр real*1610± 4932 33 цифры Неточное представление, неточное вычисление
Complex (-1.76 , 1) Пара вещественных чисел Неточно
Logical .true. .false. Logical*1 *2 *4 1 бит
character ‘х=’ “O’K” character*1 до *32767 символов Кодировка символов ANSI

Каждому типу соответствует своя область допустимых значений, особый способ хранения в памяти ПК, объём памяти, набор операций ПК.

Атрибут именованной константы parameter, тип и значение входят в ее описание: real,parameter:: Pi =3.141593.

Выражения

Выражение – осмысленная математическая формула, записанная по правилам языка программирования. В отличие от математики формула записывается в виде строк текста; объекты именуются, значки функций заменены именами функций, которые указаны в описании языка и доступны в помощи. В отличие от других языков программирования, выражение может включать не только переменные, но и массивы. В выражение могут входить:

- константа, переменная, элемент массива;

- массив, секция массива;

- вызов функции с аргументами в скобках, например, cos(х-0.2) ;

- операция с одним операндом, например, –х ;

- операция с несколькими операндами, например, x+y+z ;

- парные круглые скобки ( ), квадратных и фигурных скобок нет.

В зависимости от типов объектов, входящих в выражения, различают:

- арифметические (числовые) выраженияс числовым результатомвыполняются операции над числамицелого, вещественного и комплексного типа, выражения могут быть смешанными;

- логические выражения с логическим результатом: логические операции выполняются над логическими величинами, операции отношения – над числами или строками;

- строковые выражения со строковым результатом выполняются строковые функции и операция сцепления строк, обозначаемая s//p

Арифметическое выражение

Операнды арифметического (числового) выражения могут быть целого, вещественного или комплексного типа.

Таблица 17. В числовом выражении допускаются операции

Операция Порядок Пример Примечания
Вычисление функции sin(X) одноместная (унарная) операция
Возведение в степень X**2 несколько подряд – справа налево
Смена знака –X одноместная (унарная) операция
Деление, умножение X/Y, X*Y несколько подряд – слева направо
Сложение, вычитание X+Y, X-Y несколько подряд – слева направо

 

Знаки двуместных операций - возведение в степень, умножение, деление, сложение и вычитание записываются между операндами. В отличие от математики, знак операции умножения опускать нельзя. Численное значение результата зависит от порядка выполнения операций. Если надо, порядок действий изменяют скобки; разрешаются только круглые. В выражении без скобок операции выполняются в порядке старшинства.

В компьютере имеются два комплекта арифметических операций – для целых и для вещественных чисел. Действия над комплексными числами выполняются программно по правилам, известным из математики с помощью команд для вещественных чисел. Фортран автоматизирует выбор комплекта операций, руководствуясь типом операндов. Если операнды однотипны, то этого же типа будет операция и результат. Для операций с операндами разных типов результат всегда в наиболее широком классе из числа операндов. Множества чисел расширяются так:

– целые – *1 *2 *4 байта;

– шире – вещественные - *4 *8 *16 байтов;

– шире – комплексные - дважды по *4 *8 *16 байтов.

Обратите внимание, что выбор из двух разных операций деления производится по общему правилу:

- при делении вещественных чисел в результате – вещественное число, например, 2./3.=0.666667;

- при делении целых чисел в результате – целое число, равное целой части частного, например, 8/3=2 или 2/3=0;

- при делении разнотипных операндов в результате – вещественное число, например, 2./3=>2./3.=0.6666667 или 2/3.=>2./3.=0.666667 .

Операция возведения в степень an и ax вычисляется программно:

- приinteger nоперацияa**nвыполняетсякак n-кратное умножение a*a*a* ..*a, поэтому a**n=0 при n<0 и integer a, например, 3**(-2)=1/3**2=1/9=0;

- при real x операция a**x выполняется как , следовательно, должно быть a > 0 ;

- в общем случае для комплексных a,b Здесь a=r+θi представлено в экспоненциальной форме, Ln – комплексный логарифм.

Все переменные, используемые в выражении, должны быть определены к моменту его вычисления.

При вычислении по формулам следует анализировать ОДЗ, чтобы избегать числовых операций с неопределенным результатом:

- деление на нуль x/0;

- деление нуля на нуль 0/0, 0.0/0.0, 0/0.0, 0.0/0;

- возведение нулевого основания в нулевую или отрицательную степень 0**0 0**(-2);

- недопустимо возведение отрицательного основания в вещественную степень, как в (-8)**(1./3), но -(8**(1./3)) для нечетного 3.

Строковое выражение

Операнды строкового выражения должны быть строкового типа. В строковом выражении допускается только одна операция – сцепление строк (конкатенация). Сцепление обозначается «//», например s=s1//s2, символы в строке s нумеруются слева направо как 1,2,…len(s),
len (s1//s2)=len(s1)+len(s2). Подстрока - несколько символов строки подряд. Пример: результат вычисления ab = ab(14:26)//ab(1:13) – строка, в которой меняются местами первая и вторая половины алфавита:

Character*26 :: ab=’abcdefghijklmnopqrstuvwxyz’

Строка после: ab=’nopqrstuvwxyzabcdefghijklm

Обратите внимание на то, что оператор s1=s1//s2 с повторением s1 слева и справа от “=” имеет смысл только с подстроками. Нужно, чтобы суммарная длина не превышала len(s1). В Фортране строки имеют постоянную длину, а именно ту, что заявлена в её описании.В то же время оператор s1=trim(s1)//s2 вполне осмысленный, если в s1 хвостовых пробелов, не менее чем символов в s2. Функция trim (s1) обрезает хвостовые пробелы.

Логическое выражение

Логическое выражение имеет значение «истина» или «ложь», состоя из:

- логических констант и переменных;

- пяти логических операций с операндами логического типа;

- шести отношений, которые сравнивают либо два числовых выражения, либо два символьных выражения.

Результат вычисления отношения – либо .true. – «истина», либо .false.– «ложь».

Таблица 18. В Фортране шесть операций отношения

Отношения Фортран 90, сейчас пишут так В стиле Фортран 77, устаревающее
меньше чем A<b a<b a .lt. b
меньше или равно Ab a<=b a .le. b
равно A=b k==m a .eq. b
не равно Ab k/=m a .ne. b
больше или равно Ab a>=b a .ge. b
больше чем a>b a>b a .gt. b

Отношения вычисляются после вычисления их операндов. Например, при A=2, B=0 для отношения A+3 >B порядок действий такой: сначала вычисляется А+3 и получается 5; затем 5 сравнивается с В, которое равно0; результат вычисления выражения 5>0 – «истина».

Логические операции выполняются после вычисления отношений

Таблица 19.

В Фортране пять логических операций

Операция Обозначение Старшинство Пример
Отрицание НЕ .not. .not.a
Конъюнкция И .and. a.and.b
Дизъюнкция ИЛИ .or. a.or.b
Эквивалентность .eqv. a.eqv.b
Неэквивалентность .neqv. a.neqv.b

Операция .not.a является, как и (–x), одноместной (унарной) и пишется перед операндом, остальные знаки логических операций записываются между операндами. Две логические операции могут следовать в выражении непосредственно друг за другом, только если второй операцией является операция отрицания. Например, допустимо a.and. .not.b.

Операция .not. – одноместная и дает результат «истина», если значение операнда «ложь», и результат «ложь», если значение операнда «истина».

Введем обозначения: T – «истина» и F – «ложь».

Таблица 20.

Таблицы истинности пяти логических операций выглядят как

.AND. F T   .OR. F T
F F F   F F T
T F T   T T T

 

.EQV. F T   .NEQV. F T
F T F   F F T
T F T   T T F
       
.NOT. F T  
T F  
                   

Строки и столбцы таблиц истинности помечены значениям операндов, а на пересечении строки и столбца записан результат двухместной операции

Пример логического выражения: a>3 .and.a<5. Выражение истинно, когда оба отношения истинны, то есть аÎ(3,5).

Сложные выражения вычисляются в следующем порядке: числовые операции или строковые операции; операции отношения; логические операции.








Дата добавления: 2016-02-13; просмотров: 713;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.