34853

Операторы

Лекция

Информатика, кибернетика и программирование

При этом каждый из операторов выполняет некоторое действие над данными. Операторы ТР подразделяются на две группы: простые и структурированные. Простые операторы не содержат в себе других операторов структурированные включают в себя другие операторы как простые так и структурированные.

Русский

2013-09-08

99 KB

1 чел.

Операторы

Операторы языка программирования ТР, представленные в нужной последовательности, позволяют реализовать алгоритм решения задачи. При этом каждый из операторов выполняет некоторое действие над данными.

Операторы ТР подразделяются на две группы: простые и структурированные.

Простые операторы не содержат в себе других операторов, структурированные включают в себя другие операторы – как простые, так и структурированные.

К простым операторам относятся:

  •  оператор присваивания
  •  оператор перехода и пустой оператор

         К структурированным:

  •  составной оператор
  •  условные операторы IF и CASE
  •  операторы цикла WHILE, REPEAT и FOR

Оператор присваивания  :=

Самый простой, но наиболее используемый. Он предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу. Его синтаксис

<Идентификатор> := <выражение>

Допускается для идентификатора использовать любой тип, за исключением файлового.

В выражениях могут использоваться все математические операции:

* (умножение),

/ (деление),

DIV (целочисленное деление),

MOD (остаток от целочисленного деления),

+ (сложение),

- (вычитание),

логические операции:

NOT (отрицание "НЕ"),

AND (логическое "И"),

OR (логическое "ИЛИ")

XOR ("Исключающее ИЛИ'');

операции отношений <, <=, >, >=. =. <>,

а также стандартные функции (табл.1).

Стандартные функции

 Обращение

Выполняемые функции

тип аргумента

тип функции

Abs(X)

Sqr(X)

|X|

X2

целый или вещественный

целый или вещественный

Sin (X)

Cos (X)

Ln (X)

Exp(X)

Sqrt(X)

Arctan(Х)

Sin X

Cos X

Ln X

ex

Arctg X

целый или вещественный

вещественный

TRUNC(Х)

ROUND(X)

Выделение целой части числа

Округление X до ближайшего целого

вещественный

целый

PRED(X)

SUCC(X)

Нахождение предшествующего значения (в его типе) Нахождение последующего элемента (значения, следующего за X в его порядковом типе)

целый.

логический

или символьный

целый.

логический

или символьный

ORD(Х)

Определение порядкового номера символа X в наборе символов или его перечислимом типе

символьный

целый

CHR(X)

Определение значения символа по его порядковому номеру

целый

символьный

ODD(Х)

Логическая функция проверки нечетности

целый

логический

Frac(X)

Int(X)

Дробная часть числа часть числа

Целая часть числа

вещественный

вещественный

                                        Exp(x*ln(a))       ax (a>0)

                                         Ln(x)/ln(a)          logaX

                                        Ln(x)/ln(10)        lgX

                                         sin(X)/cos(X)      tgX

В первую очередь вычисляются выражения заключенные в круглые скобки, затем вычисляются значения, входящие в выражение функций. Далее выполняются унарные операции (NOT, унарный минус), операции типа умножения (*, /, div, mod, and), операции типа сложения (+, -, oг, хог) и в последнюю очередь операции отношений (=, <> , >, <, >=, <.=). Примеры арифметических операторов присваивания:

.                                                                                             

.                                                                  

var

     x: integer

 begin

    x:=0;

.

.

------------------------------------------

.

.

var

       х, у: геаl; 

 begin

     y:=x*y+sin(x);    

.

.

------------------------------------------

.

.

var

      S: char;

    Begin

            S:='+' ;   {Символьный оператор присваивания}

.

.

------------------------------------------

Оператор безусловного перехода

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

Структура оператора:

GOTO <метка>;

GOTO - ключевое слово, обозначающее перейти к <метке>.

<Метка> - произвольный идентификатор, позволяющий пометить любой оператор в программе и ссылаться на него.

Оператор от метки отделяется двоеточием. В языке Турбо Паскаль допускается использовать в качестве метки также целое число без знака от 0 до 9999.

           Пример:

               Ввести число до 100, написать его справа налево.

           ------------------------------------------------------------------

            Program l1_1;

                 Label M;

                    Var x, a, b: integer;

                      Begin

                        M: writeln(‘ввести натуральное число’);

                            Readln(x);

                              If x>=100 then goto M;

                                 a:=x mod 10;

                                 b:=x div 10;

                                   writeln(‘число’,a,b);

                       End.

           -------------------------------------------------------------------

Все использованные в программе метки должны быть описаны в разделе описаний программы с указанием ключевого слова 'LABEL'. Описанные в этом операторе метки обязательно должны быть использованы в программе.

Метки, описанные в функции или процедуре, локализуются только в ней, передача управления извне процедуры на метку внутри ее невозможна. С помощью оператора GOTO не рекомендуется осуществлять переход во внутреннюю часть сложного оператора (цикла, составного оператора). Запрещается переход с одной альтернативной части (ветви) сложного оператора на другую.

Современная технология структурного программирования основана на принципе программирования без GOTO. Считается, что злоупотребление этими операторами затрудняет чтение программы, усложняет ее отладку.

Тем не менее, в некоторых случаях использование оператора перехода может упростить программу. Обычно GOTO используется для досрочного выхода из любого сложного оператора или вложенных операторов цикла.

Составной и пустой операторы

Представляет собой последовательность некоторых операторов, выполняющихся в том порядке, в каком они представлены в тексте программы. Зарезервированные слова Begin и End являются так называемыми операторными скобками, в которые заключены операторы, входящие в составной оператор. 

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

BEGIN

<оператор 1>;

<оператор 2>;

  …;

<оператор N>

 END;

Здесь <оператор 1>…<операторN> - операторы, образующие составной оператор;

BeginEnd –операторные скобки.

Для составного оператора допускается любая глубина вложенности (другими словами, составной оператор может включать другие составные операторы, т.е. составным может быть любой из операторов <оператор 1>…<оператор N> , причём допускается любой уровень вложенности):

BEGIN

BEGIN

 …

BEGIN

END;

END;

END.

Пустой оператор

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

Примеры пустых операторов:

1) ;;      2) <метка>: ;

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

Условный оператор позволяет проверить некоторое условие и в зависимости от результата проверки выполнить то или иное действие, т.е. сделать ветвление в программе. Структура условного оператора в полной форме имеет следующий вид:

IF <условие>  THEN  <оператор1> ELSE <onepaтоp2>;

Условие - это выражение логического типа, которое может принимать два значения: TRUE (истина) или FALSE (ложь).

Вначале вычисляется выражение <условие>. Если результат его истинен, то выполняется <оператор1>, а <оператор2> пропускается. В противном случае выполняется <оператор2>, а <оператор1> пропускается.

Структура условного оператора в сокращенной форме:

IF <условие> ТНЕN <оператор1>;

в случае ложности условия выполняется следующий за IF оператор.

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

Пример вложения условных операторов:

  IF «условие1» THEN 

 IF «условие THEN 

   IF «условиеЗ» THEN «оператор3»

                                                 ELSE «оператор4»

    ELSE «оператор2»     ELSE «оператор1»;

В качестве «оператор1» или «оператор2» может использоваться только один, причем любой оператор Турбо Паскаля. Для объединения нескольких операторов в один блок используются операторные скобки (BEGIN …END), т.е. составной оператор.

Во многих программах в зависимости от некоторого условия часто требуется выполнить не одно, а последовательность действий. Однако оператор  IF в ТР обеспечивает выполнение единственного оператора, присутствующего после зарезервированного слова THEN или ELSE. Выйти из положения можно, применив составные операторы:

If <условие> then

                        begin

                             <оператор S1>;

                             <оператор S2>;

                               .

                               .

                             <оператор SN>

                                             end

                      else

                          begin

                             <оператор V1>;

                             <оператор V2>;

                               .

                               .

                             <оператор VN>

                                                 end;

здесь <оператор S1>… <оператор SN> и <оператор V1>… <оператор VN> - некоторые операторы, образующие составные операторы.

Для записи логических условий используют следующие знаки логических отношений <, >, <>, <=, >=, =. Для записи сложных логических выражений используют операции AND, OR, NOT (И, ИЛИ, НЕТ) например:

4<x<10    →   (x>4) and (x<10)

a<5 или a>10   →  (a<5) or (a>10)

Примеры:

Дано значение x. Вычислите ,  если x>=0;

                                                 ,    если x<0.

-------------------------------------------------------------

Program funk;

   Var

         x: integer;

         y: real;

     begin

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

             read(x);

            if x>=0 then y:=sqrt(x)

                         else  y:=sqr(x);

             writeln(‘y=’,y:10:4);

     end.

------------------------------------------------------------   

Даны три числа, найти максимальное из них.

------------------------------------------------------------

Program max;

   Var

       a, b, c: integer;

      begin

writeln(‘введите a, b, c’);

  read(a, b, c);

    if (a>b) and (a>c) then

                                  writeln(‘a-max=’,a);

     if (b>a) and (b>c) then

                                  writeln(‘b-max=’,b);

     if (c>a) and (c>b) then

                                  writeln(‘c-max=’,c);

      end.         

-------------------------------------------------------

Часто бывает необходимо при выполнении того или иного условия вычислить несколько операторов программы. Это легко осуществить, объединив данные операторы в блок, начинающийся со слова Begin и заканчивающийся словом End, например:

.

.

if a>2 then begin

                     x:=a+z;

                     y:=a/5;

                  end;

.

.

В этом случае говорят о составном операторе и операторных скобках BeginEnd.

Пример:

Протабулировать функцию

          

                           если шаг изменения x  dx=0.2

------------------------------------------------------------

Program tab;

    const dx=0.2;

      label met;

      var  x, y: real;

        begin

            x:=0;

            met: if (x>=0) and (x<=2)

                                     then

                                             y:=sqr(sin(x*x))

                                      else y:=exp(x);

                   weiteln(‘x=’, x:6:2, ‘y=’, y:12:4);

                       x:=x+dx;

         if x>=4 then goto met;

end.

------------------------------------------------------------------                  

Оператор варианта CASE

Рассмотренный выше оператор IF позволяет осуществить выбор одной из двух альтернатив. Но что если число вариантов нужно иметь больше? Выйти из положения позволит оператор CASE.

Оператор CASE позволяет в зависимости от значения какой-либо переменной или выражения порядкового типа выполнить те или иные действия. Его структура:

CASE <ключ_выбора> OF

<конст. выбора1>:<оператор1>;

<конст. выбора2>:<оператор2>,

… <конст. выборaN>:<oпepaтopN>

ELSE <оператор>

END;

CASE – «вариант», OF – «из», ELSE – «иначе».

где <ключ выбора> - выражение (переменная) любого порядкового типа; <конст.выбора> - константа того же типа, что и <ключ_ выбора>;

<оператор> - произвольный оператор ТП.

Порядковый тип – тип, имеющий конечное значение, например:

integer, boolean, char

Принцип действия. Вычисляется <ключ выбора>, затем в списке констант выбора отыскивается константа, равная <ключу выбора>. и выполняется соответствующий ей оператор. Затем оператор CASE завершает работу. Если в списке не найдена константа, совпадающая с "ключом", выполняется оператор части ELSE.

Пример:

Выполнить операцию в зависимости от введенного символа.

---------------------------------------------------------------

        Program l_w;

 var oper: char;

  x, y, z: real;

 begin

                            writeln(‘введите x, y’);

  read (x, y);

                             writeln(‘введите oper’);  

read(oper);

         case oper of

                                                            '+': z:=x+y;

'-': z:=x-y;

                                                            '*': z:=x*y;

'/' : z:=x/y

else

    write(‘нет операций');

end; 

                                   writeln (‘z=', z)

end.

         ----------------------------------------------------------------------------

Пример:

По введённому символу определить название реки.

----------------------------------------------------------------------------

Program l_13;

   var a: char;

      begin

            writeln(‘введите символ’);

                read(a);

                  case a of

                    ‘B’ : writeln(‘Волга’);

                    ‘И’ : writeln(‘Иртыш’)

                       else

                           writeln(‘на эту букву слова нет’);

                       end;

         end.

       ------------------------------------------------------------------------------

Часть ELSE <оператор> является не обязательной. Тогда при отсутствии в списке выбора нужной константы оператор выбора завершает свою работу.

Любому из операторов <списка выбора> может предшествовать несколько <констант выбора>. В этом случае они разделяются запятыми или представляют собой диапазон значений.

Пример:

      CASE <ключ> OF

1: <оператора1>;

 2,3:<оператор2>;

 4..6: <оператор3>

ELSE  <оператор>

END;

<Константа выбора> не является меткой оператора, поэтому в разделе меток ее описывать не нужно.


 

А также другие работы, которые могут Вас заинтересовать

25299. Філософський доробок С.Семковського 93 KB
  Тут він заснував першу в Україні кафедру марксизму і марксознавства яка потім перетворилася на Український інститут марксизму в якому до 1931 р. інституті марксизмуленінізму був створений філсоціолог. марксизму У 1918 р. кафедру марксизму і марксознавства яка потім перетв.
25300. В.Юринець та його філософський спадок 28.5 KB
  Юринець та його філософський спадок Юринець Володимир Олександрович 18911937.
25301. Слуховой анализатор 48.5 KB
  Средняя сосудистая оболочка в передней части глаза образует ресничное тело и радужную оболочку обуславливающую цвет глаз. Внутренняя сетчатая оболочка сетчатка или ретина содержит фоторецепторы глаза палочки и колбочки и служит для преобразования световой энергии в нервное возбуждение. Светопреломляющие среды глаза преломляя световые лучи обеспечивают четкое изображение на сетчатке. Основными преломляющими средами глаза человека являются роговица и хрусталик.
25302. Вкусовой и обонятельный анализатор 23.5 KB
  Хеморецепторы вкуса представляют собой вкусовые луковицы расположенные в эпителии языка задней стенке глотки и мягкого неба. Микроворсинки рецепторных клеток выступают из луковицы на поверхность языка и реагируют на растворенные в воде вещества. Рецепторы разных частей языка воспринимают четыре основных вкуса: горького задняя часть языка кислого края языка сладкого передняя часть языка и соленого яердняя часть и края языка.
25303. РОЛЬ СЕНСОРНЫХ СИСТЕМ В УПРАВЛЕНИИ ДВИЖЕНИЯМИ. СОМАТОСЕНСОРНАЯ ЧУВСТВИТЕЛЬНОСТЬ И КОРРЕКЦИЯ ДВИЖЕНИЙ 35.5 KB
  СОМАТОСЕНСОРНАЯ ЧУВСТВИТЕЛЬНОСТЬ И КОРРЕКЦИЯ ДВИЖЕНИЙ Выполнение движений сопряжено с растягиванием кожи и давлением на отдельные ее участки поэтому кожные рецепторы оказываются включенными в анализ движений. Эта функциональная связь является физиологической основой комплексного кинестетического анализа движений при котором импульсы кожных рецепторов дополняют мышечную проприоцептивную чувствительность. Благодаря проприоцепции возможны коррекция уточнение движений в соответствии с текущими потребностями выполнения произвольного действия....
25304. Физиологические реакции живого организма 39 KB
  Раздражение Раздражителем живой клетки или организма как целого может оказаться любое изменение внешней среды или внутреннего состояния организма если оно достаточно велико возникло достаточно быстро и продолжается достаточно долго. Клетки значительно более чувствительны по отношению к своим адекватным раздражителям чем к неадекватным. Возбудимость Некоторые клетки и ткани нервная мышечная и железистая специально приспособлены к осуществлению быстрых реакций на раздражение.
25305. Стресс 33.5 KB
  0004 ГОМЕОСТАЗ Внутренняя среда организма в которой живут все его клетки это кровь лимфа межтканевая жидкость. Ее характеризует относительное постоянство гомеостаз различных показателей так как любые ее изменения приводят к нарушению функций клеток и тканей организма особенно высокоспециализированных клеток центральной нервной системы. Способность сохранять гомеостаз в условиях постоянного обмена веществ и значительных колебаний факторов внешней среды обеспечивается комплексом регуляторных функций организма. существовать и двигаться...
25306. Адаптация 28 KB
  У человека адаптация выступает как свойство организма которое обеспечивается автоматизированными самонастраивающимися саморегулирующимися системами сердечнососудистой дыхательной выделительной и др. Адаптация это эффективная и экономная адекватная приспособительная деятельность организма к воздействию факторов внешней среды. Чем выше уровень интеграции координированности сложных регуляторных процессов тем эффективнее адаптация.
25307. Природа потенциала покоя 28.5 KB
  Согласно этой теории биоэлектрические потенциалы обусловлены неодинаковой концентрацией ионов К' N3' СГ внутри и вне клетки и различной проницаемостью для них поверхностной мембраны. Протоплазма нервных и мышечных клеток содержит в 3050 раз больше ионов калия в 810 раз меньше ионов натрия и в 50 раз меньше ионов хлора чем внеклеточная жидкость. На структурных элементах мембраны фиксируются различные ионы что придает стенкам ее пор тот или иной заряд и тем самым затрудняет или облегчает прохождение через них ионов. Так предполагается...