Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Consp_p1.rtf
Скачиваний:
16
Добавлен:
22.08.2019
Размер:
7.3 Mб
Скачать

70% Ошибок у программистов возникает из-за несоответствия типов переменных!.

Ошибки вроде и пустяковые, но из-за них может не заработать даже абсолютно правильно составленная программа. И на устранение ошибки может уйти достаточно много времени. Обратите внимание!

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

С Программа № 4 с использованием IF логического

REAL LAM Вместо описания имена LAM как вещественного типа можно задать другое имя, которое не будет начинаться на буквы I,J,K,L,M,N, например ALAM

WRITE(6,*)’Введите значения x,b

READ(5,*) X,B

IF(X.GT.2.*B) LAM=SIN(X)

IF(X.EQ.2.*B) LAM=0.

IF(X.LT.2.*B) LAM=COS(X)

WRITE(6,*)’Вычисленное значение Лямбда=’,LAM

PAUSE

STOP

END

Лучше ещё ввести новую переменную и присвоить ей выражение 2.*В и далее использовать эту переменную:

……….

A=2.*B

IF(X.GT.A) LAM=SIN(X)

Кстати, вместо первого оператора IF(X.GT.2.*B) LAM=SIN(X) можно просто записать LAM=SIN(X) . Проанализируйте программу и убедитесь, что она будет работать правильно. Проанализируйте, что произойдет, если таким же образом заменить последний оператор IF.

Условные обозначения логических операторов на блок-схемах

If арифметический if логический

11. Табулирование функции

Табулирование функции – это вычисление какой-либо функции с аргументом, изменяющейся в каких-то пределах.

Задача:

Вычислить и напечатать все значения функции:

f=sinx2-excos2x,

если x изменяется в пределах от а до b с шагом dx.

С Программа № 5. Циклы с оператором IF.

WRITE(6,*)’Введите Xнач, Xкон, шаг цикла’

READ(5,*) XN,XK,DX

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

N=(XK-XN)/DX+1 определяем количество вычислений на отрезке a ÷ b

DX=(XK-XN)/(N-1) уточняем значение шага

C Переменной цикла присваиваем начальное значение

X=XN

C Вычисляем значение функции

11 F=SIN(X*X)–EXP(X)*COS(X)**2

У показателя степени 2 точку ставить нельзя, т.к. нельзя возвести отрицательное число в вещественную степень.

С Выводим результат вычисления на экран

WRITE(6,*)’При Х=’,X,’ значение функции равно’,F Выводим на экран значение аргумента Х и соответствующее ему значение функции F.

C Задаём приращение аргумента

X=X+DX

С Проверяем условие повторения цикла

IF(X.LE.XK) GO TO 11

PAUSE

STOP

END

Для организации цикла с помощью оператора IF мы сделали:

1). Х присвоили XN:

X=XN

2). Сделали вычисление значения F в области цикла:

F=SIN(X*X)–EXP(X)*COS(X)**2

3). Увеличили значение аргумента на величину шага цикла:

X=X+DX

4). С помощью IF логического проверили условие повторения цикла:

IF(X.LE.XK) GO TO 11

При вычислении значений этой функции, например, при Х, изменяющемся от 1 до 10 с шагом 2, текущее значение Х будет равно 1,3,5,7,9. Т.е. не будет получено последнее значение функции на заданном отрезке. Поэтому в программе и применяется блок корректировки шага. Количество вычислений на отрезке будет N=(10-1)/2+1=5 (целое число). Новое, уточненное значение DX будет равно (10-1)/(5-1)=2.25

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