А. В. Розина программирование на паскале методическое пособие

Вид материалаМетодическое пособие

Содержание


Тема 7. Переменные типа CHAR
Тема 8. Строки
Операция отношения ( = , < > , > , = , < = )
Операция сцепления ( + )
CONCAT (s1,s2,...,sn)
Подобный материал:
1   2   3   4   5   6   7   8   9   10

Тема 7. Переменные типа CHAR



Значениями символьного типа являются элементы из набора символов. В разделе описания переменных используется стандартный идентификатор CHAR:


VAR W, T, L : CHAR ;


Каждая переменная данного типа может принимать значение только одного символа. Символьные значения могут меняться в зависимости от способа кодировки, принятого в конкретной ЭВМ. Наиболее распространенный – ASCII (American Standard Code for Information Interchange - американский стандартный код обмена информацией).

Символы, заключенные в апострофы, являются константами символьного типа. Для представления самого апострофа он повторяется дважды. Например,

'A' , '7' , ':' , ''''


Все символы в стандарте ASCII связно упорядочены:

'0' , '1' , ... ,'9' , 'A' , 'B' , ..., 'Z' , 'a' , 'b' ,...,'А' , 'Б' , ..., 'Я' , 'а' , 'б' , ... ,'я'.

Каждому символу алфавита соответствует числовой код от 0 до 255. Символы с кодами от 0 до 127 составляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM-совместимых компьютерах. Символы с кодами от128 до 255 составляют так называемую национальную кодовую таблицу.

Над символьными переменными не определены никакие операции, кроме сравнения. Из двух символов меньший тот, который встречается в ASCII таблице раньше. Символьные переменные могут участвовать в чтении, печати, а также присутствовать в операторе присваивания.

Пример,

CH := 'A';

READ (CH1,CH2);

IF CH1 < CH2 THEN K := 1 ELSE K := 0;

WRITE (CH1);


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


ORD ( C )

дает порядковый номер символа, хранящегося в переменной С. Например, I := ORD ( ' : ' ) ;

Переменная I примет значение 58, порядковый номер символа двоеточие.

CHR ( R )

дает символ с порядковым номером R (R – целая).

Например, C := CHR (128); переменная С примет значение, равное символу 'Б'.

Замечание.

CHR (ORD (C) ) = C - всегда.

ORD ( CHR ( R ) ) = R - если R не выходит за пределы целых значений, в которые отображается множество символов.

Тема 8. Строки



Строка – это последовательность символов. В строке может быть максимум 255 символов, минимум 0 символов. Для строки из N символов отводится N+1 байт: N байт для хранения символов в строке и 1 байт для значения текущей длины строки. В описательной части программы может быть указана явно длина строки в квадратных скобках. Если она не указана, то предполагается, что она равна 255 символов.

Пример.

VAR S : STRING;

A : STRING [10];

Под строку S резервируется 255 символов, а под строку А 10 символов.


Заметим, что в действительности длина строки в программе может быть и меньше указанных значений, но не больше!

К отдельному символу в строке можно обратиться по номеру (индексу). Индекс определяется выражением целого типа, которое записывается в квадратных скобках. Например, S [i].


Над строками определены следующие операции:
  1. Операция отношения ( = , < > , > , <,> = , < = )

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

'4' >'234', т.к. код символа '2 '< кода символа '4'
  1. Операция сцепления ( + )

Применяется для сцепления строк в одну строку. Длина результирующей строки не должна превышать 255 символов.

A := A +'ко' ;

S:= 'кол'+'о'+'кол';


Над строками определены следующие функции:
  1. CONCAT (s1,s2,...,sn)

Выполняет сцепление строк в том порядке, в каком они указаны в параметрах.

A := CONCAT (s,t);
  1. COPY (S,I,K)

Выделяет из строки S подстроку из K символов, начиная с I-го.

A := COPY ('крокодил' , 4,3);

В результате строка А будет содержать 'код'.
  1. LENGTH (S)

Вычисляет текущую длину строки. Результат целого типа.

K := LENGTH ('каникулы');

В результате переменная К примет значение 8.
  1. POS (S,T)

Вычисляет номер позиции, с которого строка S входит первый раз в строку T. Если вхождение не обнаружено, результат =0.

I := POS ('ом', 'компьютер' );

В результате переменная I примет значение 2.


В языке Паскаль реализованы 4 стандартные процедуры обработки строк.
  1. DELETE (S,J,K)

Из строки S удаляется К символов, начиная с J-го.

S:='таракан';

DELETE (s,5,2);

Это аналогично оператору присваивания S:='таран';
  1. INSERT (S,T,J)

Строка S вставляется в строку Т с J-ой позиции.

Т:='таран';

INSERT ('ка',T,5);

Это аналогично оператору присваивания T:='таракан';
  1. STR (K,S)

Преобразует числовое значение K в строку S

STR (564,S);

Это аналогично оператору присваивания S:='564';
  1. VAL (S,K,I)

Преобразует значение строки S в величину целого или вещественного типа K. I- переменная целого типа. I=0, если ошибки при преобразовании не обнаружено, в противном случае I будет содержать номер позиции первого ошибочного символа, в этом случае значение K не определено.