Стандартные типы данных. Надо уточнить

Выражения. Операторы. Составной оператор.

 

Выражения

Конструкция языка, задающая порядок выполнения действий над элементами данных - выражение

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

Операцию определяют действия, которые надо выполнить над операндами.

В простейшем случае выражение может состоять из одной переменной или константы

Операции делятся на арифметические , отношения, логические, строковые и т.д.

Операции бывают унарными (операция относится к одному операнду и всегда записывается перед ним) и бинарными ( выражает соотношение между двумя операндами и записывается между ними)

 

Операторы

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

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

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

Оператор безусловного перехода (Go to) означает «перейти к» и при случаях когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный оператор меткой.

Оператор вызова процедуры служит для активизации предварительно определеенной пользователем, или стандартной процедуры.

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

Составной оператор

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

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

 

Оператор условия if.

- предназначен для ветвления программы на два направления.

 

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

 

Рассмотрим четыре варианта записи оператора IF:

 

If <условие> then P1 else P2;

If <условие> then P1;

If (<условие1>) or (<условие2>) then P1 else P2;

If (<условие1>) and (<условие2>) then P1 else P2;

где <условие>,<условие1>, <условие2> - переменные логического типа. Р1, Р2 - простые или составные операторы.

if
оператор
then
оператор
else
оператор

 


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

Оператор case работает следующим образом. Сначала вычисляется значение выражения-селектора, затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Если ни одна из констант не равна вычисленному значению, выполняется оператор, стоящий за словом else. Если слово else отсутствует, выполняется оператор, находящийся за словом end, т. е. первый оператор за границей case.

Селектор должен относиться к одному из целочисленных типов (находящихся в диапазоне — 32768..32767): булевскому, литерному или пользовательскому

 

оператор
case
оператор
of
значение
:
;
else
оператор
end

 

 


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

for
идентификатор
for
:=
идентификатор
for
to
for
идентификатор
:=
выражение
выражение
do
downto
оператор
for
идентификатор
for

 

 


Цикл For имеет счётчик цикла, а так же начальное и конечное значение счетчика цикла. Кроме того, с помощью зарезервированного слова downto можно указать, что цикл идет в обратном направлении. Счетчиком цикла может быть переменная любого порядкового типа. При переходе к следующей итерации цикла к счетчику автоматически применяется функция succ (pred). В случае, когда начальное значение счетчика цикла превышает конечное, тело цикла не выполняется ни разу.

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

Применяется, Когда число повторений известно заранее.

 

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

Repeat выполняется до тех пор пока условие, находящееся в конце цикла после зарезервированного слова until не станет равно true.

 

repeat
оператор
until
условие

 

 


В случае наличия в теле цикла нескольких операторов цикл repeat не нуждается в операторных скобках begin и end. Repeat называется циклом с постусловием, так как логическое условие, проверяемое в нем, находится в конце цикла

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

 

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

while
условие
do
оператор

 

 


Тело цикла выполняется, пока логическое в начале цикла равно true, в связи с чем в теле цикла должен стоять оператор, который может привести к изменению этого условия, иначе произойдет зацикливание. Цикл называется циклом с предусловием, так как логическое условие цикла проверяется перед входом в цикл. Используется , когда вполне возможно, что тело цикла ни разу не выполнится.

 

Процедуры и функции. Основные понятия.

 

Кроме стандартных процедур и функций Pascal позволяет оформлять вспомогательные алгоритмы в отдельные подпрограммы (собственные процедуры и функции). С математической точки зрения это замкнутая часть целого, которую можно реализовать как самостоятельную структуру. Она имеет все компоненты основной программы (имя, const, type, var, может включать свои вложенные процедуры и функции). В языке подпрограммы делятся на два вида – процедуры и функции.

Объявление

· функции:

function <имя функции>(<формальные параметры функции>): тип результата функции;

function <имя функции>(<формальные параметры функции>): тип результата функции;

forward;

var <имя локальной переменной: тип локальной переменной>

begin

<описание функции>

end;

Подпрограммы объявляются и описываются в начале программы до begin. В отличии от констант объявление подпрограммы может быть оторвано от её описания в этом случае используется forward. Описание, оторванное от объявления, обозначенное forward может идти только после объявления.

 

· процедуры:

 

procedure <имя процедуры>;

procedure <имя процедуры>;

forward;

var <имя локальной переменной: тип локальной переменной>

begin

<описание процедуры>

end;

 

Описание подпрограммы производится по следующему шаблону:

[uses <имя подключаемого модуля>];

[label <список меток>];

[const <имя> = <значение>];

[type <имя>:<тип>];

[var <имя>:<тип>];

[procedure <имя>];

[function <имя>(<параметры>:<тип параметров>):<тип выходных данных>]

begin

<операторы>

end;

 

Если используется forward, описывается директория function/procedure. Описание двух подпрограмм не могут пересекаться. Каждый блок должен быть логически завершённым, однако внутри любой подпрограммы могут быть описаны другие процедуры или функции такие называются вложенными. В заголовке подпрограммы при её объявлении указывается список параметров, которые будут передаваться в подпрограмму извне. Поэтому внутри подпрограммы эти параметры могут быть использованы, но их имена не должны совпадать с именами из раздела var данной подпрограммы.

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