ИНФОРМАТИКА · 9 КЛАСС
Строки и алгоритмы · Интерактивный конспект

§ 7. Строковые величины

Научимся хранить текст, обращаться к его элементам и сравнивать строки.

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

Строка и её длина

Строка — упорядоченная последовательность элементов текста.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Строка и её длина

Изменяйте параметры, наблюдайте результат и проверяйте объяснение. Сброс возвращает исходный опыт.

Тип string хранит текст переменной длины. Строковую константу в Паскале заключают в апострофы. Два соседних апострофа внутри константы обозначают один апостроф в тексте. Пустая строка записывается как две кавычки подряд; строка из одного пробела имеет длину 1. Для ввода целой строки используют readln(s): пробелы внутри введённой строки сохраняются.

Length(s) возвращает длину. В PascalABC.NET строки используют UTF-16: один char занимает 16 бит, но не каждый символ полного набора Unicode представляется одним char. В упражнениях ниже используются обычные русские и латинские буквы, цифры и знаки, для которых это различие не мешает счёту.

var s: string;
begin
  readln(s);
  writeln('Длина: ', Length(s));
  if Length(s) > 0 then
    writeln('Последний элемент: ', s[Length(s)]);
end.
Главная мысль: Строка — упорядоченная последовательность элементов текста.
2

Индекс элемента

Допустимые индексы строки в Паскале идут от 1 до Length(s).

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Индекс элемента

Изменяйте параметры, наблюдайте результат и проверяйте объяснение. Сброс возвращает исходный опыт.

Для s = «КОТ» выражение s[1] означает К, s[2] — О, s[3] — Т. Квадратные скобки задают номер элемента. Обращение s[0] или s[4] для этой строки недопустимо. У пустой строки нет первого или последнего элемента. Перед s[Length(s)] необходимо убедиться, что Length(s) > 0.

Присваивание s[2] := символу А превращает КОТ в КАТ и не меняет длину. В цикле for i := 1 to Length(s) do можно последовательно обработать все элементы. Индекс позиции и код символа — разные числа.

Главная мысль: Допустимые индексы строки в Паскале идут от 1 до Length(s).
3

Соединение строк

Конкатенация соединяет текст в указанном порядке.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Соединение строк

Изменяйте параметры, наблюдайте результат и проверяйте объяснение. Сброс возвращает исходный опыт.

Оператор + для строк означает конкатенацию. Соединение «инфор» и «матика» даёт «информатика». Пробел автоматически не добавляется: для двух слов его нужно включить отдельно. Порядок имеет значение: «аб» + «в» и «в» + «аб» дают разные строки.

Число 12 и строка «12» имеют разные типы. Для строк «12» + «3» получается «123». Чтобы получить числовую сумму, сначала проверяют и преобразуют ввод. Для вставки числа в текст применяют IntToStr или другое подходящее преобразование.

var name, message: string;
begin
  readln(name);
  message := 'Здравствуйте, ' + name + '!';
  writeln(message);
end.
Главная мысль: Конкатенация соединяет текст в указанном порядке.
4

Сравнение и коды

Строки сравниваются по первому различающемуся элементу.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Сравнение и коды

Изменяйте параметры, наблюдайте результат и проверяйте объяснение. Сброс возвращает исходный опыт.

Лексикографическое сравнение идёт слева направо. Если найдено различие, результат определяют коды этих элементов. Если одна строка полностью совпала с началом другой, более короткая меньше. Поэтому «кот» меньше «котик», а «12» меньше «3»: код цифры 1 меньше кода цифры 3, хотя число 12 больше числа 3.

Ord возвращает код элемента, Chr создаёт элемент по допустимому коду. Для латинских A и a коды 65 и 97. В современном PascalABC.NET используются коды Unicode: для М — 1052, для м — 1084. Регистр влияет на обычное сравнение. Если задача требует сравнивать без регистра, сначала явно приводят обе строки к одному регистру.

Главная мысль: Строки сравниваются по первому различающемуся элементу.
Интерактивная практика

Исследуйте и примените

Проверьте модель на нескольких наборах данных, затем выполните самостоятельное задание.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: исследуйте свой вариант

Изменяйте параметры, наблюдайте результат и проверяйте объяснение. Сброс возвращает исходный опыт.

Соберём главное

Шесть выводов

01

Строка — упорядоченная последовательность элементов текста.

02

Допустимые индексы строки в Паскале идут от 1 до Length(s).

03

Конкатенация соединяет текст в указанном порядке.

04

Строки сравниваются по первому различающемуся элементу.

05

Перед обращением по индексу проверяйте границы строки.

06

Сравнение текста не заменяет сравнение числовых значений.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Какой тип хранит текст?

2. Какова длина одного пробела?

3. Каков первый индекс строки в Паскале?

4. Чему равно Length «КОТ»?

5. Какой элемент второй в «КОТ»?

6. Каков результат соединения «12» и «3»?

7. Добавляется ли пробел при конкатенации автоматически?

8. Какая строка меньше: «кот» или «котик»?

9. Для чего нужен Ord?

10. Что проверить перед обращением к последнему элементу?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…