Порядок строк программы паскаль

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

Строковой тип описывается ключевым словом string и состоит из последовательно расположенного набора элементов символьного типа char . Строки в PascalABC.NET, в отличии от других компиляторов языка Паскаль, могут иметь произвольную длину.

Строковой тип можно задать двумя способами: непосредственно в разделе описания переменных или через определенный строковой тип, например:

  • type
  • str = string[100];
  • var
  • s: string;
  • s1: string[10];
  • s2: str;

Строку можно инициализировать, как и переменные других типов, в разделе описания переменных, например:

s4: string := ‘New string’;

Операции над строками в Паскаль

Над строками определены операции присваивания, конкатенации и операции отношения.

Сравнение строк происходит лексикографически слева направо до первого несовпадающего символа:

Pascal | Задачи со строками #1

  • строки равны, если они посимвольно эквивалентны и имеют одинаковую длину: ‘abc’ =’abc’ ;
  • первая строка больше второй строки, если:
  • ее первый несовпадающий символ имеет больший код: ‘abd’ > ‘abc’ ;
  • они посимвольно эквивалентны и первая строка длиннее второй ‘abc’ > ‘ab’ .

Операция конкатенация выполняет слияние нескольких строк в одну, например:

‘Pascal’ + ‘ABC’ + ‘.NET’ = ‘PascalABC.NET’;

Внимание: операции отношения имеют более низкий приоритет в сравнении с операцией конкатенации (т. е. в строковом выражении ‘ab’ + ‘d’ > ‘abc’ сначала произойдет слияние строк в левой части и только потом выполнится операция сравнение).

В PascalABC.NET для строк можно использовать расширенный оператор присваивания += , например:

  • var s: string := ‘PascalABC.’;
  • s += ‘NET’;
  • сложение с числом (при этом число предварительно преобразуется в строковое представление), например:
  • s1 := ‘Масса = ‘ + 100 + ‘ кг’;
  • s2 := ‘Pi = ‘ + 3.14;
  • s1 := ‘a’ * 10;
  • s2 := 10 * ‘abc’;
Читайте также:
Electron не является внутренней или внешней командой исполняемой программой или пакетным файлом

Для обращения к отдельным символам строки, также, как и в массивах, можно использовать индекс: запись s[i] дает доступ к i -тому символу в строке, нумерация начинается с единицы.

  • var s: string := ‘PascalABC.NET’;
  • for i := 1 to Length(s) do
  • if i mod 2 = 0 then s[i] := ‘0’;
  • writeln(s);

Если индекс i выходит за пределы длины строки, то генерируется исключение, при этом программного прерывания не происходит.

Для обработки строк в языке программирования Паскаль используется набор стандартных процедур и функций (в примере выше применяется стандартная функция Length(s) , возвращающая длину строки).

Источник: informatics-lesson.ru

Строки | Информатика Паскаль #18 | Инфоурок

Строковый тип данных в Паскале

При работе со строками, как правило, возникает необходимость выполнять их копирование, вставку, удаление или поиск. Для эффективной реализации этих действий в Паскале предусмотрены стандартные процедуры и функции. Они кратко описаны ниже. Функция Concat (s1, s2, . sn) возвращает строку, являющуюся слиянием строк s1, s2, . sn.

Функция Copy (s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s. Процедура Delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len. Процедура Insert (subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start. Функция Length (s) возвращает фактическую длину строки s, результат имеет тип byte.

Функция Pos (subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s. Процедуры преобразования типов Процедура Str (x, s) преобразует числовое значение x в строку s, при этом для x может быть задан формат, как в процедурах вывода write и writeln. Например: x := 123; s := str(x:6,s); — Результат: s = ‘ 123’. Процедура Val (s, x, errcode) преобразует строку s в значение числовой переменной x, при этом строка s должна содержать символьное представление числа. В случае успешного преобразования переменная errcode равна нулю. Если же обнаружена ошибка, то errcode будет содержать номер позиции первого ошибочного символа, а значение x не определено.

Читайте также:
К вредоносным программа компьютера не относятся

Пример.

Задача: выяснить сколько пробелов в введенной строке. program Probely; var s: string; i , n: integer; begin n := 0; writeln(‘Введите исходную непустую строку:’); readln(s); for i:=1 to length(s) do if s[i]=’ ‘ then n := n+1; writeln(‘В строке «‘,s,’ ‘,n,’ пробелов.’); end.

Источник: studfile.net

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

Строки имеют тип string , состоят из набора последовательно расположенных символов char и используются для представления текста.

Строки могут иметь произвольную длину. К символам в строке можно обращаться, используя индекс: s[i] обозначает i -тый символ в строке, нумерация начинается с единицы. Если индекс i выходит за пределы длины строки, то генерируется исключение.

Операция + для строк означает конкатенацию (слияние) строк. Например: ‘Петя’+’Маша’ = ‘ПетяМаша’ .

Расширенный оператор присваивания += для строк добавляет в конец строки — левого операнда строку — правый операнд. Например:

var s: string := ‘Петя’;
s += ‘Маша’; // s = ‘ПетяМаша’

Строка может складываться с числом, при этом число предварительно преобразуется к строковому представлению:

s := ‘Ширина: ‘ + 15; // s = ‘Ширина: 15’
s := 20.5 + »; // s = ‘20.5’
s += 1; // s = ‘20.51’

Над строками и целыми определена операция * : s*n и n*s означает строку, образованную из строки s , повторенной n раз:

s := ‘*’*10; // s = ‘**********’
s := 5*’ab’ // s = ‘ababababab’
s := ‘d’; s *= 3; // s = ‘ddd’

Над строками определена также операция взятия среза.

Строки реализуются типом System.String платформы .NET и представляют собой ссылочный тип. Таким образом, все операции над строками унаследованы от типа System.String . Однако, в отличие от .NET — строк, строки в PascalABC.NET изменяемы. Например, можно изменить s[i] (в .NET нельзя). Более того, строки string в PascalABC.NET ведут себя как размерные: после

строка s2 не изменится. Здесь происходит так называемое копирование при записи (Copy On Write) — при изменении символа строки создаётся её копия, в результате s1 и s2 начинают ссылаться на разные участки памяти.

Читайте также:
Как работать с таблицей в программе word

По умолчанию строки инициализируются пустой строкой (в .NET — значением nil). Однако, строке можно присвоить nil , что необходимо для работы с NET- кодом.

Кроме того, для совместимости с Delphi Object Pascal в PascalABC.NET реализованы короткие строки вида string[n] .

Источник: pascalabc.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru