Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по информатике.doc
Скачиваний:
28
Добавлен:
25.12.2018
Размер:
1.48 Mб
Скачать
  1. Процедуры функции в языке программирования паскаль

    1. Описание функции и обращение к ней

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

Рассмотрим пример описания функции:

FUNCTION A(X:T1;Y,Z:T2;VAR B,C,D:T3):T;

<тело функции A>;

здесь A - имя функции; X - формальный параметр-значение типа T1; Y,Z- формальные параметры-значения типа T2; B,C,D - формальные параметры-переменные типа T3; T - тип значения функции.

Все сказанное ранее о процедурах, их параметрах, обращении к ним, справедливо и для функций. Вместе с тем имеются и отличия:

1) описание начинается со служебного слова FUNCTION;

2) в заголовке функции указывается имя типа значения описываемой функции;

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

Пример 1.1. Описать функцию, вычисляющую максимум двух чисел.

FUNCTION MAX(X,Y:REAL):REAL

BEGIN

IF X>Y THEN MAX:=X ELSE MAX:=Y

END;

Эту функцию в программе можно применять в следующих видах:

Z:=MAX(X,Y);

A:=MAX(0.5,SIN(1));

WRITE('МАКСИМУМ=',MAX(C,D));

  1. Строки в языке программирования паскаль

    1. Литерный тип (char) в языке программирования Паскаль

Литерный (символьный) тип обозначается именем CHAR, он является стандартным и в программе не описывается. Значениями этого типа являются элементы набора литер (символов), определяемого реализацией языка. Некоторые из литер не имеют графического представления - это управляющие литеры. Все литеры перенумерованы, начиная с 0. Полный набор литер в Турбо-Паскаль состоит из 256 элементов с номерами от 0 до 255.

Все литеры фиксированы и упорядочены. Отношение порядка между ними такое же, как и между их порядковыми номерами. Так 'A'>'0', потому что номер 'A' - 65, а номер '0' - 48.

Две стандартные функции дают отображение литер на их номера и наоборот. Это следующие функции: ORD(C), где C - литера. Значением этой функции является номер литеры C; CHR(N), где N - целое число от 0 до 255. Значением этой функции является литера с номером N.

Эти функции являются обратными по отношению друг к другу, то есть CHR(ORD(C)) = C и ORD(CHR(N)) = N.

Для элементов типа CHAR выполнимы также стандартные функции PRED и SUCC.

    1. Строковый тип (string) в языке программирования Паскаль

Строки в языке программирования Паскаль - это последовательности литер. В качестве ограничителя строк-констант используются апострофы, например: 'PASCAL', 'компьютер', '25'.

В языке Турбо-Паскаль определен стандартный строковый тип STRING. В определении строкового типа должна быть указана в квадратных скобках максимальная длина строки данного типа. Максимальная длина - целочисленная константа в диапазоне от 0 до 255.(В старших версиях Турбо-Паскаля разрешено не указывать N, в этом случае считается, что N=255.)

Примеры:

TYPE ABC = STRING[100];

SCREENLINE = STRING[80];

XYZ=STRING;

Строковые выражения состоят из строковых констант, переменных, имен строковых функций и операторов. Знак "+" используется для слияния (конкатенации) строк. Если длина результата больше 255 символов, то возникает ошибка. При сравнении двух строк истина получается тогда и только тогда, когда сравниваемые строки совпадают посимвольно и имеют одинаковую длину (то есть принадлежат одному и тому же типу).

Типы STRING[N] для различных N и CHAR совместимы. Строки и символы могут употребляться в одних и тех же выражениях.

Строковая переменная занимает в памяти место, равное в байтах максимальной длине плюс один. Тип STRING[N] в Турбо-Паскале представляется как ARRAY[0..N] OF CHAR.

К любому элементу строки так же, как к элементу одинарного массива. В результате получается величина типа CHAR.

Например, если

VAR A:STRING[8];

и A:='COMPUTER',

то A[3] равно'M' , A[5] - 'U'.

В компоненте строки с индексом 0 находится символ, номер которого есть текущая длина строки. То есть ORD(A[0]) есть текущая длина строки. Например, если A:='DAY' то ORD(A[0])=3.