Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EKZAMYeN.doc
Скачиваний:
167
Добавлен:
11.02.2015
Размер:
345.09 Кб
Скачать

19. Рекурсия. Пример.

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

function factorial (n:integer):integer;

begin

if n>1 then

factorial:=factorial (N+1)*n

else factorial:=1

procedura vichis;

var N:integer;

begin

edit1.text:=IntToStr(factorial(N));

end;

end.

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

20. Символьный тип данных.

Значениями символьного типа является множество всех символов клавиатуры. Их 255. Каждому символу приписывается целое число от 0 до 255. Это число служит кодом внутреннего представления символа.

Примеры:

Название символов

Коды

пробел

32

enter

13

Shift

16

Escape

27

0 - 9

48 – 57

a - z

65 - 90

Var

c:=char;

c:=’a’

c:=’2’ – символ 2

b:='4'

c+b=’24’

К переменным символьного типа применимы операции сравнения.

c:=’a’ c<b (у ’a’ кодировка <, чем у символа 'z')

b:='z'

Встроенные функции.

ord(c) – код символа для типа char. ord(‘b’)=’66’

chr(c) – символ, преобразованный из числового аргумента. chr(83)=’s’

pred(c) – предыдущее по порядку значение данного типа. pred('5')=’4’

succ(c) – последующее значение этого типа. succ('5')=’6’

21. Строковый тип данных. Операции над строками. Стандартные процедуры и функции для работы со строками.

Для обработки строк используются следующие типы:

shortstring – короткая строка. Представляет собой статически размещаемые в памяти компьютера строки длиной от 0 до 255 символов. Эквивалентна описанию string[N].

string – длинная строка. При работе с этим типом память выделяется по мере надобности и ограничена лишь объемом свободной памяти.

widestring – широкая строка. Динамически размещаемые в памяти строки, каждый символ занимает не 1 Байт, а 2. Этот тип введен для совместимости с компонентами, основывающимися на OLE-технологиях.

pChar – заканчивающаяся нулем строка.

a: string;

a:=’mama mila ramu’

Операции над строками

  1. Строковой величине можно переприсвоить значение. a:=’mama mila ramu’

  2. Операции соединения (конкатенация) строк.

st1, st2: string;

st1:=’Hello’;

st2:=’students’;

st1+’ ‘ +st2=’Hello students’;

  1. Над строками допустимы операции сравнения. Строки сравниваются посимвольно слева направо с учетом внутренней кодировки символов до 1-ого несовпадающего символа.

Стандартные процедуры и функции для работы со строками.

AnsiLowerCase(s):string

Функция возвращает строку s, в которой все прописные буквы заменены строчными в соответствии с национальной кодировкой.

AnsiUpperCase(s):string

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

LowerCase(s):string

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

UpperCase(s):string

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

Length(s):Integer

Возвращает длину строки s:length(st2)=8, length(‘привет’)=6

Concat(s1, s2…):string

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

s1, s2…

Copy(S, I, N):string

Из строки S копирует N символов, начиная с символа с номером I.

Delete(S, I, N)

Из строки S удаляет N символов, начиная с символа с номером I.

Insert(St, S, I)

Вставляет подстроку St в строку S, начиная с символа с номером I.

Pos(St, S):Integer

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

StringOfChar(C, N):string

Создает строку, состоящую из N раз повторенного символа С.

Str(X, [W, D], S)

Преобразует число Х любого вещественного или целого типа в строку символов S.

W – общая ширина поля, выделенного под соответствующее символьное представление числа Х.

D – количество символов дробной части (если Х – вещественное).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]