Программирование на языке Object Pascal

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

ет начальную длину строки.

Pos (s1, s): byte - возвращает позицию первого вхождения подстроки s в s1:

 

s1:= колокол;:= ол;:= pos(s1;s)[2]

 

Если подстрока s1 отсутствует внутри строки s, то pos возвращает (0).

Comparestr (s1,s2): Boolean; - сравнивает 2 строки с учетом регистра:

Comparestr (Abc; abc)[false](s1,s2): Boolean - сравнивает 2 строки без учета регистра: (Abc; abc)[true]

Stingofchar (s,count): string - возвращает строку с повторяющимся количеством повторяющихся символов:

Stingofchar (f,5);[fffff]

Sting replace (s1, s2, s3) - возвращает строку с заменой вхождений одной подстроки в другую. (s1 - в какой?, s2- что?, s3 - на что?)

Trim (строка): string - удаляет из строки пробелы и управляющие символы находящиеся в начале и в конце строки.

TrimLeft (строка): string - удаляет из строки пробелы и управляющие символы находящиеся слева в строке.

TrimRight (строка): string - удаляет из строки пробелы и управляющие символы находящиеся справа в строке.

Str (x, s); - эта процедура преобразует целое или вещественное число (x) к строковому формату и сохраняет результат в (s):

 

Var: real;: string;:= 230.561;(x, s);:= s+ a;[230.561a]

 

Val (s, x, c) - процедура преобразует строку (s) во внутреннее представление целой или вещественной переменной (x). Параметр (c) после завершения работы процедуры содержит (0), если преобразование прошло успешно, или содержит номер позиции в которой произошла ошибка:

 

Var: integer;: real;: string;:= 232;(s, x, c); (x = 2.32 E + 2; c = 0.):= 58*2;(s, x, c); (x = 5.8 E + 1; c = 3.)

(string): integer - преобразует строку в целое число.(string): extended - преобразует число в строку.

 

(string, integer) - переводит строку в целое число, при ошибке выдает число по умолчанию. (string): Boolean - попытка перевести число в строку..Процедуры.

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

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

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

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

 

Локализация имен

 

Все подпрограммы, вызываемые в модуле, должны быть предварительно объявлены:

Либо упоминанием заголовка в интерфейсном разделе;

Либо полным описанием в разделе реализации своего модуля.

Каждая подпрограмма имеет структуру, схожую со структурой основной программы, модуля и проекта:

Procedure/Function имя [(параметры)] []

 

Type

;

Const

;

Var

;

Label

;

Begin

;

End;

 

Процедура выполняет только тело подпрограммы, а функция возвращает еще и значение результата.

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

Пример:

Primer;

.

.V1…;

.

.AV2;;;B;V3

Procedure B1;

Var V4;B2;

Var V5;

Begin;

.

.;

.

.;

Begin

.

.

End;

End;

End.

 

Из процедуры (B2) доступны переменные (V1, V3, V4, V5).

Из процедуры (V1) доступны переменные (V1, V3, V4).

Из процедуры (B) доступны переменные (V1, V3).

Из процедуры (A) доступны переменные (V1, V2).

На уровне модуля доступна переменная (V1).

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

Пример:

A;;: string;B;: string;

s: bbb!;

Label1; Caption:= внутри процедуры B s=+s;;: aaa;; Caption:= до выбора в процедуре B s=+s;;

Label0[до входа ... ааа]

Label1[внутри процедуры ... bbb!]

Label2[после процедуры ... ааа]

 

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

pascal идентификатор константа массив

A.S.

.

.

s: bbb!

label1. Caption: внутри процедуры B s= + s + а внутри процедуры A s= + A.S.;

.

.

 

При взаимодействие подпрограмм одного и того же уровня иерархии вступает в действие следующее правило:

Любая подпрограмма перед ее использованием должна быть объявлена.

Пример:

PrimerC;[или A, B]A;B;A;

.

.;B

.[A];

.;C;

.[A, B];

.;.

 

Замечание: 1). Если процедуры были объявлены в интерфейсном разделе модуля (одной строкой), то их можно вызвать любую из любой и в любом порядке.

). Если процедуры объявле?/p>