Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 633 / 68 | Длительность: 06:01:00
Лекция 3:

Управляющие операторы

< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Аннотация: Третья лекция рассказывает об исполняемых операторах if-then-else, select case, do while, do, goto, continue, exit, cycle. Рассматриваются вложенные ветвления и циклы, ошибки связанные с бесконечными циклами. Приводятся примеры, связанные с подсчетом сумм и произведений. Рассказывается о работе с псевдослучайными числами.

Вы можете скачать презентацию к данной лекции здесь.

Условный оператор if

Создание разветвлений в программах, принятие решений, проверка условий, сключительные ситуации, проверка ошибок.

  1. имя: if (условие) then операторы_T else операторы_F end if имя
  2. имя: if (условие) then операторы_T end if имя
  3. if (условие) оператор_T

Условие - Логическое выражение


$f(x) = 
\left\lbrace \begin{array}{ccc} 
-x, & x<0\\ 
\sqrt{x}, & x\geq0 
\end{array} \right
$
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 $

Возможны несколько вариантов использования 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

Проверка на равенство, проверка каждого условия.

Всегда ли следует использовать оператор if, когда произносим "если" ?

если A<0 тогда М=A
         иначе М=0
 if ( A < 0 ) then
   M = A
 else
   M = 0
 end if
 
\rightarrow M = min(A,0)
 if ( A > 0 ) then
   M = A
 else
   M = 0
 end if
 
\rightarrow M = max(A,0)

Переменные-флаги – хранят результаты проверок.

logical status
...
 status = логическое выражение
...
  if ( status ) then
    операторы_T
  else
    операторы_F
  end if
...
< Лекция 2 || Лекция 3: 123 || Лекция 4 >