Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_лекция4.doc
Скачиваний:
15
Добавлен:
30.03.2015
Размер:
101.38 Кб
Скачать

Операторы

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

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

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

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

  • оператор присваивания

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

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

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

  • условные операторы 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> - операторы, образующие составной оператор;

Begin…End –операторные скобки.

Для составного оператора допускается любая глубина вложенности (другими словами, составной оператор может включать другие составные операторы, т.е. составным может быть любой из операторов <оператор 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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]