Добавил:
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.6 Операторы языка Простые операторы

     Простые операторы – это операторы, не содержащие других операторов. К ним относятся:

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

  • оператор (безусловного) перехода;

  • пустой оператор;

  • оператор вызова процедуры.

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

     <имя переменной> =: <выражение>;

     Вместо имени переменной можно указывать элемент массива или поле записи . Отметим, что знак присваивания :=отличается от знака равенства = и имеет другой смысл. Знак присваивания означает, что сначала вычисляется значение выражения, а затем оно присваивается указанной переменной. Поэтому при условии, что х является числовой переменной, имеющей оп ределенное значение, допустима следующая конструкция: х:=х+1;

     Примеры. var x, a, b, c, root: real; box : Boolean; name: string;

                      . . .

                     x:=x+5.3; root:= sqrt(b*b-4*a*c);

                     box := False ; name :=’ Ann ’;

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

     Напомним, что меткой может быть идентификатор или целое число без знака в диапазоне 0—9999, причем все метки должны быть предварительно объявлены в разделе объявления меток того блока процедуры, функции или программы, в котором эти метки используются. Формат оператора перехода:

     goto <Метка>;

     Пример. Label m 1;

                   . . .

                   goto m1;

                   . . .

              m1: writeln(‘…’);

     Передавать управление с помощью оператора перехода можно на операто­ры, расположенные в блоке программы выше или ниже оператора перехода. Запрещается передавать управление операторам, находящимся внутри струк­турных операторов, а также операторам, находящимся в других бло­ках (процедурах или функциях).

     Внимание! В соответствии с правилами структурного программирования оператор перехода следует использовать как можно реже.

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

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