Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория кратко.docx
Скачиваний:
8
Добавлен:
27.02.2021
Размер:
44.82 Кб
Скачать
    1. Преобразование типов

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

Var

X : integer;

Y : real;

То оператор Y:=X+2; будет синтаксически правильным.

В то же время оператор X:=2.0 будет неверным, т.к. преобразование вещественного типа в целый запрещено.

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

Для преобразования вещественного типа в целый имеются две встроенные функции – Round, которая округляет вещественное до ближайшего целого и Trunc, усекает вещественное путем отбрасывания дробной части.

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

Program Code;

{Программа читает символ с клавиатуры и выводит на экран этот

символ и соответствующий ему внутренний код}

Var

Ch : char;

Begin

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

ReadLn(Ch);

WriteLn(ch, ‘=’, ord(ch));

End.

    1. Выражения. Операции

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

Операции:

1. Арифметические операции над переменными целого и вещественного типа

+ сложение

- вычитание

* умножение

/ деление вещественное

div деление целочисленное (отбрасывание дробной части результата)

Для целого типа существует операция mod – получение остатка от целочисленного деления (5 mod 2)=1.

В Паскале отсутствует операция возведения в степень, однако это можно реализовать с помощью функции sqr, возвращающей квадрат от значения параметра.

При работе с целыми существуют две процедуры:

- Dec(x [,n]) – уменьшает содержимое переменной x на значение выражения n (если n не задано, то на 1).

- Inc(x [,n]) – увеличивает значение x на значение выражения n (если n не задано, то на 1).

2. Над символами и строками символов определена единственная операция – сцепление двух строк (+). Остальные действия реализуются с помощью процедур и функций.

3. Над данными целого, вещественного, символьного и строкового типа определены следующие операции отношения

= <> (не равно) < > <= >=

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

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

При сравнении данных логического типа учитывается, что false есть нулевой байт, а true – байт с единицей в младшем разряде. Функция ord преобразует к целому не только символы, но и логические величины: ord(true)=1.

Операция отношения in применима к двум операндам. Левым операндом должно быть выражения целого, логического, символьного (перечисляемого, типа-диапазона) типа, правым – множество, состоящее из элементов того же типа, или идентификатор множественного типа. Операция даст результат истина, если левый операнд принадлежит множеству.

4. Логические операции

not – логическое НЕ

and – логическое И

or – логическое ИЛИ

xor – исключающее ИЛИ

Применимы к операндам целого и логического типа. Если операнды целого типа – результат целое число, биты которого (двоичные разряды) формируются из битов операндов по определенным правилам. Если операнды логические данные – результат логического типа.

К логическим операциям так же относят и две сдвиговые операции над целыми числами

i shl j – сдвиг содержимого i на j разрядов влево; освободившиеся младшие разряды заполняются нулями.

i shr j – сдвиг содержимого i на j разрядов вправо; освободившиеся старшие разряды заполняются нулями.

5. Операция @ применяется к операнду любого типа и возвращает результат типа Pointer, в котором содержится адрес операнда.

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

Приоритет Операция

  1. not, @

  2. *, /, div, mod, and, shl, shr

  3. +, -, or, xor

  4. =, <>, >, >=, <, <=, in