Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pril1.doc
Скачиваний:
26
Добавлен:
31.05.2015
Размер:
604.67 Кб
Скачать

Строковые переменные

Cтроковые константы – это последовательность символов заключенных в апострофы.

1. CONST S='Информатика'

2. TYPESTROKA:=STRING; (256 символов) илиSTRING[n], гдеn– число символов.

VAR A, B: STROKA;

3. VAR A, B: STRING [ n ];

К любому элементу строки можно обратиться по имени строки с указанием соответствующего индекса.

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

STR1, STR2, STR3 – строковые переменные.

1. Удаление и вставка

DELETE (STR1, n, m);

Процедура, которая удаляет из строки STR1, подстроку длинной m, начиная с позиции n.

STR1:='Мышечка';

DELETE (STR1, 4, 2);

- Нулевой индекс при обращении с элементом строки хранит информацию о длине строки.

2. INSERT (STR1, STR2, n);

Эта процедура вставляет в строку STR1, подстроку STR2, начиная с позиции n.

STR1:='Мышка'; STR2:='еч';

INSERT (STR1, STR2, 4);

или INSERT (STR1, 'еч', 4);

Функции:

  1. LENGTH (STR1): INTEGER;

  2. Копирование: COPY (STR1, n, m);

Функция, которая выделяет из строки STR1, подстроку длиной m, начиная с позиции n.

  1. CONCAT (STR1, STR2);

Конкатация – сцепление (сложение, объединение).

=STR1 + STR2

К переменным строкового типа применимы операции сравнения (=, , >, <, ...)

Сравнение строк идет по кодам их символов. Строки называются равными, если они совпадают по фактической, а не по объявленной длине и состоят из одинаковых символов.

' abc ' < 'cba'

  1. STR (<число>, <размер>:<количество>, <строка>);- процедура, которая для заданного числа формирует представляющую его строку, указанного размера с заданным количеством знаков в дробной части, строка должна быть задана, как имя переменой, параметры, размер и количество могут отсутствовать.

Пример:

STR(19, 48: 5: 2,STR1);

Обратное преобразование осуществляется процедурой:

  1. VAl (<строка>, <число>, <номер>);

Используя строку из цифр без пробелов, формируют число (машинное представление) или выдает номер ошибочного знака в строке.

Пример:

STR1:='1011.01';

VAL (STR1, X, N);

Множеством значений CHAR являются символы, упорядоченные согласно таблице расширенного кода. Коды с 0 по 31 – служебные. Если нужно по коду получить символ используют функцию CHR:

CHR (<код>), или # код.

Пример:

а) CHR (98) = #98 = 'b'

б) операторы вывода:

WRITELN ('MOSCOW');

WRITELN ('MO', #115#99,'OW');

WRITELN (CHR(77), CHR(111), CHR(115), CHR(99), CHR(111), CHR(119));

WRITELN (#77#111#115#99#111#119);

Выдача звукового сигнала: WRITE(#7);

Обратное преобразование осуществляется с помощью функции ORD.

ORD (символ) =код;

Для целых чисел

ORD (5) = 5;

Функция UPCASE (<символ>); возвращает символ – латинскую букву в верхнем регистре или символ, если у него нет представления в верхнем регистре или букву кириллица.

Пример: a)Дана строка символов. Необходимо подсчитать общее количество символов + - *

PROGRAM PRIMER;

CONST N=10;

VAR S: STRING [ N ];

I, M: INTEGER;

BEGIN

READLN (S); M:=0; {Строковые константы вводятся и выводятся без апострофов}

FOR I:=1 TO LENGTH (S) DO

BEGIN

IF (S [ I ]='+') OR (S [ I ]='-') OR (S [ I ]='*') THEN M:=M+1 END;

WRITELN (M);

END.

б) Дано: строка символов, группы символов в данной строке разделены пробелами (одним или несколькими) – эти группы будем называть словами. Необходимо подсчитать количество слов.

PROGRAM PR1;

TYPE STROKA:= STRING;

VAR C: STROKA;

I, K: INTEGER;

BEGIN

READLN (C); K:=0;

FOR I:=1 TO LENGTH (C) DO

BEGIN

IF C [ I ] = ' ' THEN

IF C [ I-1 ] <> ' ' THEN K:=K+1;

END;

Вопросы для закрепления:

1) Определить значение символьной переменной d после выполнения следующих операторов:

а) c:= '+'; d:=c;

б) c:= '+'; d:='c';

2) Вычислить S-сумму порядковых номеров всех букв входящих в слово SUM.

3) Напечатать заданный непустой текст,удалив из него все цифры и удвоив знаки плюс и минус.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]