Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
45
Добавлен:
14.04.2015
Размер:
543.74 Кб
Скачать

Integer:: I

real, dimension(1:Len) :: array

open(1, file=’out.txt’)

write(1,40) (array(i),i=Len/2+1,Len)! длина списка вывода равна 128

40 format(10F6.2)

Список вывода длиной 128 элементов выводится в 13 строк по 10 элементов в строке (последняя строка неполная, в ней 8 элементов)

Примеры задач.

Пример 3. Создать и вывести в два столбца целочисленный массив, значения элементов которого – квадраты чисел натурального ряда от 1 до 10

program make_array

integer, parameter :: count = 10 ! количество элементов

integer, dimension(1:count) :: Q ! целочисленный массив

integer :: i ! индексная переменная

do i=1, count

Q(i) = i**2

enddo

open(1, file=’out.txt’)

write(1,40) Q

40 format(2I6)

Список вывода длиной 10 элементов выводится в 5 строк по 2 элемента в строке.

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

  1. Количество студентов вводится из первой строки исходного файла, а оценки студентов, представленные целыми числами, – из остальных строк. Входные данные в файле разделяются запятыми, пробелами или переводом строки. Исходные данные, подготовленные в файле 'in.txt', имеют вид:

10

20 50 44 37 17 14 48 39 19 30

  1. Результаты выполнения программы с этими исходными данными должны иметь вид:

Оценки 10 студентов

20 50 44 37 17

14 48 39 19 30

Средняя оценка: 31.8

Количество студентов с оценкой выше средней: 5

Программа

Многомерные массивы

Массив в Фортране может иметь до семи измерений. Число измерений называется размерностьюилирангоммассива; количество элементов в измерении называетсяпротяженностьюмассива в данном измерении.

При выделении памяти для многомерных массивов в атрибуте dimensionописания массива следует указать границы индексов по каждому измерению массива:

тип,dimension(списокграниц)::список имен массивов

Длина списка границ массива равна рангу (размерности) массива. Границы массива– константные целые выражения, задающие нижнюю и верхнюю границы индекса по соответствующему измерению. Размер массива равенпроизведениюего протяженностей по всем измерениям.

Из описания массива array

integer, dimension(0:6,0:12) :: array

следует, что это целочисленный массив, ранг которого равен 2. Протяженности двух измерений массива равны соответственно 7 и 13, размер массива равен 7*13 = 91.

Каждый элемент массива может иметь до семи индексов, характеризующих его положение в массиве, например:

A(3, 4, I, J), B(1, 2, 3, 4, 5, 6, 7), C(I+1).

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

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

Массив, описанный оператором

integer, dimension(1:3,1:4) :: A

можно изобразить в виде матрицы

Подчеркнутый элемент A(2,3)находится в матрице на пересечении строки с номеромi=2и столбца с номеромj=3.

Соседние файлы в папке Фортран_Лекции