Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Программирование (2).doc
Скачиваний:
75
Добавлен:
10.02.2014
Размер:
171.01 Кб
Скачать

7. Подпрограммы пользователя. Описание процедур и функций.

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

Различает два вида подпрограмм: процедуры и функции, ко­торые описываются в разделе описания главной программы.

Procedure<имя>(<список формальных параметров зна­чений >: <mun>;var (<список формальных параметров переменых>: <тип>);

Label... - раздел описаний меток

Cons... - раздел описания констант

Туре ... - раздел описаний типов

Var... - раздел описания переменных

Procedure ... - вложенная процедура

Function... - вложенная функция

BEGIN

<операторы>; END;

Functiоп<имя> (<список формальных параметров>;<тип>) ;<Тип возвращаемого значения>;

Label... - раздел описаний меток

Const... - раздел описания констант

Туре... - раздел описаний типов

Var... -раздел описания переменных

Procedure... - вложенная процедура

Function... - вложенная функция

BEGIN

<операторы>;

END;

При вызове подпрограммы работа основной программы оста­навливается. Подпрограмма обрабатывает данные, переданные из главной программы, и по завершении выполнения возвращает главной программе результат.

  1. Параметры значения и параметры переменных под­программ. Механизм передачи параметров в подпрограмму.

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

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

- параметры-значения (эти параметры в основной программе подпрограммой не меняются);

- параметры-переменные (эти параметры подпрограмма мо­жет изменить в основной программе)

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

Пример.

function Sum(X, Y: Integer); Real;

Procedure Sum(X, Y: Integer; var S: Real); Параметры - переменные используются для передачи результа­тов выполнения процедуры в основную программу. В списке формальных параметров они указываются после слова var.

В качестве фактического параметра на месте параметра-значения при вызове подпрограммы может выступать любое выражение совместимого для присваивания типа, не содержа­щее файловую компоненту, например:

Sum (2+i, 8*i,S);

9. Описание строкового типа. Операции со строками. Строка — последовательность символов кодовой таблицы персонального компьютера. Для хранения и обработки симво­лов используются переменные типа Char. Значением перемен­ной символьного типа может быть любой отображаемый сим­вол: буква русского или латинского алфавитов; цифра; знак препинания;

Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов. Однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N - максимальное количество символов в строке. Значение N оп­ределяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255. Строка в Пас­кале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одно­мерного массива

Например:

var

st: String;

begin

.....

If st[5] = 'A'then...

end.

Самый первый байт в строке имеет индекс 0 и содержит те­кущую длину строки, первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной троки можно осуще­ствлять необходимые действия и таким способом изменять дли­ну.

Значение текущей длины строки, можно получить и с помо­щью функции LENGTH(st)

К строкам можно применять операцию «+» - сцепление, на­пример:

st:='al + 'b';

st :=>st + 'с'; {st содержит "abc"}

Если длина сцепленной строки превысит максимально до­пустимую длину N, то «лишние» символы отбрасываются.

Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются зна­чением CHR(0).

Следующие операции отношения дадут значение TRUE:

'А'> '1

'Turbo' <' Turbo Pascal'

'Паскаль' >'Turbo Pascal'

Все остальные действия над строками и символами реали­зуются с помощью описываемых ниже стандартных процедур и функций.

Соседние файлы в папке лекции