- •Оглавление
- •Виды данных
- •Программирование линейных алгоритмов
- •Программирование разветвляющихся алгоритмов
- •Программирование циклических алгоритмов
- •Описание и использование типа массив
- •Ввод и вывод массивов
- •Процедуры и функции для работы со строками
- •Описание и использование данных строкового типа
- •Операции над строками
- •Описание и использование процедур и функций
- •Функции
- •Формальные и фактические параметры
- •Описание и использование типа запись
- •Описание и использование множеств
- •Файловый тип данных. Описание и использование типизированных файлов
- •Описание и использование текстовых файлов
- •Модуль пользователя
- •Объектно-ориентированное программирование. Классы. Основные понятия
- •Основные понятия
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Составляющие класса Поля
- •Свойства
- •Программные файлы. Файл проекта. Файл формы
- •Система программирования Delphi
- •Основные окна Delphi
- •Литература
Описание и использование данных строкового типа
Строка – это последовательность произвольных символов алфавита. Длиной строки называется количество символов в последовательности. Длина строки не может превышать 255. Для работы со строками в языке Pascal предусмотрен строковый тип данных.
Значением величины строкового типа является строка. Константы строкового типа записываются в апострофах. Например: ’задача’, ’57+38’, ’а’, ’’ (пустая строка).
Описание строковых типов данных:
type имя типа = string; или имя типа = string[n];
var имя строки: имя типа ;
или
var имя строки: string; или имя строки: string[n];
где n – длина строки.
Если длина строки не указана, по умолчанию она принимается равной 255.
Примеры: var a: string; x: string[10];
К любому символу строки можно обратиться непосредственно, указав за именем строки в квадратных скобках номер позиции этого символа. Например: s[i] –i- й символ строки s.
Операции над строками
К строкам применимы операции склеивания (конкатенации) и сравнения. Операция склеивания обозначается с помощью символа “+”, а операции сравнения – символами “=”,“<>”,“>”,“>=”,“<”,“<=”.
Операция склеивания добавляет к первой строке вторую.
Примеры: x:=’фор’; y:=’ма’;
z1:=x + y; { z1 =’форма’}
Сравнение осуществляется слева направо в соответствии с кодами соответствующих символов. Если длина одной строка меньше другой, то недостающие символы короткой строки заменяются значениями #0.
Примеры: ‘cb’<‘ab’ результат - false
‘9’>‘123’ результат – true
‘ab’>‘a’ результат – true
Для формирования значения строковой переменной существуют два способа.
Ввод значения с клавиатуры.
Использование оператора присваивания. В левой части оператора присваивания при этом должно быть имя строки, а не ее символ. Посимвольное заполнение строки (подобно заполнению массива) в языке Pascal запрещено. Значение отдельных символов строки можно изменять лишь после того, как строка сформирована.
Например: x:=’кол’; x[3]:=’м’;{x=’ком’} y:=x+’ок’ {y=’комок’}
Процедуры и функции для работы со строками
Для работы со строковым типом данных в языке Pascal предусмотрены следующие стандартные процедуры и функции:
function concat (S1[,S2,…,SN]:string):string;
(квадратные скобки здесь обозначают, что записанная в них часть является необязательной и может отсутствовать)
Склеивает строки S1,S2,…,SN.
Примеры: y:=concat(‘ка’,’ток’); {y=’каток’}
function copy (S:string ; Index, Count:integer):string ;
Копирует из строки S Count символов, начиная с символа с номером Index.
Примеры: s:=’информатика’; a:=copy(s,3,5); {a=’форма’}
function length (S:string):integer ;
Вычисляет текущую длину строки S.
Примеры: n:=length(‘каникулы’); {n=8}
function pos (ST,S:string):integer ;
Отыскивает в строке S первое вхождение подстроки ST и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращает ноль.
Примеры: a:=pos(‘рок’,’строка’); {a=3}
b:=pos(‘программа’,’программирование’); {b=0}
procedure delete (var S:string ; Index,Count:integer);
Удаляет Count символов из строки S, начиная с символа с номером Index.
Примеры: x:=’каток’; delete(x, 1, 2); {x=’ток’}
procedure insert (ST:string ; var S:string ; Index:integer);
Вставляет подстроку ST в строку S, начиная с символа с номером Index.
Примеры: s:=’свет’; insert(‘рас’,s,1); {s=’рассвет’}
procedure val (S:string ; var X: integer; var Code:integer);
или procedure val (S:string ; var X: real; var Code:integer);
Преобразует строку символов S во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной. Параметр Code содержит ноль, если преобразование прошло успешно, тогда в X помещается результат преобразования, в противном случае Code содержит номер позиции в строке S, в которой обнаружен ошибочный символ, и в этом случае значение X не меняется.
Примеры: var a:string ; b,c:integer; d:real;
begin a:=’58’; val(a,b,c); {b=58, c=0}
a:=’27d5k’; val(a,b,c); {b=0, c=3}
val(a,d,c); {d= 5.8000000000E+01, c=0}
end.
procedure str (X: integer ; var S:string);
или procedure str (X: real ; var S:string);
Преобразует число X любого вещественного или целого типов в строку символов S. В процедуре str можно указать формат вывода, аналогично процедуре write или writeln.
Примеры: var s:string ; x:integer; y:real;
begin x:=123; str(x,s); {s=’123’}
y:=123; str(y,s); {s=’ 1.2300000000E+02’}
y:=-453.68; str(y:6:1,s); {s=’-453.7’}
end.
