Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные Паскаль.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
780.93 Кб
Скачать

Concat ('abc', 'def');

эквивалентна действию оператора S6 := S6 + 'd' + 'e' + 'f';

Строковая функция Length (St) – "длина" – имеет тип byte и возвращает текущую длину строки St. Функцию Length удобнее использовать вместо выражения St [0], т.к. оно не даёт никаких преимуществ, а только затрудняет чтение текста программы.

Строковая функция Copy (St, m, n) – "копирование" – имеет тип string и возвращает подстроку длиной n символов из строки St, начиная с символа номера m. Параметры m и n должны имеет тип integer, параметр St – тип string.

Строковая функция Pos (SubSt, St) – "позиция" – имеет тип byte и предназначена для поиска в строке St первого участка текста, совпадающего с текстом строки ("подстроки") SubSt. Если такой участок найден, то функция получит номер позиции, с которой начинается совпадение текстов. Если совпадения нет, то функция получит значение "ноль".

Строковая процедура Delete (St, m, n) – "удаление" – удаляет n символов из строки St, начиная с позиции m. Параметры m и n должны имеет тип integer или byte, параметр St – тип string.

Строковая процедура Insert (SubS, S, n) – "вставка" – вставляет подстроку SubS в строку S, начиная с позиции n. Параметр n должен иметь тип integer или byte.

Строковая процедура Str (X [: width [: decimals]], St) преобразует число Х любого вещественного или целого типов в строку символов St. Такое же преобразование делает процедура Writeln перед выводом. Если количество полей width под строковое представление значения Х не задано, то целое число будет занимать фактическое количество позиций, а вещественное будет записано в показательной форме в виде мантиссы и порядка числа и займёт 22 позиции (16 – мантисса, 8 – порядок). Если количество полей width под строковое представление значения Х задано, то целое число будет занимать width позиций. Если Х – вещественное число, то оно будет представлено в десятичной форме и также занимать width позиций, включая decimals позиций после десятичной точки.

Строковая процедура Val (St, x, y) преобразует строковое изображение числа St в число x целого или вещественного типа. Параметр y содержит признак ошибки преобразования. Если преобразование прошло успешно, то в x помещается результат преобразования, а переменная y будет равна 0. В противном случае параметр y будет содержать номер позиции строки St, где обнаружен ошибочный символ, а содержимое x не изменится.

В Паскале различают ведущие и ведомые пробелы. Пробел в начале строки перед символом называют ведущим, а в конце строки после конечного символа – ведомым.

При обращении к процедуре Val ведомые пробелы недопустимы. Поэтому, например, обращение

Val (' 125', x, y);

будет успешным, x станет равным 125, y – 0, а обращение

Val ('125 ', x, y);

будет ошибочным: значение x станет равным 125, т.е. не изменится, а y станет равным 4, т.е. укажет на ошибку в четвёртой позиции.

Если имеет место обращение

Val ('3,1416', x, y);

то x станет равным3,1416, т.е. не изменится, а y станет равным 2, т.к. имеет место ошибка: вместо десятичной точки поставлена запятая. Если же написано

Val ('3.1416', x, y);

то х будет равен 3.1416, а y станет равным нулю.

Кроме того, к строкам можно применять функцию Upcase (Ch) типа char, которая преобразует латинскую букву Ch в заглавную. Если значение символа Ch не является латинской буквой, то функция Upcase его не изменит.

К строкам также применимы операции отношения =, <>, <, <=, >, >=. Сравнение строк происходит посимвольно слева направо. При этом один символ считается больше другого, если его код в таблице ASCII больше.

Как только в одной из строк впервые обнаружится больший символ, то эту строку считают большей и на этом их сравнение заканчивают.

Строки считаются равными, если имеют одинаковую длину и у них совпадают соответствующие символы.

Если длина одной строки больше, чем у другой, то строка большей длины считается большей.

Например, приведённые далее соотношения являются правильными:

'A' > '1', 'abcd' < 'acbd', 'abcd' > 'abc', 'abc ' = 'abc', 'c' < 'bbb'.

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