Вот прямо хлебом не корми - дай массивы использовать.
Прекрасный инструмент, хорошо укладывается в любую структуру. а главное - они всегда дают понятный и компактный код. А как с помощью массивов решается 27 задача в ЕГЭ по информатике!?..
Есть одна учебная задачка, которая мне запомнилась еще со времен учебы в вузе. Кстати, для особо придирчивых отмечу, что в первый раз за компьютер я сел только в вузе и про массивы я также узнал только в вузе. Это было чудесное время: ms dos, norton commander, командная строка и turbo pascal 7.0.
Задачка такая - дана строка, нужно посчитать сколько каких букв в этом тексте. Простая задача на частотный словарь. Но это сейчас - а тогда даже факт перехода курсора на новую строку при нажатии на Enter оказывал вау-эффект.
Решение получается красивое, если мы используем массив. И приведу сначала решение именно на Pascal'е - причем старом - если кому интересно, то можно использовать вот тут - https://www.onlinegdb.com/online_pascal_compiler - это онлайн редактор и компилятор на учебных языках программирования. У меня тоже нет старого классического Pascal - для чистоты кода использовал его.
Если говорить о современном Pascal'е, то тут мне нравится PascalABC.net - язык уже стал рабочим, есть инструменты, которые делают его ближе к java-подобным языкам, и код становится в том числе и компактным.
Короче, берем строку st, еще пару вспомогательных переменных, а главная переменная - это mArr:
Вообще говоря, мало кто сразу принимает тот факт, что тип данных char может быть параметром, указывающим на способ индексирования элементов массива. Такая запись означает, что мы можем обратиться к элементу массива например так:
И когда я пишу:
Выше приведен полный код программы - он небольшой относительно. Единственное неудобство - вывод элементов из такого массива.
Таких проблем нет при написании аналогичного кода на Python (кстати, если использовать PascalABC.net - код уже можно сделать более "читабельным").
Правда здесь нет и массивов (точнее списков - в Python они называются списки) - вместо них здесь был использован словарь (dict).
Хотя со списками решение также возможно - и вот какое (как вариант):
В примерах кода (и на Pascal'е и на Python) сделано ограничение на набор символов - проход только по первым 256 символам. Это не позволит, например, проверить частоту символов в кириллическом тексте. И частота здесь не совсем частота - а просто ответ на вопрос "Сколько?". Есть куда его дорабатывать - но все зависит от конкретного условия задачи.