Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt-T2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
433.15 Кб
Скачать

3 Write(6,*)’Введите переменные a,b,c’

READ(5,*) A,B,C

WRITE(6,*)’Введите значения Хнач, Хкон, шаг dx’

READ(5,*) XN,XK,XD

C Блок корректировки шага

N=(XK-XN)/XD+1.

DX=(XK-XN)/(N-1)

X=XN

P=(A-B)/(C-A)

IF (P.LT.0.) GO TO 3 ! Проверка на минус под корнем

FMA=-1.E30

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

FMI=1.E30 ! для минимума задаем начальное большое число

DO 4 X=XN , XK , XD

S = SIN((X-1.)*(1./3.)+EXP(2.*X))**2

F=SQRT(P*S)

IF(F.GT.FMA) FMA=F или можно так: FMA=AMAX1(F,FMA)

FMI=AMIN1(FMI,F) или IF(F.LT.FMI) FMI=F

IF(F.LT.0.) WRITE(6,*)’При x=’,X,’ MU=’,F

4 IF(F.GT.0.) WRITE(6,*)’ При x=’,X,’ MU=’,F

END

13. Массивы

Под массивом понимают совокупность данных одного типа, объединённых одним именем.

Массивы должны быть описаны в программе одним из операторов описания. Существует специальный оператор для описания массивов:

DIMENSION

Пример:

DIMENSION A(10),B(8),C(3,4),K(15)

Оператор не выполняет никаких действий в программе и служит лишь только для отведения места в оперативной памяти ЭВМ для размещения массивов.

Изначально всем элементам массива заданы значения равные нулю, кроме ЭВМ образца до 1985, где массив изначально был заполнен машинным нулём (0.67*10-19).

Массивы бывают:

а) Одномерными (другое их название – вектор-столбец);

б) Двухмерными (другое название – матрица)

в) Трех- и т.д. мерными. Максимальное количество измерений в массиве равно 7.

Чтобы обратиться к определённому элементу массива, необходимо указать его имя и индекс этого элемента. Индекс в одномерном массиве – это порядковый номер элемента массива, для двухмерного – номер строки и номер столбца. В качестве индекса может выступать константа целого типа, переменная целого типа или арифметическое выражение, желательно целого типа.

Пример:

DIMENSION A(10)

K=4

M=3

A(1)=2.5

A(3)=1.7E-7

A(K+M)=D+A(1)

A(4)=A(M)+A(K+1) ! Эта строка аналогична выражению: А(4)=А(3)+А(4+1)

Примечание:

Желательно избегать арифметических действий с индексами массива, особенно при циклическом вычислении, т.к. это очень замедляет выполнение программы.

Двухмерные массивы в памяти ЭВМ располагаются по столбцам:

Пример заполнения ячейки двухмерного массива: С(1,2)=1.8

При этом в строку номер 1 и столбец номер 2 массива С занесётся число 1.8.

При выполнении программы транслятор анализирует, не превышает ли значение вызываемого индекса массива его предельного значения, описанного в операторе DIMENSION (т.е. проверяется случай, когда вызываемый индекс массива не существует – массив имеет меньшие размеры).

Так при записи С(К,М)=С(1,1)+С(1,2), которая соответствует записи:

С(4,3)=С(1,1)+С(1,2) значение (4,3) не соответствует существующему массиву С и поэтому выдаст ошибку.

При работе с двухмерными массивами есть одна особенность, которую рассмотрим на примере:

READ (5,*) К

С (К,3) = 7

Пока переменную К будем задавать равную от 1 до 3 программа будет выполняться корректно, но если К присвоить 4 и больше, то ЭВМ будет не в состоянии отследить, что пределы размерности массива нарушены обращение будет идти к совершенно иному и даже случайному элементу памяти ЭВМ.

Массивы можно описать ещё и с помощью операторов описания REAL и INTEGER:

REAL A(10)

INTEGER K(15)

Повторное описание массивов не допускается. Массивы могут быть: целого, вещественного, комплексного, строкового и логического типа.

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