пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


15. Типы данных: целочисленный, вещественный, комплексный, логический, строковый. Операции над переменными этих типов. Константы. Примеры.

Fortran допускает следующие типы данных: 1. Целый (тип INTEGER). 2. Вещественный (тип REAL). 3. Вещественный удвоенной точности(тип DOUBLE PRECISION). 4. Комплексный (тип COMPLEX). 5. Логический (тип LOGICAL). 6. Символьный. 7. Шестнадцатеричный.

  •  целые                                       размер диапазон
    byte=integer*1                                           1 -128-+127
    (integer*2)                                     2 -32768-+32767
    (integer*4=integer)                         4                                                      -2147483648-+2147483647

если переменная в начале программы была не объявлена и имя переменной начинается с букв i, j, k, l, m, n, то переменная считается целого типа. Для отключения такого правила следует пользоваться оператором implicit none:                                                                                    program attention
implicit none
il=20
jl=30
End будет вызвана ошибка – переменные не объявлены!

один пример:
integer(4) S integer(2) :: k=10000
integer :: A=2#1000101, B=8#135, C=#FFEE55 ! или C=16#FFEE55
Здесь примерены примеры присваивания целочисленным переменным двоичного, восьмеричного и шестнадцатеричного представления.

Результат операции над двумя целыми числами всегда целое число

Выражение Математика Fortran
1/2 0.5 0
7/3 2.333333 2
2**(-2) 0.25 0
64**(l/2) 8 1
 Результат операции над двумя вещественными, над целым и вещественным числами всегда вещественный.
 Выражение Математика Fortran
1.0/2                                                                                 0.5 0.5
 7/3.0                                                                                2.333333 2.333333
2.0**(-2)                                                               0.25 0.25
64**(1.0/2)                                                                       8 8.0

Вещественный типы Байты Диапазон представления Точность, знаков
real=real(4)                           4                       -3.4*10^+38…-1.2*10^-38 7
                                                                      +1.2*10^-38…+3.4*10^+38 7
real(8)                                               8                       -1.8*10^+308…-2.2*10^-308 15
double precision                                            +2.2*10^-308…1.8*10^+308 15
x=3.5 y=3.4E+10 P=-1.78D+45 двойной точности 1.78·10^45

real а
double precision :: koef=1.45D0

Операция                 Название                                Уровень Порядок выполнения Пример
**                           Возведение в степень                       Первый справа налево a**
*                             Умножение                            Второй слева направо 3.0*b
/                              Деление                                 Второй слева направо a/b
+                             Сложение                               Третий слева направо a+b
 -                            Вычитание                             Третий слева направо a-b
 -                            Смена знака                           Третий cлева направо -5*x
Прочие операции над вещественными числами:

Имя                          Описание                                          Tun аргумента Tun результата
abs(x)                                 Модуль числа                                                real real
Угол в радианах
cos(x)                                  Косинус                                            real real
sin(x)                                  Синус                                                           real real
tan(x)                                  Тангенс                                             real real
cotan(x)                   Котангенс                                         real real
acos(x)                    Арккосинус                                      real real
asin(x)                                Арксинус                                          real real
atan(x)                               Арктангенс                                       real real
acotan(x)                Арккотангенс                                               real real
Угол в градусах
cosd(x)                                Косинус                                            real real
sind(x)                                Синус                                                           real real
tand(x)                               Тангенс                                              real real
cotand(x)                Котангенс                                          real real

sqrt(x)                                  Извлечение корня                             real real
exp(x)                                Извлечение экспоненты                    real real
log(x)                                 Натуральный логарифм                   real real
log10(x)                 Десятичиый логарифм                      real real
sinh(x)                               Гиперб. синус                                               real real
cosh(x)                               Гиперб. косинус                                real real
tanh(x)                               Гиперб. тангенс                                real real
cotanh(x)                Гиперб. котангенс                             real real
mod(a,b)                Вычисление остатка                         integer integer
max(х1,...,xn)                    Вычисление максимального            integer integer
                                                                  значения                                real real
min(x1,...,xn)                     Вычисление минимального              integer integer
                                                      значения                                real real
floor(x)                              Наибольшее целое,меньшее                        real integer
                                               или равное вещественному
ceiling(x)                Наименьшее целое, большее                       real integer
                                          или равное вещественному x

3. Комплексный тип данных:

Существует две разновидности комплексного типа:
complex или complex (4)
complex (8) или double complex
Пример. Объявление переменных комплексного типа,
complex :: i=(0.0,1.0) ! мнимая единица
complex :: z=(2.0,3.0) ! число 2+3i
Над комплексными числами доступны все рассмотренные выше арифметические операции и стандартные функции. Причем для комплексных данных имя функции должно начинаться с буквы "с".
Следует помнить, что при работе с комплексными и вещественными числами результат будет комплексным

4.Логический тип данных

2 значения истина ложь . переменные которые будут хранить результаты логическиз выражений должны быть объявлены при помощи оператора описания logical . существует три разновидности лог переменных
LOGICAL(1)
Logical(2)
Logical или Logical (4)
Операция               название                                 оперциия название
>, or .gt.                  больше                                   >=, or .ge. больше или равно
<,or .lt.                               Меньше                                  <=,or .le. меньше или равно
==,or .eq.                равно                                      \=,or .ne. не равно
Логические операции
(.and.–и)(.or.–или)(.xor.– или или)(.not.–не)(.eqv.-эквиваленстность)(.neqv.-не эквивалентность)

5.Символьный тип:

character(20) str ,str с длиной = 20. Если character ch , ch хранит один символ
character(30) :: str = "abcdef" !str='АБВГДЕ+1234***'
character(30) 'Igor''s' - это строка Igor's длиной 6 символов
При работе с символьными строками можно обращаться к части строки -подстроке, указывая номер первого i1 и последнего i2 символа следующим образом: str(i1:i2).
character(20) :: string='C:\PROGRAMS\Fortran'  write(* , *) string(1:3) на экран выведется строка С:\
Для данных символьного типа определена только одна операция –сцепление строк, обозначаемая //.
name = "Sergey"; surname="Ivanov"
str=name//sumame будет значение "Sergey Ivanov".

Некоторые полезные функции для работы со строками:
Функция LEN(string) - длина строки.
Функция LEN_TRIM(string)-длина строки без хвостовых пробелов.
Функция INDEX(str, substr) номер позиции, с которой начинается первое вхождение строки substr в строку str. Если вхождение не найдено, то функция возвращает 0.
Функция IACHAR(ch) код символа из ASCII-таблицы.
Функция ICHAR(ch) код символа из таблицы символов, поддерживаемой операционной системой. Ha практике операционная система может поддерживать отличную от ASCII таблицу символов. B этом случае только первые 128 символов будут совпадать с ASClI-последовательностью.
Функция ACHAR(ic) символ по коду ic из ASClI- таблицы.

Константы Для объявления константы после оператора описания используется атрибут parameter. integer, parameter k=10 объявляет константу с именем k, которая будет хранить целое значение 10.


10.06.2015; 08:27
хиты: 1058
рейтинг:0
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь