- •Лекция 6 Массивы. Множества. Строки Массивы
- •1 Одномерные массивы
- •1.1 Основные понятия
- •1.2 Описание массива
- •1.3 Заполнение массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •2 Двумерные массивы
- •2.1 Основные понятия
- •2.2 Описание массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •3.Множества
- •3. 1 Операции над множествами
- •3.2 Примеры решения задач
- •4. Строки
- •4.1 Строковые выражения
- •4.2 Стандартные процедуры и функции для обработки строковых данных
- •Insert(St1, St2, Poz)
- •4.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
4.1 Строковые выражения
Выражения, в которых операндами служат строковые данные, называются строковыми выражениями.
Над строковыми данными допустимы операции сцепления и операции отношения.
Операции сцепления (+) применяются для сцепления нескольких строк в одну результирующую строку.
|
Выражение |
Результат |
|
‘Группа ’+’2В’ |
‘Группа 2В’ |
|
‘А’+’Б’+’В’ |
‘АБВ’ |
Длина результирующей строки не должна превышать 255.
Операции отношения (=,<>,>,<,>=,<=) проводят сравнение двух строковых операндов и имеют более низкий приоритет, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией.
Результат выполнения операций отношения имеет булевский тип (True, False)
|
Выражение |
Результат |
|
‘COSM1’>’COSM2’ |
True |
|
‘akkord’>’AKKORD’ |
True |
Если строки имеют различную длину, то считается, что более короткая строка меньше, чем более длинная.
|
Выражение |
Результат |
|
‘Принтер ’>’Принтер’ |
True |
|
‘Река’=’Река’ |
True |
Для присваивания строковой переменной результата строкового выражения используется оператор присваивания. Например:
Str1:=’Группа учащихся’;
Если значение переменной после выполнения оператора присваивания превышает по длине максимально допустимую при описании, все лишние символы справа отбрасываются.
|
Описание А |
Выражение |
Значение А |
|
A: String[6]; |
A:=’Группа 2В’ |
‘Группа’ |
|
A: String[8]; |
A:=’Группа 2В’ |
‘Группа 2В’ |
Допускается смешение в одном выражении операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина должна быть равна единице, иначе будет ошибка.
Пример:
VAR
Lit: Char;
St1: String[12];
St2: String[30];
Begin
Lit:=’Z’;
Str1:=’Отдел’;
Str2:=Str1+Lit;
….
К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Индекс записывается в квадратные скобки []. Например:
Str1[2] – доступ к букве “т”
Str1[0] – находится длина текущей длины строки.
4.2 Стандартные процедуры и функции для обработки строковых данных
Функции:
LENGTH(ST)
Вычисляет длину строки ST в символах. Результат – целочисленный.
|
Значение St |
Выражение |
Результат |
|
‘Функция’ |
LENGTH(St) |
7 |
Решение задач без использования стандартных функций.
Для самостоятельного решения.
В тексте имеется символ “:”. Вывести на экран все символы, расположенные после“:”.
В тексте заменить все восклицательные знаки на точки.
Определить среднюю длину слова в тексте. Слова разделены пробелом.
COPY(St,Poz,N)
Выдает из St подстроку длиной N символов, начиная с позиции Poz. Если Poz>длины строки, то результат будет пробел. Если Poz>255, то выдается ошибка. Poz, N –целочисленные выражения.
|
Значение St |
Выражение |
Результат |
|
строка |
COPY(St,3,3) COPY(St,3,8) |
рок рока |
Concat(St1,St2,…Stn)
Выполняет сцепление St1…Stn в том порядке, в котором они указаны в списке параметров.
|
Выражение |
Результат |
|
Concat(‘AA’,XX’,’BB’) |
AAXXBB |
Pos(St1,St2)
Обнаруживает первое появление в строке St2 подстроки St1. результат равен номеру той позиции, где находится первый символ подстроки St1.
|
Значение St |
Выражение |
Результат |
|
‘абвгде’ |
Pos(‘вг’,St1) Pos(‘к’,St1) |
3 0 |
Str(IBR,St)
Преобразовывает числовое значение величины IBR в строковое, и помещает результат в строку St. После IBR может записываться формат, аналогичный формату вывода.
|
Значение IBR |
Выражение |
Результат |
|
1500 4800 |
STR(IBR:6,St) STR(IBR:10,St) |
‘1500’ ‘4800’ |
UpCase(Ch)
Преобразует строчную букву в прописную. Параметр и результат имеют литерный тип. Обрабатывает только буквы латинского алфавита.
|
Значение Ch |
Выражение |
Результат |
|
‘a’ ‘v’ |
UpCase(Ch) UpCase(Ch) |
‘A’ ‘V’ |
Процедуры
DELETE(St, Poz, N)
Удаление N символов строки St, начиная с позиции Poz. Например:
St:=’абвгде’;
Delete(St,4,2);
Write(St);
Результат: ‘абве’
