Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 3_2.doc
Скачиваний:
25
Добавлен:
13.03.2016
Размер:
203.78 Кб
Скачать

Упражнения

1. Составить программу вычисления площади кольца по значениям внутреннего и внешнего радиусов, используя процедуру вычисления площади круга (2 варианта: с подпрограммой и с функцией).

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

3. Даны три целых числа. Определить, у которого из них больше сумма цифр. Подсчет суммы цифр организовать через процедуру.

4. Определить площадь выпуклого четырехугольника по заданным координатам вершин. Использовать функцию вычисления длины отрезка и подпрограмму вычисления площади треугольника по формуле Герона.

5. Описать рекурсивную функцию pow(x, n) от вещественного x (x  0) и целого n, которая вычисляет величину xn согласно формуле

6. Даны натуральные числа n и m; найти НОД(n,m). Использовать программу, включающую рекурсивную функцию вычисления НОД, основанную на соотношении НОД(n, m) = НОД(m, r), где r –– остаток от деления n на m.

3.11. Массивы

Массив – это поименованное конечное множество однотипных элементов. Массив имеет имя. Каждый элемент массива имеет свой номер – индекс либо несколько индексов. Количество индексов определяется размерностью массива:

имя массива (индекс) – одномерный массив, например a(i);

имя массива (индекс1, индекс2) – двумерный массив, например a(i1, i2);

имя массива (индекс1,…, индекс n) – n-мерный массив, например a(i1,…, in).

Из сказанного выше следует, что массив характеризуется размерностью (числом измерений) или рангом. В Фортране ранг массива не может быть более семи. Массив ранга 1 обычно называют вектором, ранга 2 – матрицей. Скалярные величины имеют нулевой ранг.

Другая характеристика массива – размер. Размер определяет объем занимаемой памяти. Размер – это число элементов массива.

Тип массива – это общий тип всех его элементов. В Фортране допускается использование массивов всех встроенных типов.

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

Объявление статических массивов

Границы значений индекса массива могут задаваться в интервальной форме или одним значением верхнего индекса:

ТИП ИМЯ([нижний_индекс :] верхний_индекс)

Для статических массивов границы индекса задаются константами. Например:

real G(-10:5) – одномерный вещественный массив, индексы элементов которого могут принимать целые значения от -10 до 5. Размер массива равен 16. Другой вариант:

integer D(100) – одномерный массив целого типа, состоящий из 100 элементов. Нижнее значение индекса по умолчанию принимается равным 1.

Примеры описания двумерных массивов (матриц):

integer A(0:3,0:4) – целая матрица размером 20 (4×5);

integer A(3,4) – целая матрица размером 12 (3×4).

В описаниях массивов может использоваться ключевое слово DIMENSION. Примеры:

real, dimension(10) X - здесь dimension – атрибут размерности;

dimension X(10) – оператор описания массива; тип определяется по умолчанию.

При описании статических массивов можно использовать именованные константы. Например:

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

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

integer,dimension(m, n) :: y

При объявлении статического массива может быть выполнена его иници-ализация:

integer а(10) /1,2,3,4,4,4,5,5,5,5/

или с использованием коэффициента повторения:

integer а(10) /1, 2, 3, 3*4, 4*5/.

Элементы двумерного массива располагаются в оперативной памяти в последовательности по столбцам. Например, в программе описан двумерный массив: integer g(3,3). В последовательной цепочке ячеек памяти компьютера его элементы расположатся в следующем порядке:

g(1,1), g(2,1), g(3,1), g(1,2), g(2,2), g(3,2), g(1,3), g(2,3), g(3,3).

При выводе массива с помощью оператора:

print *,g

его элементы расположатся на экране в указанном выше порядке.

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