- •21. Операторы языка. Операторы циклов. Вложенные циклы.
- •22. Операторы языка. Операторы циклов. Циклы с предусловием и постусловием.
- •Оператор цикла с постусловием repeat…until
- •23. Операторы циклов. Операторы break. Оперотор continue.
- •24. Подпрограммы. Структура описания подпрограмм.
- •25. Описание заголовка процедуры (Параметры-значения, параметры-переменные, параметры-константы и входные параметры).
- •26. Функции. Глобальные и локальные переменные. Параметры, имеющие значения по умолчанию.
- •27. Строковые типы. Строковые константы.
- •28. Строковые выражения и стандартные процедуры.
- •29. Тип Variant.
- •30. Структурированные типы. Массивы. Статические массивы.
- •31. Структурированные типы. Динамические массивы. Объявление динамического массива.
- •32. Множества. Операции над множествами.
- •Операции над множествами
- •33. Записи. Доступ к полям записи. Оператор присоединения.
- •34. Файлы. Понятие файла. Последовательность работы с файлами. Описание файловых переменных. Стандартные подпрограммы для доступа к файлам.
- •35. Файлы. Текстовые файлы.
- •36. Файлы. Типизированные файлы.
- •37. Файлы. Нетипизированные файлы.
26. Функции. Глобальные и локальные переменные. Параметры, имеющие значения по умолчанию.
Глобальные объекты — это типы данных, константы и переменные, объявленные в начале программы до объявления любых подпрограмм. Эти объекты будут видны во всей программе, в том числе и во всех её подпрограммах. Глобальные объекты существуют на протяжении всего времени работы программы.
Локальные объекты объявляются внутри какой–нибудь подпрограммы и «видны» только этой подпрограмме и тем подпрограммам, которые были объявлены как внутренние для неё. Локальные объекты не существуют, пока не вызвана подпрограмма, в которой они объявлены, а также после завершения её работы.
Параметры по умолчанию.
В заголовке подпрограммы можно определить для параметра(ов) подпрограммы значения по умолчанию, которые будут использоваться в том случае, если при вызове подпрограммы соответствующий фактический параметр будет опущен. Значения по умолчанию можно назначить только для параметров значений и параметров констант. Задаваемое значение по умолчанию должно быть константным выражением, совместимым по присваиванию с типом параметра.
Например, если объявить процедуру
procedure FillArray(A: array of Integer; Value: Integer = 0);
то тогда следующие ее вызовы будут эквивалентными:
FillArray(MyArray);
FillArray(MyArray, 0);
Значение по умолчанию должно задаваться для каждого параметра в отдельности. Например, такое описание является недопустимым:
function MyFunction(X, Y: Real = 3.5): Real; // syntax error
Параметры со значениями по умолчанию должны быть последними в списке формальных параметров подпрограммы. Допустимо назначить значения по умолчанию для всех параметров подпрограммы.
27. Строковые типы. Строковые константы.
Строка — это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в Turbo Pascal является то, что с ней можно работать как с массивом символов, с одной стороны, и как с единым объектом, — с другой. За счет этого обработка строк достаточно гибка и удобна. Строковая константа есть последовательность символов, заключенная в апострофы. Например: 'это строковая константа', ‘272’. Строковая переменная описывается в разделе описания переменных следующим образом:
Var <идентификатор> : string[<максимальная длина строки>];
Например:
Var Name : string[20];
28. Строковые выражения и стандартные процедуры.
Следующие процедуры и функции используются для работы со
строками Паскаля.
-------------------T--------------------------------------------
¦ Процедура ¦ Описание ¦
+------------------+--------------------------------------------+
¦ Cоncat ¦ Выполняет конкатенацию последовательности¦
¦ ¦ строк. ¦
+------------------+--------------------------------------------+
¦ Cору ¦ Возвращает подстроку строки. ¦
+------------------+--------------------------------------------+
¦ Delete ¦ Удаляет из строки подстроку. ¦
+------------------+--------------------------------------------+
¦ Insert ¦ Добавляет в строку подстроку. ¦
+------------------+--------------------------------------------+
¦ Length ¦ Возвращает динамическую длину строки. ¦
+------------------+--------------------------------------------+
¦ Pоs ¦ Производит поиск подстроки в строке. ¦
+------------------+--------------------------------------------+
¦ Str ¦ Преобразует численное значение в его стро-¦
¦ ¦ ковое представление. ¦
+------------------+--------------------------------------------+
¦ Val ¦ Преобразует строковое значение в его чис-¦
¦ ¦ ленное представление. ¦
L------------------+---------------------------------------------
Length(s:string):integer
Функция возвращает в качестве результата значение текущей длины строки-параметра
Пример.
n := length('Pascal'); {n будет равно 6}
Concat(s1,[s2,...,sn]:string):string
Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция.
Copy(s:string; index:integer; count:integer):string
Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.
Пример.
s := 'Система Turbo Pascal';
s2 := copy(s, 1, 7); {s2 будет равно 'Система'}
s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'}
s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'}
Delete(var s:string; index,count:integer)
Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.
Пример.
s := 'Система Turbo Pascal';
delete(s,8,6); {s будет равно 'Система Pascal'}
Insert(source:string; var s:string;index:integer)
Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.
Пример.
s := 'Система Pascal';
insert('Turbo ',s,9); {s будет равно 'Система Turbo Pascal'}
Pos(substr,s:string):byte
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.
Пример.
s := 'Система Turbo Pascal';
x1 := pos('Pascal', s); {x1 будет равно 15}
x2 := pos('Basic', s); {x2 будет равно 0}
Str(X: арифметическое выражение; var st: string)
Процедура преобразует численное выражение X в его строковое представление и помещает результат в st.
Val(st: string; x: числовая переменная; var code: integer)
Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.
В дополнение приведем некоторые функции, связанные с типом char, но которые тем не менее часто используются при работе со строками.
Chr(n: byte): char
Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n.
Ord(ch: char): byte;
В данном случае функция возвращает код символа ch.
UpCase(c: char): char;
Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.