Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
технологии программирования.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.25 Mб
Скачать

Порядок вычисления выражений

     Все операции при вычислении значения выражения выполняются в соответствии с их приоритетом.

     Примеры логических выражений: x <10, x +17 >=10, ( x > a ) and ( x < b ). Здесь переменные x, a, b, y могут быть, например, числового или строкового типов.

     Строковые выражения (СВ) . Результатом выполнения СВ является строка символов. Для строк можно применять операции «+» – соединение (конкатенацию) двух строк, операции сравнения, а также следующие функции:

  • Length(S): integer – определение текущей длины строки S (в символах ~ в байтах);

  • Copy(S; Index, N: integer): String – выделение из строки S подстроки длиной N символов. Подстрока выделяется, начиная с символа в позиции Index ;

  • Concat(S1, S2, . . . Sn: String): String – соединение ( сцепление ) строк S1, S2, . . . Sn ;

  • Pos(Substr: String; S: String : integer – определение позиции (номера) символа, начиная с которого подстрокаSubstr входит в строку S , при этом ищется первое вхождение. Если подстрока не найдена, возвращается ноль.

     Пример. Str1:=’Student’;

                   Str2:= ‘Ivanov A.B.’;

                   Str3:= Str1+ Str2;

     Кроме функций, к строковым данным можно применять следующие процедуры:

  • Insert(Source: String; var S: String; Index: integer) – вставка строки Source в строку S , начиная с позиции Index ;

  • Delete ( var S : String ; Index , N : integer ) – удаление из строки S N символов, начиная с позиции Index ;

     Кроме отмеченных подпрограмм, большое количество процедур и функций содержит модуль SysUtils .

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

     Задание 5. Составить программу ввода с клавиатуры своей фамилии и вывода на экран составляющих ее букв в обратном порядке.

     Задание 6. Составить программу, которая преобразует исходную строку Alpha со значением ‘What do we study ?’ в строку Beta со значением ‘We study Object Pascal.’ Вывести на экран значение Beta и ее длину.

     Указание: использовать вспомогательную строку Gamma со значением ‘Object Pascal.’ , а также процедуры Delete, Insert и функции Copy, Length, UpCase

3.5 Выражения, операнды, операции

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

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

     Операции – это действия, которые выполняются над операндами. Операции бываю унарными и бинарнымиУнарнаяоперация относится к одному операнду, и ее знак записывается перед операндом, например, - x . Бинарная операция выражает отношение между двумя операндами, и знак ее записывается между операндами, например, x + y.

     Круглые скобки используются для указания порядка выполнения операций.

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

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

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

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

     Унарные арифметические операции + (Сохранение знака) и  (Отрицание знака) относятся к знаку числа и не меняют типа числа.

     Примеры. Пусть в программе есть строки:

                      var a, b, c, d: integer; x, y: real;

                      . . .

                     a:=40; b:=13 ;

                     c:= a div b; d:= a mod b; //c=3, d=1

                     y:=sin(a) + b/exp(x) - 12.5; // y=sin a + b/ e x – 12,5

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

     Над данными целочисленного типа можно выполнять также следующие побитовые (поразрядные) операции:

  • Shl – сдвиг влево;

  • Shr – сдвиг вправо;

  • And – И (арифметическое умножение);

  • Or – ИЛИ (арифметическое сложение);

  • Xor – арифметическое исключающее ИЛИ;

  • Not – Не (арифметическое отрицание).

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

     Примеры. Пусть в программе есть строки:

                     var a, b, c, d: integer;

                     . . .

                    a:=5; b:=9 ;

                    c:= Not a; // a= 0101, Not (0101) = 1010 =10 дес .

                    d:= a And b; // b=1001, 0101 And 1001 = 0001 = 1 дес .

     Примечание 1. Кроме перечисленных побитовых операций существуют одноименные логические операции, применяемые к данным логического типа.

     Примечание 2. В Object Pascal отсутствует операция возведения в степень. Для возведения числа (выражения) в целую степень можно применять многократное умножение на данное число в цикле. Возведение положительного ненулевого числа x в любую степень a можно выполнить с помощью выражения exp ( a * Ln ( x )) .

     Примечание 3. К данным целочисленного типа применима также функция Odd ( x ): Boolean , которая анализирует четность выражения x .

     Задание 4. а). a=12, b=22, a and b = ?

                       b). a=5, b=9, a or b = ?

                       c). a=12, b=22, a or b = ?

     Логические выражения (ЛВ). Результатом выполнения ЛВ является логическое значение True или False. Такие выражения чаще всего используются в условных операторах и операторах цикла. Логические выражения могут содержать:

  • логические константы True и False ;

  • логические переменные типа Boolean;

  • операции сравнения (отношения);

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

  • круглые скобки.

     Для установления отношения между двумя значениями, заданными выражениями, переменными или константами, используются следующие операции сравнения: =<><=>=<>. Операции сравнения выполняются после вычисления соответствующих выражений. Результатом операции сравнения является значение False, если соответствующее отношение не имеет место, и значение True в противном случае.

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

     Результат выполнения логических операций при применении их к логическим выражениям (операндам логического типа) будет логического типа (Boolean). Логические операции And, Or, Xor являются бинарными, операция Not – унарной.