IPB

> Лекция №5.1: Символы и строки. Множества
Чат
Форум
Загрузка...
 

страницы: 1 2 3 4 5

Приёмы работы с символьными и строковыми данными. Использование множеств. Задание больших множеств массивами.

Содержание

Символы и строки

Две предыдущие лекции были посвящены произвольным массивам. Перейдём теперь к изучению массивов специального вида — линейных массивов, состоящих только из символов, — строк. Кроме того, сами символы мы тоже не обойдём вниманием.

Описание строк

В разделе var строки описываются следующим образом1:

var <имя_строки>: string[[<длина>]]2

Максимальная длина строки — 255 символов. Нумеруются её компоненты начиная с 0, но этот нулевой байт хранит длину строки.

Если <длина> не указана, то считается, что в строке может храниться максимум 255 символов. Поэтому для экономии памяти можно при необходимости точно указывать максимальную длину используемых строк.

Примеры описаний:

var s1: string[10]; (*строка максимальной длиной 10 символов*)
 s2: string; (*строка максимальной длиной 255 символов*)

Необходимо отметить, что один символ и строка длиной в один3 символ

var c : Char;
 s : String[1];

совершенно не эквивалентны друг другу. Вне зависимости от своей реальной длины, строка относится к конструируемым структурированным типам данных, а не к базовым порядковым (см. лекцию 2).

Символ–константа и строка–константа

Неименованные константы

В тексте программы на языке Pascal последовательность любых символов, заключённая в апострофы, воспринимается как символ или строка. Например:

c := 'z';  {c : Char}
s := 'abc'; {s : String}

Константе автоматически присваивается «минимальный» тип данных, достаточный для её представления: Char или String[k]. Поэтому попытка написать

c := 'zzz'; {c : Char}

вызовет ошибку уже на этапе компиляции.

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

Пустая строка задаётся двумя последовательными апострофами:

st := '';

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

s := 'Don''t worry about the apostrophe!';

Если теперь вывести на экран эту строку, то получится следующее:

Don't worry about the apostrophe!
Нетипизированные константы

Все правила задания символов и строк как неименованных констант остаются в силе и при задании именованных нетипизированных констант в специальном разделе const. Например:

const c3 = ''''; {это один символ — апостроф!}
 s3 = 'This is a string';
Типизированные константы

Типизированная константа, которая будет иметь тип Char или String, задаётся в разделе const следующим образом:

const c4 : Char = ''''; {это один символ — апостроф!}
  s4 : String[20] = 'This is a string';

Действия с символами

Операции

Результатом унарной операции

#<положительная_неименованная_константа_целого_типа>

является символ, номер которого в таблице ASCII соответствует заданному числу. Например,

#100  = 'd'
#39   = '''' {апостроф}
#232  = 'ш'
#1000 = 'ш' {потому что (1000 mod 256)= 232}

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

страницы: 1 2 3 4 5

Примечания

  1. ^ Как описывать символьные переменные, мы рассказали в лекции 2.
  2. ^ Напомним, что жирная квадратная скобка является стандартным элементом синтаксиса, а обычная — указанием на необязательность заключённых в неё элементов.
  3. ^ На самом деле «строка длиной в один символ» имеет две компоненты: s[0] (длина строки = 1) и s[1] (собственно символ)
 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"