Урок 17 – Символы и строки

В Pascal есть два типа данных для работы с текстом:

char: символьный тип;
string: строка.

Символьный тип.

Значением символьного типа char является один символ. Каждому символу соответствует код символа – число в диапазоне от 0 до 255. Т.е. в памяти компьютера все символы хранятся как числа, а уже компилятор отображает их как символы. Тоже самое и с типом boolean. Т.е. все простые типы компьютер хранит как числа.

Над символьными переменными можно проводить операции отношений (=, <>, <,>, <=, >=), так как все символы соответствуют какому-то числу, и, соответственно, одно число может быть больше другого. Например, любая заглавная буква меньше чем строчная, так как заглавные идут первыми по порядку от 0 до 255, потом идут строчные.

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

chr(x) – возвращает значение символа по его коду;
ord(ch) – возвращает код заданного символа;
pred(ch) – возвращает предыдущий символ;
succ(ch) – возвращает следующий символ,
upcase(ch) – преобразует строчную букву в заглавную. Обрабатывает буквы только латинского алфавита.

Например:

chr(‘А’) = 65;
ord(128) = ‘Б’;
pred(‘Б’) = ‘А’;
succ(‘Г’) = ‘Д’,
upcase(‘n’) = ‘N’.

Давайте для примера напишем программу которая выводит символ на экран.

Как видите, здесь ничего сложного. Переходим к строкам.

Строковой тип

Строка – это последовательность (или набор) символов, т.е. в Pascal (да и в других языках) строка является одновременно простым типом (можно выводить значение, написав имя переменной в операторе Write()) и массивом (т.е. структурным типом, так как это набор символов). Я же все таки отношу его к структурным типам.

При создании переменной типа string (строка), тоже нет ни сложного:

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

Как я уже писал в одной из предыдущих лекциях знак “+” соединяет строки между собой. Также доступны операции отношений. В этом случае две строки сравниваются между собой слева направо, например, если мы сравниваем две строки: “привет, Мир!” и “привет, мир!”, то сравниваться будут каждый символ слева на право: “п” с “п”, “и” с “и”, пока сравнение не дойдет до первого несовпадающего символа, у нас это “М” и “м”. И там уже будут сравниваться кода этих символов. Если все символы одинаковы, то при сравнение этих строк с помощью операции “=”, в результате даст “true”.

Процедуры для работы со строками.

Процедуры удаления и вставки символов в строке вызываются следующим образом:

delete(st, poz, n) – удаление n символов строки st, начиная с позиции poz. Если значение poz больше размера строки, то ничего не удалится.

insert(str1, str2, poz) – вставка строки str1 в строку str2, начиная с позиции poz.

Функции для работы со строками.

length(st) – вычисляет длину строки в символах. Возвращает число.

copy(st, poz, n) – выделяет из строки st подстроку длинной в n символов, начиная с позиции poz.

conсat(st1,st2, …, stn) – выполняет сцепление строк st1, st2, stn в том порядке, в каком они указаны в списке параметров.

pos(st1, st2) – обнаруживает первое появление в строке st2, подстроки st1. Возвращает число.

Процедуры преобразования типов

str(number, st) – преобразование числа number в строку и присвоение ее st.

val(st, number, code) – преобразует значение st в число и присваивает ее number. Code – это целочисленная переменная, которая будет содержать число в случае ошибки или ее отсутствии. Например, если все пройдет успешно, и st переведется в число, то code будет содержать значение 0, а если нет, то code будет содержать позицию первого ошибочного символа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *