FORTRAN-77 управляющие...
Transcript of FORTRAN-77 управляющие...
![Page 1: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/1.jpg)
Условные операторыОператоры цикла
"Малые"операторы
FORTRAN-77управляющие операторы
Михайленко К. И.
БашгосуниверситетИнститут механики Уфимского научного центра РАН
(4)
Михайленко К. И. FORTRAN-77: арифметика
![Page 2: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/2.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Пример программы
prog11.fprogram prog11implicit noneinteger a, b, N
read *, a, bif (a .gt. b) then
N = aelse
N = bend if
print *, ’Наибольшее из введённых чисел:’, N
end
Михайленко К. И. FORTRAN-77: арифметика
![Page 3: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/3.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 4: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/4.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 5: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/5.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 6: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/6.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 7: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/7.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 8: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/8.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 9: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/9.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
6 операций сравнения
"равно" .EQ. A .EQ. B ⇔ a == b"не равно" .NE. A .NE. B ⇔ a != b"меньше" .LT. A .LT. B ⇔ a < b"меньше или равно" .LE. A .LE. B ⇔ a <= b"больше" .GT. A .GT. B ⇔ a > b"больше или равно" .GE. A .GE. B ⇔ a >= b
Результат операции сравнения — значение типа LOGICAL
Михайленко К. И. FORTRAN-77: арифметика
![Page 10: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/10.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
5 логических операций
отрицание ("не") .NOT. .NOT. L (унарная операция)"или" .OR."и" .AND.эквивалентность .EQV.неэквивалентность .NEQV.
Михайленко К. И. FORTRAN-77: арифметика
![Page 11: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/11.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
5 логических операций
отрицание ("не") .NOT. .NOT. L (унарная операция)"или" .OR."и" .AND.эквивалентность .EQV.неэквивалентность .NEQV.
Михайленко К. И. FORTRAN-77: арифметика
![Page 12: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/12.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
5 логических операций
отрицание ("не") .NOT. .NOT. L (унарная операция)"или" .OR."и" .AND.эквивалентность .EQV.неэквивалентность .NEQV.
Михайленко К. И. FORTRAN-77: арифметика
![Page 13: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/13.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
5 логических операций
отрицание ("не") .NOT. .NOT. L (унарная операция)"или" .OR."и" .AND.эквивалентность .EQV.неэквивалентность .NEQV.
Михайленко К. И. FORTRAN-77: арифметика
![Page 14: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/14.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
5 логических операций
отрицание ("не") .NOT. .NOT. L (унарная операция)"или" .OR."и" .AND.эквивалентность .EQV.неэквивалентность .NEQV.
Михайленко К. И. FORTRAN-77: арифметика
![Page 15: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/15.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Результаты логических операций
L1 = .TRUE. .TRUE. .FALSE. .FALSE.L2 = .TRUE. .FALSE. .TRUE. .FALSE.
.NOT. L1 .FALSE. .FALSE. .TRUE. .TRUE.L1 .OR. L2 .TRUE. .TRUE. .TRUE. .FALSE.L1 .AND. L2 .TRUE. .FALSE. .FALSE. .FALSE.L1 .EQV. L2 .TRUE. .FALSE. .FALSE. .TRUE.L1 .NEQV. L2 .FALSE. .TRUE. .TRUE. .FALSE.
Михайленко К. И. FORTRAN-77: арифметика
![Page 16: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/16.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Порядок выполнения логических операций
1 .NOT.
2 .AND.
3 .OR.
4 .EQV. и .NEQV.
5 Порядок операций может быть изменёнпосредством скобок ( )
Михайленко К. И. FORTRAN-77: арифметика
![Page 17: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/17.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Порядок выполнения логических операций
1 .NOT.
2 .AND.
3 .OR.
4 .EQV. и .NEQV.
5 Порядок операций может быть изменёнпосредством скобок ( )
Михайленко К. И. FORTRAN-77: арифметика
![Page 18: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/18.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Общая форма структурного IF
IF (логическое выражение) THENоператоры при .TRUE.
ELSEоператоры при .FALSE.
END IF
из prog11.f
if (a .gt. b) thenN = a
elseN = b
end if
Михайленко К. И. FORTRAN-77: арифметика
![Page 19: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/19.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Общая форма структурного IF
IF (логическое выражение) THENоператоры при .TRUE.
ELSEоператоры при .FALSE.
END IF
из prog11.f
if (a .gt. b) thenN = a
elseN = b
end if
Михайленко К. И. FORTRAN-77: арифметика
![Page 20: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/20.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Сокращённая форма структурного IF
IF (логическое выражение) THENоператоры при .TRUE.
END IF
prog12.fprogram prog12implicit noneinteger a, b, N
read *, a, bN = bif (a .gt. b) then
N = aend if
print *, ’Max:’, N
end
Михайленко К. И. FORTRAN-77: арифметика
![Page 21: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/21.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Сокращённая форма структурного IF
IF (логическое выражение) THENоператоры при .TRUE.
END IF
prog12.fprogram prog12implicit noneinteger a, b, N
read *, a, bN = bif (a .gt. b) then
N = aend if
print *, ’Max:’, N
end
Михайленко К. И. FORTRAN-77: арифметика
![Page 22: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/22.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Вложенные операторы IF
f(x) =
0 , x < 0 ;x , 0 6 x < 1 ;x2 , 1 6 x < 10 ;2x3 , x > 10
Михайленко К. И. FORTRAN-77: арифметика
![Page 23: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/23.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Вложенные операторы IF
f(x) =
0 , x < 0 ;x , 0 6 x < 1 ;x2 , 1 6 x < 10 ;2x3 , x > 10
if (x .lt. .0) theny = 0.
elseif (x .lt. 1.) then
y = xelse
if (x .lt. 10.) theny = x**2
elsey = 2. * x**3
end ifend if
end if
Михайленко К. И. FORTRAN-77: арифметика
![Page 24: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/24.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Оператор ELSE IF
f(x) =
0 , x < 0 ;x , 0 6 x < 1 ;x2 , 1 6 x < 10 ;2x3 , x > 10
if (x .lt. .0) theny = 0.
else if (x .lt. 1.) theny = x
else if (x .lt. 10.) theny = x**2
elsey = 2. * x**3
end if
Михайленко К. И. FORTRAN-77: арифметика
![Page 25: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/25.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Логический условный оператор IF
IF (логическое выражение) оператор при .TRUE.
Михайленко К. И. FORTRAN-77: арифметика
![Page 26: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/26.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Логический условный оператор IF
IF (логическое выражение) оператор при .TRUE.
prog13.fprogram prog13implicit noneinteger a, b, N
read *, a, b
N = bif (a .gt. b) N = a
print *, ’Наибольшее из введённых чисел:’, N
end
Михайленко К. И. FORTRAN-77: арифметика
![Page 27: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/27.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Логические выраженияСтруктурный оператор IFОператор ELSE IFЛогический условный оператор IF
Ограничения
Нельзя передавать управление на операторыELSE, ELSE IF, END IF
Нельзя передавать управление извневнутрь условного оператора
Михайленко К. И. FORTRAN-77: арифметика
![Page 28: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/28.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Пример программы
prog14.fprogram prog14implicit noneinteger i, a, sum
sum = 0do 10 i = 1, 10
read *, asum = sum + a
10 continue
print *, ’Сумма 10 чисел:’, sum
end
Михайленко К. И. FORTRAN-77: арифметика
![Page 29: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/29.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Оператор цикла DO
DO метка параметр = нач, контело цикла
метка последний оператор цикла
Оператор-пустышка CONTINUE
Михайленко К. И. FORTRAN-77: арифметика
![Page 30: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/30.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Оператор цикла DO
DO метка параметр = нач, контело цикла
метка последний оператор цикла
Оператор-пустышка CONTINUE
Михайленко К. И. FORTRAN-77: арифметика
![Page 31: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/31.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Оператор цикла DO ... END DO (Fortran 90)
DO параметр = нач, контело цикла
END DO
Михайленко К. И. FORTRAN-77: арифметика
![Page 32: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/32.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Вложение операторов цикла
Правильно
do 99 ...........................do 87 ...........................87 continue......................99 continue
Неправильно
do 99 ...........................do 87 ...........................99 continue......................87 continue
Правильно
do 99 ...........................do 87 ...........................end do......................end do
Михайленко К. И. FORTRAN-77: арифметика
![Page 33: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/33.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Вложение операторов цикла
Правильно
do 99 ...........................do 87 ...........................87 continue......................99 continue
Неправильно
do 99 ...........................do 87 ...........................99 continue......................87 continue
Правильно
do 99 ...........................do 87 ...........................end do......................end do
Михайленко К. И. FORTRAN-77: арифметика
![Page 34: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/34.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Вложение операторов цикла
Правильно
do 99 ...........................do 87 ...........................87 continue......................99 continue
Неправильно
do 99 ...........................do 87 ...........................99 continue......................87 continue
Правильно
do 99 ...........................do 87 ...........................end do......................end do
Михайленко К. И. FORTRAN-77: арифметика
![Page 35: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/35.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Общая форма оператора DO
DO метка параметр = нач, кон, шагтело цикла
метка CONTINUE
DO параметр = нач, кон, шагтело цикла
END DO
Количество проходов цикла:
N = int
(кон− нач
шаг+ 1
)
Михайленко К. И. FORTRAN-77: арифметика
![Page 36: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/36.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Замечания
1 Параметр цикла допустимо использовать в теле цикла;значение параметра цикла менять нельзя.
do i = 1, 20j = i**2print *, i, j
end do
do i = 1, 20i = i**2print *, i
end do
Михайленко К. И. FORTRAN-77: арифметика
![Page 37: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/37.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Замечания
2 Значения нач, кон, шаг вычисляются перед началомцикла; полученные значения хранятся на протяжении всегоцикла.
N = 5do i = 1, N
N = N + 1print *, i, N
end do
1 62 73 84 95 10
Михайленко К. И. FORTRAN-77: арифметика
![Page 38: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/38.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Замечания
3 На выходе из цикла параметр цикла сохраняет последнееприсвоенное значение.
do i = 1, 5N = N + 1
end doprint *, i
6
Параметр цикла сначала получает очередное значение, илишь потом производится проверка, не превышено лизначение кон .Значение параметра цикла после выхода из цикла:
параметр = нач + N ∗шаг
Михайленко К. И. FORTRAN-77: арифметика
![Page 39: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/39.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Замечания
4 Нельзя передавать управление в тело цикла извне.5 Цикл можно размещать внутри блоков IF, ELSE, ELSE IF,
но недопустимо размещение начала цикла в одном блоке,а окончания — в другом.
6 Аналогично — для обратной ситуации размещенияусловного оператора в теле цикла.
7 Рекомендация Fortran 90: недопустим нецелый пераметрцикла.Стандарт Fortran 95: запрещён нецелый пераметр цикла.
Михайленко К. И. FORTRAN-77: арифметика
![Page 40: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/40.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор цикла DOФорма оператора цикла DO ... END DOВложение операторов циклаОбщая форма оператора цикла DOОператор цикла DO WHILE
Оператор цикла DO WHILE (Fortran 90)
DO WHILE (логическое выражение )тело цикла
END DO
Выполняется, пока логическое выражениеимеет значение .TRUE.
Михайленко К. И. FORTRAN-77: арифметика
![Page 41: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/41.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор GO TOОператор PAUSEОператор STOP
Оператор безусловного перехода
GOTO метка
1 Нельзя передавать управление внутрь цикла(но можно использовать GOTO в пределах тела цикла).
2 Нельзя передавать управление внутрь блоков условногооператора (но можно использовать GOTO в пределахотдельного блока).
3 Нельзя давать метки операторам ELSE, ELSE IF, END IF
Михайленко К. И. FORTRAN-77: арифметика
![Page 42: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/42.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор GO TOОператор PAUSEОператор STOP
Оператор временного останова
PAUSE символьная константа
Способ возобновления работы программы определяетсякомпилятором.
pause.fprogram esuappause ’Пауза в программе’print *, 1end
Михайленко К. И. FORTRAN-77: арифметика
![Page 43: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/43.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор GO TOОператор PAUSEОператор STOP
Оператор временного останова
$ g77 -o pause.g77 pause.f$ ifort -o pause.if pause.f$ ./pause.g77PAUSE Пауза в программе statement executedTo resume execution, type go. Other input will terminate the job.goExecution resumes after PAUSE.1
$ ./pause.ifПауза в программеPAUSE prompt>
1$ ./pause.ifПауза в программеPAUSE prompt> end$ _
Михайленко К. И. FORTRAN-77: арифметика
![Page 44: FORTRAN-77 управляющие операторыconst.uimech.org/files/img/fortran/4/f77-04.pdfОператор-пустышка continue Михайленко К. И. fortran-77:](https://reader036.fdocument.pub/reader036/viewer/2022070904/5f6fae8e1d67fa59e6627020/html5/thumbnails/44.jpg)
Условные операторыОператоры цикла
"Малые"операторы
Оператор GO TOОператор PAUSEОператор STOP
Оператор завершения работы
STOP символьная константа
STOP целая константа (число)
Михайленко К. И. FORTRAN-77: арифметика