Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Тема: Программирование
Специальности: Системный архитектор, Тестировщик
Теги:
Лекция 3:
Управляющие операторы
Аннотация: Третья лекция рассказывает об исполняемых операторах if-then-else, select case, do while, do, goto, continue, exit, cycle. Рассматриваются вложенные ветвления и циклы, ошибки связанные с бесконечными циклами. Приводятся примеры, связанные с подсчетом сумм и произведений. Рассказывается о работе с псевдослучайными числами.
Ключевые слова: выражение, операторы, ветвление, равенство, пустой оператор, переменная, вычисление, цикла, значение, псевдослучайное число, массив, интеграл
Вы можете скачать презентацию к данной лекции здесь.
Условный оператор if
Создание разветвлений в программах, принятие решений, проверка условий, сключительные ситуации, проверка ошибок.
- имя: if (условие) then операторы_T else операторы_F end if имя
- имя: if (условие) then операторы_T end if имя
- if (условие) оператор_T
Условие - Логическое выражение
![$f(x) =
\left\lbrace \begin{array}{ccc}
-x, & x<0\\
\sqrt{x}, & x\geq0
\end{array} \right
$](/sites/default/files/tex_cache/7c6ded7fba85cb586f93d797a9411987.png)
program func real x,fx write(*,"(A,\)") "x = "; read(*,*) x if (x < 0) then fx = -x else fx = sqrt(x) end if write(*,*) "F(x) = ", fx end
Вложенные операторы if - множественное ветвление.
![$f(x) =
\left\lbrace \begin{array}{ccc}
-2, & x\leq-5\\
0, & -5<x\leq0\\
1, & 0<x\leq3\\
3, & x>3
\end{array} \right $](/sites/default/files/tex_cache/63510c562f7aabaa9b5ef46e9a2a7d5f.png)
Возможны несколько вариантов использования if.
Вариант № 1
! ------------------------Вариант № 1 if (x > 0) then if (x > -5) then ! ---------------- fx = 0 ! else ! fx = -2 ! end if ! ---------------- else if (x > 3) then ! ---------------- fx = 3 ! else ! fx = 1 ! end if ! ---------------- end if
Вариант № 2
! ------------------------Вариант № 2 if (x > 3) then fx = 3 else if (x > 0) then fx = 1 else if (x > -5) then fx = 0 else fx = -2 end if end if end if
Можно упростить, используя elseif.
! ------------------------Вариант № 2a, elseif if (x > 3) then fx = 3 elseif (x > 0) then fx = 1 elseif (x >- 5) then fx = 0 else fx = -2 end if
Один общий endif + легкая читаемость.
Вариант № 3
Проверка на равенство, проверка каждого условия.
Всегда ли следует использовать оператор if, когда произносим "если" ?
если A<0 тогда М=A иначе М=0
if ( A < 0 ) then M = A else M = 0 end if |
![]() |
M = min(A,0) |
if ( A > 0 ) then M = A else M = 0 end if |
![]() |
M = max(A,0) |
Переменные-флаги – хранят результаты проверок.
logical status ... status = логическое выражение ... if ( status ) then операторы_T else операторы_F end if ...