Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fortran-2011.doc
Скачиваний:
22
Добавлен:
18.11.2019
Размер:
1.87 Mб
Скачать

If ( выражение ) Then

блок_1

[ Else

блок_2 ]

EndIf

где выражение

– логическое выражение, определяющее будет ли выполняться блок_1 или блок_2;

блок_1, блок_2

– группы выполняемых операторов.

Оператор условного перехода работает следующим образом. Если значение логического выражения есть "истина", то выполняются операторы блока_1, а операторы блока_2 игнорируются. Если значение логического выражения есть "ложь", то игнорируются операторы блока_1, а выполняются операторы блока_2. Признаком конца группы операторов блока_1 является оператор Else, а группы операторов блока_2 – оператор EndIf. После выполнения любого из блоков управление передается на оператор, следующий за ключевым словом EndIf. Ключевое слово Else и операторы блока_2 могут отсутствовать. В этом случае работа оператора условного перехода аналогична работе логического оператора.

При использовании оператора условного перехода необходимо придерживаться следующих правил:

  • не допускается передача управления в блоки операторов блок_1 или блок_2 извне, минуя оператор If;

  • при использовании в качестве блока_2 другого оператора условного перехода вместо комбинации двух ключевых слов Else и If можно использовать единое слово ElseIf;

  • допускается использование пустых блоков операторов после ключевого слова Else, но это рекомендуется избегать.

Использование блочного оператора условного перехода упрощает чтение программы, делая ее более наглядной. Это можно видеть на примере программы идентификации областей:

Read(*, *) X, Y

If (X*X + Y*Y.LE.4.) Then

If (Y.LE.0.) Then

N = 2

Else

N = 1

EndIf

Else

N = 0

EndIf

Write(6, 8) X, Y, N

8 Format(' Точка M(', F4.1, ',', F4.1, ') лежит в области N = ', I1)

End

Пример выполнения задания. Составить программу для вычисления значения функции F по формуле

Исходные данные задать в файле dat. Результат поместить в файл res

Программа

program lab_3

implicit none

Real x, y, z, a,f

Open(5, File = 'dat')

Open(6, File = 'res')

15 read(5,1, end=100) x, y, z

1 format(3f4.1)

if (x>y) then

a=x

else

a=y

endif

if (a<z) then

f=a

else

f=z

endif

write(6,20) x, y, z, f

20 format('x=',f4.1,'; y=',f4.1,'; z=',f4.1, '; f=',f4.1)

go to 15

100 stop 'lab_3'

end program

Файл исходных данных dan

-3.0 2.3 7.4

-1.5 5.1 1.6

-2.5 0.5 0.4

-0.5 0.8 0.2

0.5 0.1 5.1

1.0 1.0 1.2

Файл результатов res

x=-3.0; y= 2.3; z= 7.4; f= 2.3

x=-1.5; y= 5.1; z= 1.6; f= 1.6

x=-2.5; y= 0.5; z= 0.4; f= 0.4

x=-0.5; y= 0.8; z= 0.2; f= 0.2

x= 0.5; y= 0.1; z= 5.1; f= 0.5

x= 1.0; y= 1.0; z= 1.2; f= 1.0

З а д а н и е к л а б о р а т о р н о й р а б о т е

Составить блок-схему и программу для решения следующих задач. В вариантах 1–14 вычислить значение F по предлагаемой формуле. При получении нуля в знаменателе необходимо напечатать фразу "нуль в знаменателе". В вариантах 15–24 определить номер области n, в которую попадет точка с заданными координатами x и y. Границы отнести к области с большим номером. В вариантах 25–30 выполнить указанные действия. В качестве исходных данных использовать восемь различных комбинаций значений вводимых переменных. В программе предусмотреть ввод исходных данных из файла dan и печать результатов в файл res. Результаты тестирования программы привести в отчете.

1.

2.

;

3.

4.

5.

;

6.

;

7.

8.

9.

10.

11.

12.

13.

14.

15

16

17

18

19

20

21

22

23.

24

  1. Определить есть ли в целом четырехзначном числе три одинаковые цифры.

  2. Даны три произвольные числа. Вывести их на печать в порядке возрастания.

  3. Проверить является ли произвольное целое четырехзначное число палиндромом ("перевертышем").

  4. Проверить состоит ли произвольное целое четырехзначное число из четных цифр.

  5. Проверить состоит ли целое трехзначное число из разных цифр.

  6. Даны три числа. Вывести на печать те из них, значения которых лежат в диапазоне от a до b.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 4

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