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

9. Арифметический оператор if

Служит для разветвления программ в 3-х или 2-х направлениях в зависимости от заданных условий. Записывается в виде:

If(арифметическое выражение) m1, m2, m3

где m1, m2, m3– метки операторов, на которые будет передаваться управление вычислительным процессом.

Пример: IF(2.*A–SIN(B)) 3,4,12

IFарифметический работает следующим образом:

1). Вычисляется арифметическое выражение в скобках.

2). Вычисленное значение сравнивается с нулём.

3). Если вычисленное значение <0, то управление передаётся на метку m1(3), если вычисленное значение =0, то управление передаётся на меткуm2 (4), если >0, то на меткуm3 (12).

С помощью IFарифметического, к примеру, можно проверять подкорневое выражение и если оно окажется отрицательным (нельзя извлечь корень квадратный из отрицательного числа по законам математики), то управление передастся на нужную метку и не произойдёт прерывание выполнения программы при попытке вычисления корня из отрицательного числа.

Примечание:

В IF арифметическом должно быть всегда три метки, две из них могут быть одинаковыми. Метки могут быть расположены в любом месте программы (выше или ниже оператора IF).

Правило:

  1. Оператор, следующий после IF арифметического должен иметь метку;

  2. If арифметический не может быть последним оператором в цикле do.

Если в качестве условия имеется неравенство, то его необходимо привести к виду, при котором происходит сравнивание выражения с нулём.

x2+c>y→x2+c-y>0

С учётом этого доработаем Программу № 1, где при помощи IFарифметического проверим условие:если самая длинная сторона больше чем полупериметр, то треугольник не существует.

С Программа № 2 – Вычисление площади треугольника при помощи

С IF арифметического

4 Write(6,*)’ Введите значения сторон треугольника a,b,c’

READ(5, *) A,B,C

C Блок проверки правильности введенных данных

IF(A) 4,4,20 Проверка введенных исходных данных: сторона треугольника не может быть отрицательной или равна нулю.

20 IF(B) 4,4,21

21 IF(C) 4,4,22

Вместо этих трех операторов лучше использовать одинIF(AMIN1(A,B,C)) 4,4,22

С Конец блока проверки правильности введённых данных

  1. P=(A+B+C)/2.

IF(AMAX1 (A,B,C)–P) 6,8,9Встроенные функции АМIN1, АМАХ1 из списка переменных, перечисленных в скобках, выбирают минимальное (максимальное) число. Последний оператор обозначает: если максимальная из сторон равна полупериметру, то управление передается на метку 8. Если максимальная из сторон меньше полупериметра, то идем на метку 6 и вычисляем площадь. А иначе идем на метку 9.

8 Write(6,*)’ Площадь треугольника равна нулю’

GO TO 4

6 S=SQRT(P*(P-A)*(P-B)*(P-C))

WRITE(6,*)’ Площадь S=’, S

PAUSE

GO TO 4

9 Write(6,*)’ Такой треугольник не существует’

Оператор PAUSE или PAUSE ‘ текст ’ служит для приостановки выполнения программы на экране до любого нажатия на клавиатуру. Он позволяет посмотреть данные, полученные при выполнении программы до завершения программы по оператору STOP.

STOP

END

Описание работы программы:

Вначале выводится приглашение к вводу сторон треугольника А,В,С. После их ввода с клавиатуры происходит присваивание этих чисел переменным А,В,С соответственно. Затем следует блок проверки, в котором проверяется, чтобы не было введено отрицательное число (если введено отрицательное число, то управление передастся на метку 4 – метку оператора приглашения к вводу). После блока проверки вычисляется значение полупериметра Р. Проверка на корректность введенных данных и возможность существования треугольника с такими сторонами осуществляется при помощи условия: IF(AMAX1 (A,B,C)–P) 6,8,9.

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