Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 4.doc
Скачиваний:
2
Добавлен:
04.11.2018
Размер:
169.47 Кб
Скачать

4.2 Описание массива

Все массивы в программе должны быть объявлены, и размерность определяется в объявлении (описании). При описании массива необходимо указать его тип, размерность и диапазон изменения индексов. Размерность массива ⎯ это количество измерений. Бывают одномерные (векторы), двухмерные (матрицы или таблицы) и многомерные массивы. Обычно массивы описываю в операторах описания переменных INTEGER, REAL, CHARACTER, LOGICAL и т.д. Описание массива имеет вид:

name(d1,d2,...,dn),

где name - имя массива; d1,d2,...,dn – диапазон изменения индексов; n – размерность массива. При этом di имеют вид (n1:n2) (n1 – нижняя, а n2 – верхняя граница изменения индексов). Размерность массива n не может превышать семи. В случае, если n1 равно 1, т.е. нумерация элементов массива начинается с 1, применяется упрощенная форма задания di – (n), где n количество переменных в массиве.

Примеры.

1. Описание массива на рис. 4.1 можно представить следующим образом:

real x(9)

или

real, dimension (9):: х

Это означает, что создан два массив с именем Х, элементы которого вещественного типа и нумеруются от 1 до 9.

2. Real a(0:100),b(3,3),c(-2:4)

Описываются три действительных массива a, b и c.

В массиве a число элементов 101: a0, a1, ..., a100. Массив b является матрицей состоящей из 9 элементов b1,1, b2,1, b3,1, b1,2, b2,2, b3,2, b1,3, b2,3, b3,3. В памяти двухмерные массивы хранятся по столбцам. Массив c состоит из семи элементов c-2, c-1, c0, c1, c2, c3, c4.

Обращение к элементу массива производится по имени массива, за которым следует в круглых скобках индексы разделенными запятыми.

Например

X(1)=5

Следую различать индекс элемента массива и значение элемента массива. В примере индекс элемента 1, а значение элемента 5.

K=4

X(k)=7 ! четвертому элементу массива присвоено значение 7

Массив может иметь нулевой размер, если при объявлении первый индекс превосходит последний.

При описании размер массива рекомендуется задавать в виде констант, что в дальнейшем даст возможность использовать циклы для обработки элементов.

Integer, parameter :: n=9

Real, dimension (1:n):: x,y

4.3 Одномерные массивы

Примером одномерного массива может служить шеренга солдат, которые упорядочены по росту, кроме этого, у каждого солдата в шеренге есть свой порядковый номер в расчете. В математике примером одномерного массива может служить вектор Х={x1, x2,...,xn}. Здесь Х – имя массива, xі – компоненты (элементы) массива, і=1, 2, …, п – индексы или номера элементов массива. Значение индексного множества одномерного массива равно 1.

Конструктор массива служит для его инициализации, то есть присваиванию значений в момент описания:

INTEGER:: a(7)=(/1,2,3,4,5,6,7/)

Схематически целочисленный массив А выглядит следующим образом (рис.4.2):

Рис. 4.2. Расположение элементов массива А в памяти ЭВМ

Так как индексы массива следуют по порядку, то удобно использовать циклы при работе с ними, особенно цикл с параметром. Где параметр цикла можно использовать в качестве обозначения индекса элемента массива.

Ввод/вывод одномерного массива

Ввод/вывод элементов одномерного массива можно осуществлять следующими способами (см. табл. 4.1):

Таблица 4.1 Способы ввода/вывода элементов одномерного массива

Ввод/вывод массива

(фрагмент программы)

Описание способа ввода/вывода массива

read *,a 

ввод всех элементов массива с клавиатуры (согласно его описанию)

read*,(a(i),i=1,n) 

ввод элементов массива с клавиатуры с номерами 1…n с неявным использованием циклического списка

do i=1,n

read*,a(i)

end do

ввод элементов массива с клавиатуры с использованием циклической структуры

do i=1,n

а(i)=5*i**2-i

end do

ввод элементов массива с использованием циклической структуры по расчетной формуле

a(1)=2

a(4)=6

a(2)=-3

ввод элементов массива с помощью оператора присваивания (наименее эффективны способ)

print *,a 

вывод всех элементов массива (согласно его описанию)

write(*,*),(a(i),i=1,n) 

вывод элементов массива с номерами 1…n с неявным использованием циклического списка

write(*,’(100(f5.2))’), (a(i),i=1,n)

форматный вывод элементов массива с номерами 1…n с неявным использованием циклического списка. n<=100

  1. do i=1,n

print*,a(i)

end do

вывод значений элементов массива с номерами 1…n

  1. do i=1,n !.

print ’(a,i2,a,f5.2)’,’a(’,I,’)=’,a(i)

end do

форматный вывод элементов с указанием номера выводимого элемента и его значения

Полный массив – имя переменной (или именованная константы), которая является массивом. Появление полного массива в выполняемом операторе специфицирует выполнение операции со всеми элементами массива.

Например:

Integer a(5)

A=7 ! всем элементам массива присваивается 7

A=a-2 ! всем элементам массива присваивается 5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]