Что возвращает функция length
В прошлый раз мы разобрали стандартные процедуры в Pascal, применимые к строковому типу данных. Сегодня я расскажу про функции, которые применяются к этому типу данных.
Первая функция, про которую я сегодня расскажу, — функция определения длины строки Length (s). Принцип этой функции очень прост. В скобочках указывается строка, длину которой нужно найти. Возвращает эта функция одно значение — количество символов из которых состоит строка. Функция Length (s), как и все функции в паскаль возвращает значение.
Пример использования функции Length (s):
Пример простейшей программы на паскаль с использованием функции pos (s1, s2):
Две, уже рассмотренные, функции возвращали значение типа integer, следующие функции, про которые я расскажу, будут возвращать тип String.
Следующая функция, применимая к типу String — функция копирования определенной подстроки из строки Copy (s, p, n). S- строка, из которой нужно скопировать, p — позиция, начиная с которой необходимо копировать, n — сколько символов надо скопировать. S — строка, типа string, p, n — целочисленные, то есть типа integer.
Пример решения задачи Паскаль, с использованием функции копирования:
На сегодня урок окончен. В уроках 19 и 20 я подробно рассказал про стандартные функции и процедуры Паскаль, применимые к строковому типу данных.
Функции LENGTH и CONCAT.
Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. Функция Concat выполняет слияние нескольких строк в одну строку. Например, если в переменной «stroka» записано слово «Turbo», а в переменной «stroka2» записано слово «Pascal», то concat(stroka,stroka2) будет равно «Turbo Pascal».
Использование функции LENGTH.
В строке №7 выводим на экран значение функции Length(stroka). Так как в переменной «stroka» записано слово «Pascal», то на экран будет выведено число 6.
Функция Concat. Данная функция выполняет слияние нескольких строк в одну строку. Эта операция аналогична операции сцепления строк (конкатенации), которую мы рассматривали в прошлом уроке. Функция Concat соединяет строки, указанные в скобках после слова Concat в одну строку.
Использование функции CONCAT
Строка №3. Записываем 4 переменные, в которых будут храниться строковые значения.
Строка №6. Переменной «stroka1» присваиваем значение «Programmirovanie».
Строка №7. Переменной «stroka2» присваиваем значение «na».
Строка №8. Переменной «stroka3» присваиваем значение «Pascal».
Строка №9. В переменную «stroka» записываем значение функции Concat(stroka1,stroka2,stroka3). Она соединит значения, записанные в переменных stroka1,stroka2,stroka3.
Строка №10. Выводим на экран результат.
Дополнение к материалу.
В случае если при соединении строк длина получившейся строки превысит 255 символов, то строка будет усечена после 255-ого символа.
Функция Length
Подпишись на новости, чтобы ничего не пропустить
Функция Length в Паскале определяет длину строки. Синтаксис:
function Length(S : AStringType) : Integer;
Второй вариант для динамических массивов:
function Length(A : DynArrayType): Integer;
Функция Length может вычислять длину строки для типов AnsiString и WideString.
Для динамических массивов функция возвращает количество элементов в массиве.
Функция определения длины строки Length также поддерживает параметры типа PChar и PWideChar. В этом случае она работает также, как функции StrLen и WStrLen соответственно. В этом случае функция вычисляет длину строки с нулевым окончанием (с завершающим нулём), а время её выполнения пропорционально длине строки, потому что завершающий нулевой символ ищется путём последовательного перебора всех символов строки.
Как определить длину строки в Паскале
Думаю, уже понятно, что сделать это можно с помощью функции Length. Например, так:
Однако есть и другой способ, о котором мало кто знает. Правда, этот способ можно использовать только с типом ShortString. Но в большинстве случаев этого строкового типа вполне достаточно.
Этот способ позволяет немного сэкономить процессорное время, так как для его использования не требуется тратить это время на вызов функции.
А суть его проста. Дело в том, что в типе ShortString длина строки хранится в нулевом элементе строки. Как известно, в Паскале отсчёт символов в строке начинается с единицы. Однако в типе ShortString есть и нулевой элемент, в котором и хранится длина строки:
Проблема только в том, что эта длина строки хранится как ASCII-код символа, и получить этот элемент можно только как символ. Но это не беда, потому что мы уже умеет преобразовывать символ в его код с помощью функции Ord.
Пример программы см. в конце статьи.
Как задать длину строки в Паскале
В некоторых случаях для экономии памяти можно задать фиксированную длину строки.
Делать это можно, когда вы точно уверены, что для ваших нужд в вашей программе потребуется, например, строка, в которой будет не более какого-то определенного количества символов.
Задать длину строки в Паскале можно так:
Затем с этими переменными можно работать как с обычными строками. Только следует помнить, что при попытке поместить, например, в s04 строку длиной более 4 символов, в эту строку будут помещены только первые четыре символа, а остальные будут отброшены.
Ниже приведён пример программы, где рассмотрены все вышеописанные случаи:
Информатика. Программирование.
Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. Функция Concat выполняет слияние нескольких строк в одну строку. Например, если в переменной «stroka» записано слово «Turbo», а в переменной «stroka2» записано слово «Pascal», то concat(stroka,stroka2) будет равно «Turbo Pascal».
Использование функции LENGTH.
В строке №7 выводим на экран значение функции Length(stroka). Так как в переменной «stroka» записано слово «Pascal», то на экран будет выведено число 6.
Функция Concat. Данная функция выполняет слияние нескольких строк в одну строку. Эта операция аналогична операции сцепления строк (конкатенации), которую мы рассматривали в прошлом уроке. Функция Concat соединяет строки, указанные в скобках после слова Concat в одну строку.
Использование функции CONCAT
Строка №3. Записываем 4 переменные, в которых будут храниться строковые значения.
Строка №6. Переменной «stroka1» присваиваем значение «Programmirovanie».
Строка №7. Переменной «stroka2» присваиваем значение «na».
Строка №8. Переменной «stroka3» присваиваем значение «Pascal».
Строка №9. В переменную «stroka» записываем значение функции Concat(stroka1,stroka2,stroka3). Она соединит значения, записанные в переменных stroka1,stroka2,stroka3.
Строка №10. Выводим на экран результат.
Дополнение к материалу.
В случае если при соединении строк длина получившейся строки превысит 255 символов, то строка будет усечена после 255-ого символа.
Особенности свойства length массивов
Массивы в JavaScript индексируются с нуля:
Cвойство length массива (который является экземпляром объекта типа Array ) устанавливает или возвращает число элементов этого массива, включая пустые (т.е. не имеющие значений) элементы.
Свойство length массива:
Разрежённый массив — абстрактное представление обычного массива, в котором данные представлены не непрерывно, а фрагментарно, при этом пропущенные элементы индексов не имеют:
Особенности свойства length массива:
При использовании значения length большего, чем максимальный индекс, массив станет разреженным.
Замечание 4: Свойству length можно присвоить нечисловой тип данных, при этом JavaScript преобразует примитив в число. Если результат преобразования равен NaN или отрицательному числу, то выдается ошибка Uncaught RangeError: Invalid array length («недопустимая длина массива»):
Взаимосвязь свойства length с числовыми свойствами массивов
Уменьшение свойства length приводит к удалению элементов массива:
Добавление элемента в конец массива (метод push() )
Метод push не является привязанным к типу Array : этот метод может быть вызван или применён и к массивоподобным объектам.
Особенности метода push():
Функция, которая принимает значение переменной n и возвращает массив, заполненный числами от 1 до n
Добавление элемента в начало массива (метод unshift() )
Метод unshift() не является привязанным к типу Array : этот метод может быть вызван или применён и к массивоподобным объектам.
Удаление элемента с конца массива (метод pop() )
Метод pop() не является привязанным к типу Array : этот метод может быть вызван или применён и к массивоподобным объектам.
Удаление элемента из начала массива (метод shift() )
Обрезка массива ( метод slice() )
Метод slice() возвращает новый массив, содержащий копию части исходного массива.
Синтаксис метода slice() :
Параметры метода slice ():
Возвращаемое значение:
Метод slice() не изменяет исходный массив, а возвращает новую «одноуровневую» копию, содержащую копии элементов, вырезанных из исходного массива.
Элементы исходного массива копируются в новый массив по следующим правилам: