Что значит length в паскале

Что значит length в паскале

Задача

Определить длину строки, введенной пользователем.

Решение

s – строка;
len – ее длина.

Алгоритм решения задачи:

  1. Введенная пользователем строка записывается в переменную s.
  2. Результат выполнения функции length(s) сохраняется в переменной len и, затем, выводится на экран.

Встроенная функция Length(длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной.

write (‘Введите, пожалуйста, слово: ‘);

writeln (‘Это слово состоит из ’, length(word) : 3, ‘ букв!’)

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

Функция Upcase

Функция Upcaseпозволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа, поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

word := ‘Фирма Microsoft’;

for i := 1 to length (word) do word [i] := upcase (word[i]);

Русские литеры не могут обрабатываться этой функцией, поэтому в результате работы этой программы на терминал выдается строка, содержащая большие английские и маленькие русские буквы.

Функция Сopy

Функция Сopyпозволяет копировать фрагмент некоторой строки из одной переменной в другую. Вызывая функцию copy, необходимо указывать следующие параметры: 1) имя строки, из которой должен извлекаться копируемый фрагмент; 2) позицию в строке, начиная с которой будет копироваться фрагмент; 3) число копируемых символов.

w1,w2,w3 : string [20];

w1 := copy (ws, 1, 4); writeln (w1);

w2 := copy (ws, 5, 4); writeln (w2);

w3 := copy (ws, 10, 3); writeln (w3);

В результате выполнения программы на экран выводится:

Сообщения об ошибке не будет в случаях, если начальная или конечная позиции копируемого фрагмента находятся вне пределов исходной строки символов. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором – фрагмент от начальной позиции копирования до конца исходной строки.

Читайте также:  Как на ios сделать скриншот

Функция Pos

С помощью функции Posосуществляется поиск определенного фрагмента в строке. Если заданный фрагмент в строке присутствует, то функция возвращает номер позиции в строке, с которой фрагмент начинается. Если в строке фрагмент не найден, то функция возвращает ноль.

sw := ‘Эл’; p := Pos (sw,ws); writeln(p);

sw := ‘три’; p := Pos (sw,ws); writeln(p);

sw := ‘к’; p := Pos (sw,ws); writeln(p);

В результате выполнения программы на экране появляется:

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

Процедуры Insert и Delete

Процедура Insertвставляет в исходную строку какую-либо другую строку, начиная с указанной позиции. Оператор Insert (w1, ws, 4); вставит строку w1 в строку ws перед 4-ой позицией.

Процедура Deleteудаляет в исходной строке фрагмент определенной длины, начинающийся с указанной позиции. Оператор Delete (ws, 2, 3); удаляет из строки ws фрагмент, состоящий из трех символов и начинающийся со второй позиции.

ws := ‘компьютеризация’; writeln (ws);

delete (ws, 1, 7); writeln (ws);

delete (ws, 3, 2); writeln (ws);

sw := ‘Г’; insert(sw, ws, 1); writeln (ws);

sw := ‘не’; insert(sw, ws, 3); writeln (ws);

В результате работы данной программы на экран будут выведены следующие строки:

Во избежание ошибок при применении процедур Insert и Delete указанные в списке параметров позиции должны обязательно присутствовать в обрабатываемых строках.

Функция Length в Паскале определяет длину строки. Синтаксис:

function Length(S : AStringType) : Integer;

Второй вариант для динамических массивов:

function Length(A : DynArrayType): Integer;

Функция возвращает длину строки S, которая ограничена значением 255 для коротких строк (в классическом Паскале — это максимальная длина строки). Если S — это пустая строка, то функция возвращает 0.

Читайте также:  Xiaomi bluetooth тв звуковая панель

Функция Length может вычислять длину строки для типов AnsiString и WideString.

Для динамических массивов функция возвращает количество элементов в массиве.

Функция определения длины строки Length также поддерживает параметры типа PChar и PWideChar. В этом случае она работает также, как функции StrLen и WStrLen соответственно. В этом случае функция вычисляет длину строки с нулевым окончанием (с завершающим нулём), а время её выполнения пропорционально длине строки, потому что завершающий нулевой символ ищется путём последовательного перебора всех символов строки.

Как определить длину строки в Паскале

Думаю, уже понятно, что сделать это можно с помощью функции Length. Например, так:

Однако есть и другой способ, о котором мало кто знает. Правда, этот способ можно использовать только с типом ShortString. Но в большинстве случаев этого строкового типа вполне достаточно.

Этот способ позволяет немного сэкономить процессорное время, так как для его использования не требуется тратить это время на вызов функции.

А суть его проста. Дело в том, что в типе ShortString длина строки хранится в нулевом элементе строки. Как известно, в Паскале отсчёт символов в строке начинается с единицы. Однако в типе ShortString есть и нулевой элемент, в котором и хранится длина строки:

Проблема только в том, что эта длина строки хранится как ASCII-код символа, и получить этот элемент можно только как символ. Но это не беда, потому что мы уже умеет преобразовывать символ в его код с помощью функции Ord.

Пример программы см. в конце статьи.

Как задать длину строки в Паскале

В некоторых случаях для экономии памяти можно задать фиксированную длину строки.

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

Читайте также:  Как обнулить knox на samsung

Задать длину строки в Паскале можно так:

Затем с этими переменными можно работать как с обычными строками. Только следует помнить, что при попытке поместить, например, в s04 строку длиной более 4 символов, в эту строку будут помещены только первые четыре символа, а остальные будут отброшены.

Ниже приведён пример программы, где рассмотрены все вышеописанные случаи:

Ссылка на основную публикацию
Чем открыть файл с расширением dat
После установки каких-нибудь программ, получения почты при помощи почтовых клиентов, на компьютере создаются .dat файлы. Чаще всего они почти не...
Фото с листком для вк
Сигна в ВК – это просто фотография человека с листком бумаги, на котором обычно написано чье-то имя. Часто надписи делают...
Фото спортивных мужчин 40 лет
17. Джерард Батлер, 48 лет (kinopoisk) «Законопослушный гражданин» Джерард Батлер когда-то работал официантом, демонстратором игрушек и даже юристом. Он также...
Чем отличается frontend от backend
Переводы , 13 апреля 2017 в 19:58 Мая Устинова Вы наверняка уже слышали эти модные в сфере программирования слова «фронтенд»...
Adblock detector