Логическа инструкция IF
Тя има следния формат:
IF (s) p
Където s е логически израз, a p е изпълнима инструкция, ако s е вярно. Един от видовете логически израз е сравняването на две величини. Общият му вид е:
W1 оператор за сравняване W2;
Операторите за сравняване са следните:
.EQ. - равно;
.LT. - по-малко;
.GT. - по-голямо;
.LE. - по-малко или равно;
.GE. - по-голямо или равно;
.NE. - не е равно;
Логическите изрази могат да се обединяват с логическите оператори .AND., .OR., .NOT., .EQV., .NEQV.
Примери:
IF (A.GT.B) GO TO 100
IF (I.LT.50) I=I+1
IF (A.LT.100.AND.A.GT.50) B=B+A
Структурна инструкция IF
Тя има вида:
IF (L) THEN
..............
ELSE IF (L) THEN
...............
ELSE
...............
END IF
където L е логически израз
Пример:
IF (A.GT.5.2) THEN
B=A**2
ELSE IF (A.LT.5.2) THEN
B=A/3.
ELSE
B=A/2.
END IF
Подпрограма SUBROUTINE и инструкция CALL
Връща повече от едно значение в извикващата я програма. Структурата и е следната:
SUBROUTINE name (argument list)
....
RETURN
....
END
Задача1: Изпълнете долната програма за решаване на квадратно уравнение. Нека коефициентите A,B,C се въвеждат от клавиатурата.
PROGRAM FINDROOTS
REAL A,X1,X2,B,C
CALL ROOTS(10.,19.,5.,X1,X2)
WRITE(*,*) 'X1=', X1, 'X2=', X2
PAUSE
STOP
END
SUBROUTINE ROOTS(A,B,C,X1,X2)
REAL D
D=B**2-4.0*A*C
IF (D.LT.0.0) CALL ERROR
D=SQRT(D)
X1=(-B+D)/(2.*A)
X2=(-B-D)/(2.*A)
RETURN
END
SUBROUTINE ERROR
WRITE (*,*) 'The roots are complex'
END
Задача 2.Напишете програма, в която от клавиатурата се набират три числа. В отделна подпрограма се определя най-голямото число и се извежда на екрана.
Сподели с приятели: |