Операторы условия и перехода. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы условия и перехода.



Строки программы на Паскале не нумеруются. Отдельные строки в программе могут иметь метки, к которым можно переходить.

Метки должны быть описаны с помощью ключевого слова

                                               label N1, N2 …;

в описательной части программы.

N1, N2, … - идентификатор или целое число (положительное) (0 9999).

Оператор:    GO TO N; -передает управление строке с меткой N.

program pr;

label 3;

var               

              x, y: real;

begin

3:           readln (x, y);

              go to 3;

end.

Оператор: IF < условия > THEN P1 [ ELSE P2 ]; если то иначе (не обязательная часть)

<условие> - логическое выражение;

P1, P2 - простой или составной операторы.

По этому оператору:

если <условие> - "истинно", то выполняется P1 (true);

              - " ложно", то выполняется P2 (false).

Если ELSE - отсутствует и <условие> - "ложно", то управление передается следующему оператору.

 

Распечатать наибольшее из двух чисел:

IF a>b THEN write (a) ELSE write (b).

 

Вычислить значение функции:

Y =

If x>=0 then y:= sin(x) else y:= - sin(x);

 

Логические выражения могут быть сложными, составленными с помощью логических операций: AND (и) OR (или) NOT (не).

       IF (a>b) and (a>c) THEN writeln (’a = ’, a)

 

IF a<0 THEN

                           составной оператор (P1)

                         ELSE

                              cоставной оператор (P2)

 

Паскаль допускает вложенность операторов IF.

IF n>0 THEN

                              IF (m div n)>n THEN

                                                                 m: = m-n

                                                        ELSE

                                                                m: = m + n;

ELSE - всегда относится к ближайшему оператору IF.

Если n>0 и (m div n)>n будет выполнено m: = m-n.

Если n>0, но (m div n) n будет выполнено m: = m + n.

Если n 0 - переход к следующему оператору.

Задача:

Вычислить:     y=  

Program fun;

var

    x, y: real;

begin

   writeln (’введите x’); readln (x);

   if x>90 then writeln (’функция не определена’)

               else  begin

                           if  x<0 then y: = 0

                                       else  y: = SIN (x*PI/180);

                            writeln (’y = ’,y:8:3);

                             end;                                     (составной оператор)

end.

 

Оператор CASE … OF; этот оператор предназначен для замены конструкций из вложенных IF.

Структура:

        CASE N of

                    N1: P1;

                    N2: P2;

                    NN: PN;

                    [else P;] - необязательная часть оператора.

                     end;

где N - целочисленная переменная, или выражение целочисленного типа.

N1, N2, … NN - возможные значения переменной N.

P, P1, P2, … PN - простые или составные операторы.

По этому оператору:

если значение - N = N1, то выполняется P1 (после чего управление передается оператору                 следующему за оператором case... of);

если значение - N = N2, то выполняется P2, иначе P.

                  

Если структура else - отсутствует и N - не принимает ни одного из перечисленных значений, управление передается следующему за case … of оператору.

 

Циклические вычислительные процессы.

Процессы, в которых ряд действий повторяются многократно по одним и тем же математическим зависимостям, называются циклическими.

Операторы цикла.

При организации циклов необходимо:

- определить параметр цикла и его начальное значение;

- изменять значение параметра цикла на каждом шаге итерации;

- проверка на выход из цикла.

FOR i: = N TO K DO P

                                                    (для)         (до) (выполнять)

где i - параметр цикла;

N, K - его начальное и конечное значение;

P - простой или составной оператор;

  I, N, K - переменные или константы целого типа.

Шаг изменения i - равен 1.

Если K<N, т.е. имеем дело с циклом с отрицательным шагом:  (-1)

FOR i: =N DOWNTO K DO P

Рассмотрим пример.

Вычислить

                     S= 1+1/2+1/3+ … +1/50

Выделим переменную для накапливания суммы - Sum. Значение этой переменной необходимо предварительно обнулить. Паскаль не производит предварительной, начальной, инициализации переменных. Поэтому сумма может быть искажена без Sum = 0.

Program sum;

Var

    i: integer;

    sum: real;

begin

   sum: =0;

   for i: = 1 to 50 do

                      Sum: = sum + 1/i;

   Writeln (' сумма = ', Sum);

end.

Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с шагом +1, -1.



Поделиться:


Последнее изменение этой страницы: 2019-10-31; просмотров: 88; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.187.233 (0.008 с.)