Символьные и Строковые величины
Оглавление
- Символьные и Строковые величины
- Сравнение переменных
- Сложение переменных
- Функция Concat
- Функция Length
- Функция Pos
- Функция Copy
- Функции Ord и Chr
- Процедура Delete
- Процедура Insert
- Процедура Val
- Процедура Str
- Цикл с символьной переменной
СИМВОЛЬНЫЕ И СТРОКОВЫЕ ВЕЛИЧИНЫ
Для работы с символами, словами и предложениями в Паскале существуют типы данных – CHAR И STRING, представляющие собой символы в кодировке Windows.
Тип CHAR ( символьный ) - значения занимают 1 байт и представляют собой 1 символ.
Тип STRING ( строковый ) – значением может быть любая последовательность символов длиной не более 255.
Переменные должны быть описаны в разделе описания переменных или констант :
Имя : char ;
Имя : string ;
или
Имя : string [ длина ];
где Имя – имя переменной;
string, char – строковый или символьный тип;
длина – константа типа INTEGER, определяющая максимальную длину строки.
Примеры
Объявления:
var
fio: string[30 ] ; //строковая переменная fio длиною 30
buff: string; //строковая переменная buff длиною до 255 символов
а :char; //строковая переменная а длиною в 1 символ
const
name=‘Иванов Петр’;
s=‘ b’;
Если при объявлении строковой переменной длина не указывается, то она может быть до 255 символов.
К символам в строке можно обращаться, используя индекс: stroka [5] обозначает 5-тый символ в строке.
Сравнение символьных величин
Последовательность символов, являющаяся строкой, заключается в одинарные кавычки.
Строковую переменную можно сравнить с другой переменной или константой типа STRING, используя операторы =, , =,.
Строки сравниваются посимвольно от первого символа.
1. Если все символы сравниваемых строк одинаковые, то такие строки считаются равными.
’ abcd’ = ‘abcd’
СРАВНЕНИЕ СИМВОЛЬНЫХ ВЕЛИЧИН
2. Если в одинаковых позициях строк находятся разные символы, большей считается та строка, у которой в этой позиции находится символ с большим кодом.
’ abd’ ‘abc’
3. Если строки имеют различную длину, но в общей части символы совпадают, то короткая строка меньше, чем длинная.
’ abcd’ ‘abc’
Сложение переменных
Объединение нескольких строк в одну: к концу первой строки присоединяется начало второй и т. д.
Длина результирующей строки должна быть
Пример:
c:= ‘Иван‘ + ‘ ‘ + ‘Петров’;
write(c); //будет выведено ‘Иван Петров’
Строковые функции
Функция LENGTH
Возвращает длину строки.
Length (параметр)
Параметр – переменная или константа строкового типа. Возвращаемое значение (целое число) – количество символов, из которых состоит строка.
Пример ,
n:=length (‘Иванов’); - значение переменной n равно 6.
Задания
1. Ввести строку символов. Определить и вывести на печать ее длину. Напечатать первый и последний символы строки.
2. Ввести две фамилии. Определить какая фамилия имеет большую длину. Результат вывести в виде:
Фамилия « Иваненко » имеет больше символов чем « Петров »
3. Описать строковую константу « Преобразование » и вывести символы с 4-го по 8-ой
4. Описать строковую константу k=« Кабинет » и строковую переменную pred для хранения названия предмета. Ввести с клавиатуры название предмета (в нужном падеже). Получить в переменной res полное название кабинета.
ФУНКЦИЯ CONCAT
Concat(s1,...,sn)
возвращает строку, являющуюся результатом слияния строк s1,..., sn.
Результат тот же, что у выражения s1+s2+...+sn.
Пример
S1 := ’город ’; S2 :=‘Киев’;
S :=CONCAT ( S1 , S2) ;
S3 := S1+S2 ;
значением переменных S и S3 будет ’город Киев’.
Задания
Решить задачу 4 с использованием функции Concat
Описать строковую константу k=‘Кабинет’ и строковую переменную pred. Ввести с клавиатуры название предмета (в нужном падеже). Получить в переменной res полное название кабинета.
Объявить константу slovo1='волна'. Сравнить ее с переменной slovo2, присваивая ей значения: 'волга', 'вол', 'ворон‘ .
Функция POS
Позволяет определить положение подстроки в строке. Если подстрока не найдена возвращается 0. Общий вид:
Pos ( Подстрока , Строка );
где Подстрока – строковая константа или переменная, которую надо найти в строковой константе или переменной Строка.
Пример
p := pos (‘Петербург’ , ’Санкт-Петербург’);
Значение переменной p будет равно 7.
Функция COPY
Позволяет выделить фрагмент строки. Общий вид:
Copy ( Строка , p , n );
где Строка – переменная строкового типа, содержащая строку, фрагмент которой надо получить;
р – номер символа, с которого начинается выделяемая подстрока;
n – длина выделяемой подстроки.
Пример
St := ’инженер Иванов’;
Fam := copy (st,9,6);
значением переменной fam будет строка ‘Иванов’.
Функция Ord
Возвращает символ с кодом Х. Общий вид:Ord(x)
Пример
m:=ord(8);
m1:=ord(‘8’);
Writeln(m,' ',m1);
Результат: 8 56
Функция Chr
Общий вид: Chr(x).
Для символов х - char возвращает их код.
Для целых x возвращает само значение.
Пример
Writeln(chr(243),’ ‘,chr(222));
Результат: у Ю
Строковые процедуры
Процедура Delete
Позволяет удалить часть строки. Общий вид:
DELETE ( Строка , p , n );
где Строка – переменная строкового типа;
р – номер символа, с которого начинается удаляемая подстрока;
n – длина удаляемой подстроки.
Пример
S :=’город Санкт-Петербург’;
delete ( S ,7,6);
значением переменной S будет строка ’город Петербург’.
Процедура INSERT
Позволяет вставить подстроку в строку символов. Cтрока раздвигается. В общем виде обращение к процедуре выглядит так:
Insert (subs, s, index) ;
вставляет подстроку subs в строку s с позиции index .
Пример
S := ’город Петербург’;
INSERT (‘Санкт-‘, S ,7);
значением переменной S будет строка ’город Санкт-Петербург’.
Процедура VAL
Преобразует строку S к числовому представлению и записывает результат в переменную V .
Val(S, V, CODE)
где S – строковая константа или переменная, содержащая изображение числа;
V – переменная, которой должно быть присвоено значение числа, изображенного в строке;
CODE – возвращаемый процедурой код ошибки. Если строка может быть преобразована в число, то код ошибки равен нулю.
Пример
S:=’1234’;
VAL(S, X, A);
значение переменной X будет равно 1234, а переменной А - ноль.
Процедура STR
Преобразует число в строку.
Str ( N , S ) ;
где N– переменная, которая должна быть преобразована в строку;
S – строковая переменная.
Пример
В результате выполнения строк программы:
X:=1234;
str (X,S);
значением переменной S будет строка ‘1234’.
Цикл с символьной переменной
Переменная - параметр цикла может иметь любой порядковый тип ( целый, символьный, перечисляемый или интервальный). При этом типы начального и конечного значения должны соответствовать типу параметра цикла.
Пример
program prim;
var i:integer; en : (red, green, blue, white); {перечисляемый тип}
c : char; {символьный тип}
a: 0..10; {интервальный тип для чисел}
a: ‘c..z’; {интервальный тип для символов}
begin
for en:=red to blue do write(Ord(en):2); {выводится 0 1 2}
for c:='a' to 'z' do write(c); {выводится символы ‘abcd …xyz’}
for i :=0 to 10 do begin a:=i; write(a); end; {выводится символы ’01…910’}
end.