Читайте также:
|
|
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.
3. CONCAT (STR1, STR2);
Конкатация – сцепление (сложение, объединение).
=STR1 + STR2
К переменным строкового типа применимы операции сравнения (=, , >, <,...)
Сравнение строк идет по кодам их символов. Строки называются равными, если они совпадают по фактической, а не по объявленной длине и состоят из одинаковых символов.
' abc ' < 'cba'
Пример:
STR (19, 48: 5: 2, STR1);
Обратное преобразование осуществляется процедурой:
Используя строку из цифр без пробелов, формируют число (машинное представление) или выдает номер ошибочного знака в строке.
Пример:
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) Напечатать заданный непустой текст,удалив из него все цифры и удвоив знаки плюс и минус.
Дата добавления: 2014-12-19; просмотров: 41 | Поможем написать вашу работу | Нарушение авторских прав |