Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка- програм ХалЗР.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
252 Кб
Скачать
☆
  1. Описание и использование данных строкового типа

Строка – это последовательность произвольных символов алфавита. Длиной строки называется количество символов в последовательности. Длина строки не может превышать 255. Для работы со строками в языке Pascal предусмотрен строковый тип данных.

Значением величины строкового типа является строка. Константы строкового типа записываются в апострофах. Например: ’задача’, ’57+38’, ’а’, ’’ (пустая строка).

Описание строковых типов данных:

type имя типа = string; или имя типа = string[n];

var имя строки: имя типа ;

или

var имя строки: string; или имя строки: string[n];

где n – длина строки.

Если длина строки не указана, по умолчанию она принимается равной 255.

Примеры: var a: string; x: string[10];

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

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

К строкам применимы операции склеивания (конкатенации) и сравнения. Операция склеивания обозначается с помощью символа “+”, а операции сравнения – символами “=”,“<>”,“>”,“>=”,“<”,“<=”.

Операция склеивания добавляет к первой строке вторую.

Примеры: x:=’фор’; y:=’ма’;

z1:=x + y; { z1 =’форма’}

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

Примеры: ‘cb’<‘ab’ результат - false

‘9’>‘123’ результат – true

‘ab’>‘a’ результат – true

Для формирования значения строковой переменной существуют два способа.

  1. Ввод значения с клавиатуры.

  2. Использование оператора присваивания. В левой части оператора присваивания при этом должно быть имя строки, а не ее символ. Посимвольное заполнение строки (подобно заполнению массива) в языке Pascal запрещено. Значение отдельных символов строки можно изменять лишь после того, как строка сформирована.

Например: x:=’кол’; x[3]:=’м’;{x=’ком’} y:=x+’ок’ {y=’комок’}

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

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

  1. function concat (S1[,S2,…,SN]:string):string;

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

Склеивает строки S1,S2,…,SN.

Примеры: y:=concat(‘ка’,’ток’); {y=’каток’}

  1. function copy (S:string ; Index, Count:integer):string ;

Копирует из строки S Count символов, начиная с символа с номером Index.

Примеры: s:=’информатика’; a:=copy(s,3,5); {a=’форма’}

  1. function length (S:string):integer ;

Вычисляет текущую длину строки S.

Примеры: n:=length(‘каникулы’); {n=8}

  1. function pos (ST,S:string):integer ;

Отыскивает в строке S первое вхождение подстроки ST и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращает ноль.

Примеры: a:=pos(‘рок’,’строка’); {a=3}

b:=pos(‘программа’,’программирование’); {b=0}

  1. procedure delete (var S:string ; Index,Count:integer);

Удаляет Count символов из строки S, начиная с символа с номером Index.

Примеры: x:=’каток’; delete(x, 1, 2); {x=’ток’}

  1. procedure insert (ST:string ; var S:string ; Index:integer);

Вставляет подстроку ST в строку S, начиная с символа с номером Index.

Примеры: s:=’свет’; insert(‘рас’,s,1); {s=’рассвет’}

  1. procedure val (S:string ; var X: integer; var Code:integer);

или procedure val (S:string ; var X: real; var Code:integer);

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

Примеры: var a:string ; b,c:integer; d:real;

begin a:=’58’; val(a,b,c); {b=58, c=0}

a:=’27d5k’; val(a,b,c); {b=0, c=3}

val(a,d,c); {d= 5.8000000000E+01, c=0}

end.

  1. procedure str (X: integer ; var S:string);

или procedure str (X: real ; var S:string);

Преобразует число X любого вещественного или целого типов в строку символов S. В процедуре str можно указать формат вывода, аналогично процедуре write или writeln.

Примеры: var s:string ; x:integer; y:real;

begin x:=123; str(x,s); {s=’123’}

y:=123; str(y,s); {s=’ 1.2300000000E+02’}

y:=-453.68; str(y:6:1,s); {s=’-453.7’}

end.