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

Примечание:

Оператор цикла DO не предусматривает корректировку шага DX.

Задача:

По введенному значению nвычислитьn!(факториал отn) и вычислить сумму квадратов, используя оператор циклаDO.

C Программа №6. Вычисление суммы и факториала от N

WRITE(6,*)’Введите N

READ(5,*) N

C Вычисление суммы N

S=0.

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

DO 2 I=1,N

S=S+I**2

2 CONTINUE

C Вычисление факториала

P=1.

DO 3 I=1,N

3 P=P*I

C Вывод результата

WRITE(6,*)’Сумма S=’,S,’ факториал =’,P

PAUSE

STOP

END

Вычисление суммы работает следующим образом:

Переменной Sприсваивается значение ноль. Затем по циклу к переменнойSприбавляется величинаi2за каждый проход по циклу.

Для вычисления произведения или факториала сначала переменной Рприсваивается значение1. Затем в циклеРумножается наIи результат записывается вР.

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

Задача:

Найти все значения функции ,еслиxизменяется в пределах:X=XHXKcшагомdx. Определить максимальное и минимальное значения.

Если значение <0, то результат вывести в левой части экрана, а если>0 – в правой части.

C Программа №7. Максимум и минимум функции

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)

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

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

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

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

DO 4 X=XN , XK , DX

S = SIN(ABS(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

PAUSE

STOP

END

13. Массивы

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

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

DIMENSION

Пример:

DIMENSIONA(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)

переменная арифметическое

целого типа выражение

Соседние файлы в папке Программирование на Фортране