Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Тема: Программирование
Специальности: Системный архитектор, Тестировщик
Теги:
Лекция 2:
Типы данных
Аннотация: Вторая лекция знакомит со стандартными типами данных: integer, real, complex, logical, character. Рассказывается о правильной записи математических и логических выражений, погрешности вычислений. Приводится описание встроенных математических процедур, процедур преобразования типов и процедур обработки строк. Для каждого стандартного типа приводятся элементы форматируемого ввода/вывода. Вводится понятие ссылок, адресатов и целочисленных указателей. Рассматривается оператор associate.
Ключевые слова: производные, константы, значение, инициализация, присваивание, деление, запись, переполнение, равенство, функция, приведение типов, ПО, целый, исключение, преобразование типов, help, умножение, конъюнкция, сложение, дизъюнкция, отрицание, инверсия, информация, управляющие, возврат каретки, конкатенация, нумерация, library, вывод, infinity, Write, ERR, метка, read, integer, real, ссылка, переменная, указатель, адрес, адрес переменной, прямой
Вы можете скачать презентацию к данной лекции здесь.
Стандартные
type (имя типа)
Переменные и константы
Значения переменных могут изменяться, константы содержат всегда одно и то же значение.
Задание имен
- Латинские буквы A..Z, a..z (маленькие и большие не различаются);
- Цифры и знак подчеркивания со 2-й позиции;
- Длина имени не более 63 символа.
Используйте осмысленные имена!
Целочисленный тип
тип | длина(байт) | диапазон |
---|---|---|
integer(1) | 1 | -128 .. 127 |
integer(2) | 2 | -32768 .. 32767 |
integer(4) | 3 | |
integer(8) | 8 |
Номера, счетчики, переменные циклов, границы и индексы массивов.
! -----------------------------переменные integer(1) a5 integer(4) nomer integer index integer*2 b2 ! -----------------------------константы integer, parameter :: T0 = 500 integer(2), parameter :: fact = 10100 integer(8), parameter :: QW = 3**20 index = 1000 ! переменным присвоили значения a5 = B'1000101 ! двоичное представление b2 = O'347' ! восьмеричное c7 = Z'AAB' ! шестнадцатеричное
Инициализация переменных
program unknown integer koef write(*,*) koef end
Инициализация переменной – объявление + присваивание значения. (Какой результат будет выведен на экран?)
integer :: a = 10 ! инициализация переменной integer :: s = 2**8+3**7+4**6 ! арифметические операции
Всегда ли есть соответствие?
Вещественный тип
тип | длина(байт) | точность (знаков) | диапазон |
---|---|---|---|
real(4) | 4 | 7 | |
real(8) или double precision | 8 | 15 | |
real(16) | 16 | 33 |
Переменные используемые для математических вычислений.
! ---------------------- переменные real(4) :: p = 3.14159 ! 3.14159_4 real(4) :: s = 0.00001 ! .00001 или 1E-5 real(4) :: A = 6.79E+15 real(4) :: B = -9.0E-10 real(8) :: q = 123456789D+5 double precision :: f = +2.7843D0 real(16) :: p1 = 123456789Q4000 real(16) :: p2 = -1.23Q-400 ! ---------------------- константа real, parameter :: pressure = 1e+10
Комплексный тип
! ---------------------- переменные complex(4) c1 complex :: i1 = (0.0, 1.0) ! мнимая единица ! ---------------------- константа complex, parameter :: z = (2.0, 3.0) ! 2+3i
Переменные для обработки комплексных данных (корни уравнений, преобразования Фурье).
Арифметические операции
Целочисленная арифметика
Деление целого числа на целое - результат целое.
S = 1/3 + 1/3 + 1/3 ! S = 0.0 P = 16 * * (1/4) ! P = 1.0
Запись целого числа в вещественной форме.
S = 1.0/3.0 + 1./3. + 1./3 ! S = 1.0 P = 16 * * (1.0/4) ! P = 2.0
Деление целого числа на нуль – ошибка выполнения.
m = 2/3 k = n/m ! деление на нуль
integer(1) :: bt = 127 bt = bt+1 ! bt = -128