Операции и выражения в языке программирования Паскаль. 


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



ЗНАЕТЕ ЛИ ВЫ?

Операции и выражения в языке программирования Паскаль.



Операции: унарные not, @; мультипликативные *, /, div, mod, and, shl, shr; аддитивные +, -, or, xor; отношения =, <>, <, >, <=, >=,in.

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

Унарная операция @ применяется к операнду любого типа и возвращает результат типа POINTER, в котором содержится адрес операнда, если операция @ применяется к процедуре, функции или методу в объекте, ее результатом будет адрес точки входа в эту процедуру (функцию, метод). Этот адрес можно использовать только в подпрограмме, написанной на ассемблере, или в фрагментах INLINE.

Логические операции: not - логическое НЕ; and - логическое И; or - логическое ИЛИ; хоr - исключительное ИЛИ.

Логические операции применимы к операндам целого и логического типов. Если операнды - целые числа, то результат логической операции есть тоже целое число.

Операция отношения IN применяется к двум операндам. 1 операндом должно быть выражение любого порядкового типа, 2 - множество, состоящее из элементов того же типа, или идентификатор множественного типа. Например:

var

с: char; type

digit = set of ' 0 '..' 9 '; begin

if с in digit then.......

Выражения. Основными элементами, из которых конструируется исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих элементов характеризуется своим значением и принадлежит к какому-либо типу данных. С помощью знаков операций и скобок из них можно составлять выражения.

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

Y

(а + b) * с

sin(t)

а > 2

not Flag and (а = b)

NIL

[1, 3..7] * set1

УСЛОВНЫЙ ОПЕРАТОР в языку поскаль

if выражение then

оператор1

else

оператор2;

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

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

Алгоритм решения задачи вычисления z= max(x, y) можно задать в виде условного оператора Паскаля

if x>y then z:= x else z:= y

При формулировании алгоритмов весьма типичной является та­кая ситуация, когда на определенном этапе вычислительного про­цесса какие-либо действия надо выполнить только при выполнении некоторого условия, а если это условие не выполняется, то на дан­ном этапе вообще не нужно выполнять никаких дейст­вий. Про­стейшим примером такой ситуации является замена текущего зна­чения переменной х на абсолютную величину этого значения: если x<0, то необходимо выполнить оператор присваивания x:= - x; если же x>=0, то текущее значение х должно остаться без изменений, т.е. на данном этапе вообще не надо выполнять каких-либо дейст­вий.

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

Структура оператора выбора в Паскале такова:

Case <ключ_выбора> of
<список_выбора>
[else <оператор_иначе>] end

Здесь case, of, else, end – зарезервированные слова (случай, из, иначе, конец);

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

<список_выбора> - одна или более конструкций вида:

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

<константа_выбора> - константа того же типа, что и выражение

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

<операторы> - произвольные операторы Паскаля.

Оператор выбора Паскаля работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <спи­сок_выбора> отыскивается константа, равная вычисленному значению. Выпол­няется оператор, который следует за найденной константой, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, со­ответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор_иначе> можно опус­тить, тогда при отсутствии в списке выбора нужной константы не будет выпол­нено никаких действий, и оператор выбора просто завершит свою работу.

Например, составим программу, которая по номеру дня недели выводит на эк­ран его название:

Program dni_nedeli;
Var n: byte;
Begin
Readln(n);
Case n of 1: writeln(‘понедельник ’); 2: writeln(‘вторник ’); 3: writeln(‘среда ’); 4: writeln(‘четверг ’); 5: writeln(‘пятница ’); 6: writeln(‘суббота ’); 7: writeln(‘воскресенье’);
else writeln(‘дня недели с номером’, n,’нет’);
end;
end.

Все константы из списка выбора должны быть различны.

Любому из операторов списка выбора может предшествовать не одна, а не­сколько констант выбора, разделенных запятыми. Например, следующая про­грамма при вводе одного из символов ‘ y’ или ‘ Y’ выведет на экран «Да», а при вводе ‘ n’ или ‘ N’ – слово «Нет».

Var ch: char;
Begin Readln(ch);
Case ch of N, n: writeln(‘Да ’); Y, y: writeln(‘Нет ’);
End; End.

 

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

Цикл – это многократно повторяющиеся фрагменты программ. В ТР сущест­вует три оператора цикла: цикл с предусловием; цикл с постусловием; цикл с параметром.

Особенности: значения переменных ис­пользуемых в цикле определены до входа в цикл; вход в цикл возможен только через его начало; выход их цикла осуществляется как в результате его естественного окончания, так и с помощью операторов пе­рехода. Оператор цикла с предусло­вием реализует следующую базовую конструкцию: Формат записи: While L do OP; где: While - пока не; do – выполнить; L – выражение логического типа; OP – тело цикла; опера­тор (простой или составной).

Работа оператора: Вычисляется значение логического выражения, если вычис­ленное значение истинно, то выполняется оператор OP после чего повторяется проверка условия и выполнение операторов тела цикла. В противном случае осуществляется выход из цикла. Вычисление значения логического выражения предшествует выполнению операторов тела цикла, поэтому этот оператор цикла называется циклом с предусловием.

Оператор цикла с постусловием реализует следующую конструкцию: Формат записи: Repeat OP Until L; где: Repeat - повторять; Until – пока не; L – выражение логиче­ского типа; OP – тело цикла; оператор (простой или составной).Работа опера­тора: Выполняется оператор OP после чего вычис­ляется значение логического выражения L, если вычисленное значение False, то снова выполняется оператор OP в противном случае осуществляется выход из цикла. Вычисление значения логического выражения следует после выполнения операторов тела цикла, по­этому этот оператор цикла называется циклом с посту­словием. В отличие от цикла с предусловием, в цикле с постусловием тело цикла выполняется о край­ней мере один раз не зависимо от условия. В операторе цикла с постусловием ключевые слова Repeat и Until играют роль операторных ско­бок.

Формат записи: 1. For P:=Pn to Pk do OP; 2. For P:=Pk downto Pn do OP; где: For - для; to – до; downto – уменьшая до do – выполнить; OP – тело цикла; оператор (простой или составной); P - параметр цикла, переменная по­рядкового типа; Pn, Pk – начальное и конечное значение параметра. Работа опе­ратора: Вычисляется начальное значение параметра цикла Pn и присваивается параметру P. Проверяется условие P?Pk, и если оно True выполняются опера­торы тела цикла OP. После чего наращивается значение P на единицу и опять проверяется условие P?Pk. Если условие False осуществляется выход из цикла. В операторе с downto шаг изменения параметра цикла равен –1. Примеры за­писи: For i:=1 to n do n:=sqr(i)+1; For s:=’A’ to ‘Z’ do R:=R+ord(s)/127; For L:=False to True do H:= (False or L) And Not (L);

 

 



Поделиться:


Последнее изменение этой страницы: 2016-06-26; просмотров: 493; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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