- •Лекция-4 основы программирования на языке фортран
- •§ 1.14. Форматный ввод-вывод данных
- •1.14.1. Преобразование данных. Оператор format.
- •1.14.2. Дескрипторы данных.
- •1.14.3. Дескрипторы управления.
- •1.14.4. О еще одном способе задания спецификации формата.
- •§ 1.15. Массивы
- •1.15.1. Понятие о массивах.
- •1.15.2. Характеристики массивов.
- •1.15.3. Способы объявления массивов.
- •1.15.4. Размещение элементов массива в памяти компьютера.
- •1.15.5. Способы инициализации массивов.
- •1.15.6. Одновременное объявление объектов разной формы.
- •1.15.7. Ввод-вывод массивов.
- •1.15.8. Некоторые примеры простейших программ с использованием массивов.
1.15.3. Способы объявления массивов.
Объявление статических массивов выполняется при объявлении типа, либо оператором DIMENSION. Пример способов объявления статических одномерных массивов вещественного типа – a, e и с из 10 элементов, b, f и d из 20 элементов.
integer, parameter :: n=20 real a(10) ! Используется оператор объявления типа real b(n) ! Тоже с заданием границ в виде константного выражения real, dimension(10) :: c ! Используется атрибут DIMENSION real, dimension(n) :: d ! Рекомендуемая форма real e dimension(10) :: e ! Используется оператор DIMENSION real f dimension(n) :: f ! Используется оператор DIMENSION |
1.15.4. Размещение элементов массива в памяти компьютера.
Пусть имеем описание одномерного массива a из 11 элементов и двумерного массива с из 8 элементов:
real a(11) ! Статический одномерный массив из 11 элементов real c(2,4) ! Статический двумерный массив из 8 элементов |
Элементы массива a с именами a(1), a(2), a(3), …, a(11) занимают в памяти компьютера непрерывный отрезок памяти.
Запись a(i) отсылает нас к i-му элементу массива a. Переменную i называют также индексной переменной или просто индексом.
|
|
|
|
|
|
|
|
|
|
|
a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10) a(11)
«ячейка» памяти
Рис. 1.15.1. Расположение элементов одномерного массива в памяти компьютера.
|
|
j |
|||
|
|
1 |
2 |
3 |
4 |
i |
1 |
с(1,1) |
С(1,2) |
с(1,3) |
с(1,4) |
2 |
с(2,1) |
С(2,2) |
с(2,3) |
с(2,4) |
Рис. 1.15.2. Представление двумерного массива в виде таблицы.
1. |
-1. |
0.4 |
-0.4 |
2. |
-2. |
0. |
0. |
с(1,1) с(2,1) с(1,2) с(2,2) с(1,3) с(2,3) с(1,4) с(2,4)
«ячейка» памяти
Рис. 1.15.3. Расположение элементов двумерного массива в памяти компьютера.
Память компьютера является одномерной. В этой связи элементы двумерного массива с расположены линейно так, как это показано на рис. 1.15.3.
Запись типа с(i,j) адресует к j-му элементу в i-й строке, где i и j – индексы массива с.
В Фортране элементы двумерного массива располагаются в памяти компьютера по столбцам. В более общем случае при размещении многомерного массива в памяти компьютера быстрее всего изменяется самый левый индекс массива, затем следующий за ним индекс и так далее. Это следует учитывать при вводе-выводе и инициализации многомерного массива.