72649

Понятие массива

Доклад

Информатика, кибернетика и программирование

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

Русский

2014-11-26

18.25 KB

2 чел.

 Понятие массива

Массивом называется совокупность переменных одного типа, обозначаемая именем с индексами в круглых скобках. Например, вектор с компонентами u1, u2, ..., un, можно представитьодномерным массивом

U(I), 1≤I≤N,

а матрицу с компонентами Ai,j можно представить двумерным массивом

A(I,J), i≤ I ≤ N, 1≤ J ≤ M;

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

Оператор описания массива DIMENSION

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

Примеры:

DIMENSION А(10,30),BK(500),IU(40)

Здесь первый массив — двумерный, а второй и третий — одномерные. Первый индекс в массиве А изменяется от 1 до 10, второй от 1 до 30. Во втором и третьем массивах индексы из меняются соответственно от 1 до 500 и от 1 до 40.

 Совмещение описания массива с описанием типа переменных

Описание размерности массива может быть совмещено с описанием типа переменных. Поэтому запись

REAL KLM, XF

INTEGER FR, SS

DIMENSION KLM(15,15),FR(100),XF(10),SS(5,5)

эквивалентна записи

INTEGER FR(100), SS(5,5)

REAL KLM(15,15), XF(10)

Описание массива в программе может быть произведено только один раз.

Оператор PARAMETER

При описании массивов можно предварительно присвоить константам символические имена. Для этого используется оператор PARAMETER вида

PARAMETER (<имя>=<константа>,<имя>=<константа>,...)

Здесь <имя> — символическое имя, образованное по правилам Фортрана. Тогда, например, запись

DIMENSION A1(100,200), A2(100,200), B(200,100)

эквивалентна записи

PARAMETER (N1=100, N2=200)

DIMENSION A1(N1,N2)A2(N1,N2),B(N2,N1)

Такая запись позволяет упростить изменение размерности при модификации программы.

1.6. Обращение к элементу массива

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

V=A(I,J)+B(3.2*L+7)

В этом случае целые переменные I,J,L должны быть заданы в предыдущей части программы.

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

При вводе и выводе массивов используются два основные способа:

• ввод-вывод массива по имени;

• с помощью цикла.

Первый способ (пример)

DIMENSION A(10), B(3,4)

READ(*,*) A,B

В этом случае должны быть последовательно введены 10 чисел которые соответствуют элементам массива А, а затем введены 12 чисел, которые соответствуют элементам массива В, согласно их последовательности расположения в памяти.

Второй способ (пример)

DIMENSION А(10), В(3,4)

READ(*,*) N,L,M,(A(I),I=1,N), ((B(I,J),J=1,L),I=1,M)

В этом случае числа N,L,M подчиняются ограничениям N≤10, L≤4, М≤3, поскольку в противном случае мы выйдем за границы расположения элементов массивов. Этот способ удобнее, в программе используется меньшее количество элементов массива, нежели то, которое задано в операторах размерности. В этом примере сначала вводятся три целых числа N,L,M, и затем последовательно N элементов массива А, а затем L*M элементе массива B в последовательности

В(1,1),В(1,2),...В(2,1),В(2.2),..

В этом случае последовательность ввода элементов В не совпадает с порядком их хранения в памяти. Если последний оператор записать как

READ(*,*)N,L,M,(A(I),I=1,N),((B(I,J),I-1,M),J=1,L)

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

Вывод массива отличается от их ввода только заменой оператора READ на оператор WRITE.

Использование массивов

Рассмотрим следующую задачу.

Ввести с клавиатуры N≤100 чисел и найти их сумму/произведение. Соответствующая программа может иметь вид

Сумма

Произведение

DIMENSION А(100)

READ (*,*)N,(A(I),I =1,N)

S=0.0

DO 5 I=1,N

S=S+A(I)

5 CONTINUE

WRITE (*,*)S

STOP

END

DIMENSION А(100)

READ (*,*)N,(A(I),I =1,N)

P=1.0

DO 5 I=1,N

P=P*A(I)

5 CONTINUE

WRITE (*,*)P

STOP

END

Характеристики массивов

Массив характеризуется числом измерений, которых может быть не более семи. Число измерений массива называется его рангом. Массив ранга 1 называют вектором, а ранга 2 - матрицей. Объект ранга 0 является скаляром.

Число элементов массива называется его размером. Также массив характеризуется формой, которая определяется его рангом и протяженностью (экстентом) массива вдоль каждого измерения. Например, оператор

real, dimension (2, 3, 10) :: b

объявляет массив b ранга 3, размера 2*3*10 = 60 и формы (2, 3, 10). Протяженность массива по первому измерению равна двум, по второму - трем, а по третьему - десяти.

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

real, dimension(4:5, -1:1, 0:9) :: с ! Форма массива (2, 3, 10)

Ранг, форма и размер массивов b и с совпадают. Такие массивы называются со-

гласованными.

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

Способы объявления массивов

Помимо использованного способа массив можно объявить и без применения атрибута DIMENSION, например все последующие объявления дают двумерный целочисленный массив:

integer, parameter :: m = 2, n = 4

integer a(m, n) ! или a(1:m, 1:n)

или

integer b

dimension b(m, n) ! Оператор DIMENSION

или

integer, dimension(m, n) :: с ! Атрибут DIMENSION

Существуют разные способы объявления и размещаемых массивов:

integer, allocatable :: а(:, :)

или

integer, dimension(:, :) :: b

allocatable b ! Оператор ALLOCATABLE

или

integer с

dimension c(:, :) ! Оператор DIMENSION

alocatable с

или

integer, alocatable, dimension (:, :):: d

Конструктор массива

В Фортране можно, используя конструктор массива, задать одномерный массив. Конструктор массива имеет вид:

(/ список-значений /)

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

Пример массива - буквальной константы: (/1,2, 3, 4, 5 /). Такой массив может быть использован в выражении, например:

integer a(5)

а = 2 * (/ 1, 2, 3, 4, 5 /)

write(*, *) a ! 2 4 6 8 10

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

Встроенный DO-цикл имеет вид:

(выражение, dovar = start, stop [, inc])

dovar - целочисленная скалярная переменная (параметр цикла). start, stop, inc -целочисленные константные выражения, определяющие диапазон и шаг изменения dovar. Если inc отсутствует, то шаг устанавливается равным единице.

Встроенный DO-цикл добавляет в список значений

MAX(INT(stop - start + inc)/inc), 0)

элементов. Выражение может содержать dovar. Возможна организация вложенных встроенных DO-циклов.

Если в списке появляется многомерный массив, то его значения берутся в порядке их размещения в памяти ЭВМ.


 

А также другие работы, которые могут Вас заинтересовать

39043. Интеллектуальные информационные системы ИИС. Экспертные системы 146 KB
  Основные задачи ИИ Представление знаний и разработка систем основанных на знаниях; Разработка естественно-языковых интерфейсов; Разработка систем машинного перевода; Распознавание образов идентификация неизвестного объекта по его признакам; Создание обучающихся и самообучающихся систем; Программное обеспечение интеллектуальных систем развитие существующих...
39044. Информационные системы в экономике и бизнесе 93 KB
  ; Не удавалось построить оптимальную модель планирования при увеличении количества комплектующих до тысяч единиц нельзя чтобы изза отсутствия одной гайки простаивал конвейер по сборке авиадвигателя каждая из которых характеризуется своей динамикой поведения запасов. Усложнение методов планирования запасов привело к появлению более развитого стандарта планирования потребностей в материалах Mteril Requirement Plnning MRP. Недостаток методики MRP: Отсутствие контроля выполнения плана закупок и механизма корректировки этого плана в...
39045. Понятие информации. Способы измерения и оценки информации 196 KB
  Понятие информации Понятие информации Несмотря на то что информация является базовым понятием информатики и кибернетики дать ей точное определение весьма затруднительно. В настоящее время можно выделить три основных подхода к понятию информации: Общенаучный философский. Рассмотрим например переход вещества из твердого состояния в жидкое здесь можно наблюдать материальные преобразования энергетические затраты а также потерю информации относительно расположения атомов. Другой пример: образовательный процесс который сам по себе...
39046. Основные процессы преобразования информации 114.5 KB
  Основные процессы преобразования информации Информационная деятельность Уже говорилось что по мере развития общества происходит перераспределение трудовых ресурсов из сферы материального производства в сферу информационного. Деятельность по сбору и обработке существующей и созданию новой информации называется информационной деятельностью. Создание информационного продукта это ответ на появление некоторой информационной потребности под которой понимают совокупность элементов информации данных необходимых и достаточных для...
39047. Сбор и предварительная обработка информации 34 KB
  Целью лабораторной работы является получение навыков в поиске научно-технической информации (НТИ) в сети Internet, а также автоматизированного перевода научно-технических документов.
39048. Формирование информационных баз данных 30 KB
  Создать базу данных в MS ccess путем импорта таблиц MS Excel созданных в предыдущих пунктах. Создать форму для ввода данных в базу. Создать запросы: на выборку данных по заданному условию запрос с вычислением.
39049. Создание баз данных в MS Excel 1021 KB
  Писаренко MS Excel Создание баз данных в MS Excel Создание баз данных средствами MS Excel Для создания баз данных БД и работы с ними обычно используются специализированные достаточно сложные программные системы называемые системами управления базами данных СУБД такие как Orcle MS ccess Fox Pro Dbse MS ccess и др. Табличный процессор MS Excel не является специализированным программным средством для...