Тема 12 · Информатика
Строки и анализ алгоритмов
Посимвольная обработка строк, подсчёт символов, определение результата и входных данных алгоритма. 100 заданий на отработку.
Простыми словами
Слово для компьютера — это бусы: символы нанизаны по порядку, и у каждого есть номер. Чтобы посчитать, сколько раз встречается буква, программа перебирает бусины одну за другой.
Строка — последовательность символов. Символы нумеруются с первого. length(s) — длина строки (число символов), s[i] — символ на -м месте.
Посимвольная обработка
Строку проходят циклом от 1 до length(s) и проверяют каждый символ. Так считают частоту буквы, ищут символ или собирают новую строку.
k := 0;
for i := 1 to length(s) do
if s[i] = 'е' then k := k + 1;
Сколько раз «е» встречается в слове «переменная»?
- Выписываем по номерам: п(1) е(2) р(3) е(4) м(5) е(6) н(7) н(8) а(9) я(10).
- Совпадения на местах 2, 4, 6. Ответ: .
Пробелы и знаки препинания — тоже символы и входят в длину строки: length('да, нет') = 7. Буквы «е» и «ё», заглавные и строчные — разные символы.
Считая длину вручную, ставьте над буквами номера — так ни одна не потеряется.
Анализ алгоритма
Чтобы понять готовый алгоритм, его трассируют: выписывают значения всех переменных после каждого шага. Обратная задача — подобрать входные данные под нужный результат — решается так же, только рассуждение идёт от конца к началу.
s := 'кот'; t := '';
for i := 1 to length(s) do t := s[i] + t;
| s[i] | t | |
|---|---|---|
| 1 | к | к |
| 2 | о | ок |
| 3 | т | ток |
Каждый символ приписывается в начало — алгоритм переворачивает строку: «ток».
Если алгоритм выводит a mod 10, то по ответу 7 нельзя восстановить само число: подойдёт любое, оканчивающееся на 7.
Подсчёты в строке и обратные задачи
- Различные буквы: вычёркиваем повторы. В «клавиатура» 10 символов, но «а» встречается три раза, поэтому различных букв . Длина равна числу различных букв, только если повторов нет («компьютер» — 9 и 9).
- Гласные русского языка: а, е, ё, и, о, у, ы, э, ю, я. В «массив» гласные «а», «и» — 2.
- Склейка строки с её копией удваивает длину: «оператор» (8) 16 символов.
- Удаление всех букв «с» из «массив»: длина 6, букв «с» 2, остаётся .
- Номер последнего символа равен длине строки, потому что нумерация начинается с 1. Если считать с нуля, номер последнего будет на 1 меньше длины.
Алгоритм выводит a div 10. Наименьшее , при котором выведется 7?
div 10отбрасывает последнюю цифру, значит — число вида : от 70 до 79.- Наименьшее — .
Двузначных чисел с суммой цифр 1 — одно: 10 (первая цифра не может быть нулём).
Готовые работы по теме
Собраны заранее — одним нажатием: распечатать с ключом, раздать ученикам ссылкой или QR-кодом, поменять настройки. Номер набора постоянный: по этой ссылке всегда та же работа.
теория этой темы, 8 заданий по подтемам и ключ — файлом DOCX, который можно править под себя.
Прохождение онлайн
Имя ученика никуда не отправляется: он вводит только номер по списку, а таблицу «номер → фамилия» видите только вы.
Классы, выданные работы и результаты учеников по кодам — в журнале учителя: без регистрации, хранится только на этом компьютере.