Алгоритмический язык PASCAL. Алфавит языка. Идентификаторы. Операции над данными, страница 8

При  таком  написании  оператора  может  возникнуть     синтаксическая  неоднозначность:  часть  оператора  ELSE   a3     может  быть  отнесена  как  к  внешнему  оператору  IF   b1,  так     и  к  внутреннему  IF    b2.  Эту  двусмысленность  можно  разре-шить  следующим  путём:

IF    b1   THEN   a1   ELSE

BEGIN   IF   b2   THEN   a2   ELSE   a3   END;

Этот  оператор  работает  следующим  образом:

при  истинности  условия  b1  выполняются  операторы    a1  и  переход  к  следующему  по  программе  оператору;

если  условие  b1 ложно,  то  при  истинности  условия      b2  выполняются  операторы  a2.  Если  же  условие  b2  ложно,   то  выполняются  операторы  a3  и  осуществляется  переход   к      следующему  по  программе  оператору.

Следует проявлять аккуратность  при  записи  вложенных     друг  в  друга  условных   операторов.

9.6.   Оператор  выбора.

С  помощьюоператор  выбора осуществляется   ветвление  программы  по  определённому  признаку, то  есть выполняется  один  из  операторов ( простых  или  сложных ) из  нескольких  возможных.

CASE  V  OF

    N1:  a1;

    N2:  a2;

. . .

   N10:  a10

  END;

где: V – селектор ( выражение );

N1,  N2,… N10 – константы   перед   операторами,  к   которым   переходит  выполнение   программы;

a1, a2,… a10 – операторы ( простые  или  составные  ),   которые  будут   выполняться.

CASE ( X+Y )   OF

1:    C:=B;

2:    C:=SIN(X);

3:    C:=COS(X+1);

4:    C:=10;

5:    C:=4

END;

Для  выполнения   выбирается   тот  оператор, константа     перед   которым  совпадает  со  значением  селектора  ( X+Y ). На  этом  выполнение  оператора  выбора  заканчивается.  Естественно,  все  параметры  ( X,  Y, В ),  входящие  в  опера-тор,  должны  быть  определены  заранее.  Если  значение   се-лектора  не  совпадает  ни  с  одной   из  предложенных     конс-тант,  то  оператор   не  выполняет  никаких  действий.

Кроме  одиночных  констант  можно  использовать  списки        и даже  диапазоны  констант:  

CASE ( X+Y )     OF

1,6:  a:=B;

2:  a:=SIN(X);

3:  a:=COS(X+1);

4:  a:=10;

5..10:  a:=4

END;

Здесь  при  значении  селектора  ( X+Y ),   равном  1  или  6,  выполняется  оператор   a:=B.

Если  значение  селектора ( X+Y )  равно  величине  от  5 до  10 -  выполняется   оператор  a:=4.

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

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

В  языке  TURBO  PASCAL существует  несколько  опера-торов  цикла.

9.7.1. Цикл  с  параметром.

Ещё  его  называют ” жёсткий ” или”строгий цикл ” :        

FOR     I: =A1     TO     A2     DO    S;

где: I -  главная  управляющая   циклом;  это   параметр,  меняющийся  при  каждом  выполнении   операто-ров  цикла.  Шаг  изменения  этого  параметра   ра-вен  единице ( +1 );  то  есть  параметр  I  увеличи-вается;

A1 -   начальное  значение  этого   параметра;

A2  -  конечное  значение  этого  параметра;

S  -  тело  цикла. Это  оператор  простой  или  сос-тавной   в  операторных   скобках.

Все  указанные   параметры  ( I, A1, A2 )  не  могут   быть     действительного  типа.

FOR    I:=A1     DOWNTO     A2     DO     S;

Для  этого  цикла  справедливо  всё,  выше  сказанное,  но      шаг  изменения  главной  переменной  циклом  равен   -1,  то     есть  параметр  I уменьшается.

Все  элементы,  входящие  в  оператор  цикла ( I, A1, A2 ),  должны  быть  описаны  в  описательной  части   программы. 

Пример:  Составить  программу  вычисления  суммы  нату-  ральных  чисел  от 1  до 100.

PROGRAM   SUM;

USES   CRT, PRINTER;

VAR  I, S :INTEGER;

BEGIN                

CLRSCR;

S:=0;

FOR  I:=1  TO  100  DO

BEGIN      

S:=S+I

END;      

WRITELN(’    S=’,S );

END.      

Результат:  S=5050

Пример  для  самостоятельной  работы: 

Вычислить  функцию  Y=X2  при  Х ,  равном           2, 4, 6, 8, 10, 12.