Допустим есть некоторый текст, скажем "Война и мир" Толстова. Стоит задача посчитать сколько раз используется каждая буква.
....
Для этого придуманы ассоциативные массивы https://www.mql5.com/ru/articles/1334#intro
Еще их называют hash-tables.
- 2015.03.23
- Vasiliy Sokolov
- www.mql5.com
Для этого придуманы ассоциативные массивы https://www.mql5.com/ru/articles/1334#intro
А я всё думал для кого эта статья ? ) Спасибо, сейчас гляну.
По аски коду символа. Массив 256 элементов, если хотите, чтобы быстро работало. А саму войну и мир придется перебирать по буквам, тут никуда не денешься.
Экономить здесь нечего, массив лонгов в 256 элементов, это мизер.
На финальной стадии, если надо, то просуммировать количества разных регистров.
Вопрос - как реализовать вариант 1 или вариант 2 ? Или всё же придётся по старинке - перебором в лоб ?
Если вы посмотрите какие задачи решают школьники 8-10 классов на международных олимпиадах, то поймете что это детская задачка. :)
По аски коду символа. Массив 256 элементов, если хотите, чтобы быстро работало. А саму войну и мир придется перебирать по буквам, тут никуда не денешься.
Экономить здесь нечего, массив лонгов в 256 элементов, это мизер.
На финальной стадии, если надо, то просуммировать количества разных регистров.
Плюсую, работать будет в несколько раз быстрее чем с ассоциативными массивами. Зачем переводить каждый раз входящий символ с помощью функции сворачивания в уникальный хеш, плюс дополнительные обработки, плюс памяти на порядок жрать больше с объектами будет?
Дык то школьники, а в нашей местной псих. больнице средняя температура ниже нуля ))
Алексей, вы самокритичны ))
Это что, вот когда я был Наполеоном...)))
Насчет таблицы ASCII c 256 элементfvb. А что будете делать с текстом с китайскими иероглифами или многоязычном на Unicode?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Решение в лоб и самое неэффективное - создать массив из 33 элементов, условится что номер элемента совпадает с номером буквы ( Массив[0] = "А") и перебрав весь текст получить ответ. Но если для нас важен регистр, то элементов уже будет не 33 а больше, а если текст не на русском языке ? И если вдруг автор произведения решил не использовать к примеру букву "У" а мы зарезервируем для неё место, что тоже неэффективно и ко всему прочему есть условие - нам нельзя создавать массив где номер элементов имеет соответствие номеру буквы.
Вот похожую задачу мне надо решить средствами MQL5. Самый просто вариант это как-то сделать так: Увидел букву А и написал так: Массив[А]++, (это вариант 1) но в мкл индексами массива может выступать только целое число, поэтому ищем дальше. Следующий вариант это использовать структуру, тогда будет так. Структура.A++(это вариант 2) В этом случае мне нужно создать некую динамическую структуру, которой я к тому же должен также динамически присвоить имя элемента, и на сколько я знаю в мкл это тоже задача нерешаемая.
Вопрос - как реализовать вариант 1 или вариант 2 ? Или всё же придётся по старинке - перебором в лоб ?