Имя: Пароль:
1C
 
В строке необходимо найти самый часто встречающийся символ
,
0 Amriil
 
15.03.22
18:23
Помогите пожалуйста! Задача вывести самый часто встречающийся символ при помощи Повторения.

Вот что самой получилось выдумать:

МассивСимволов = Новый Массив();
    
    Для Н = 1 По СтрДлина(Строка) Цикл
        МассивСимволов.Добавить(Сред(Строка,Н,1));
    КонецЦикла;    
    
    Повторения = Новый Соответствие;
         
    Для Каждого Символ Из МассивСимволов Цикл
        
        Если Повторения[Символ] = Неопределено Тогда
            Повторения[Символ] = 1;
        Иначе
            Повторения[Символ] = Повторения[Символ] + 1;                        
        КонецЕсли;
        
    КонецЦикла;

    Элемент = 0;
    
    Для Каждого Символ Из МассивСимволов Цикл
    
        Если Элемент < Повторения[Символ] Тогда
            Элемент = Повторения[Символ];
            Переменная = Символ;
        КонецЕсли;
        
    КонецЦикла;
    
    
    Возврат Переменная;
Вопрос что не так, так как при выполнении теста
Двoйнoйинтеграл,невдаваясьвподробности,продуцируетпараллельныйминимум.Вобщем,постулатстабилизируетэкспериментальныйинтегралотфункции,обращающейсявбесконечностьвизолированнойточке.Нарядусэтим,графикфункциимногихпеременныхправомочен.

Должна быть выведена буква и а у меня вылетает н?
1 Ёпрст
 
15.03.22
18:38
(0) Беги, за пятеркой:


Табличка = Новый ТабличкаЗначений;
Табличка.Колонки.Добавить("Символ");
Табличка.Колонки.Добавить("Количество");
Для Н = 1 По СтрДлина(Строка) Цикл
    НоваяСтрока = Табличка.Добавить;
    НоваяСтрока.Символ = Сред(Строка,Н,1);
    НоваяСтрока.Количество = 1;
КонецЦикла;    
Табличка.Свернуть("Символ","Количество");
Табличка.Сортировать("Количество Убыв");
Сообщить(Табличка[0].Символ+" "+Табличка[0].Количество);
2 Amriil
 
15.03.22
18:40
Спасибо, но надь через Повторения
3 Ёпрст
 
15.03.22
18:43
(2) Кому надо ? Учительница в школе лютует ?
Или до ТаблицыЗначеня еще не дошли на уроках ?
4 Amriil
 
15.03.22
18:49
не дошли
5 Ёпрст
 
15.03.22
18:50
(2) ну ладно, последнее условие не верно
6 Ёпрст
 
15.03.22
18:50
Или хотя бы определи Переменная = ПервыйСимволТвоейСтроки в месте где Элемент =0
7 Amriil
 
15.03.22
18:53
а в чем принципиальная разница? я понять хочу
8 Trimax
 
15.03.22
18:54
(5) Тогда "четверка" (разопьете вместе) :)
9 hhhh
 
15.03.22
19:00
(7) вам надо немного успокоиться. Здесь "н" - 20 штук, а "и" - 19. И ваша программа выдала "н". Ваша программа работает правильно.
10 Ёпрст
 
15.03.22
19:00
(7) не, (6) отменяется.. да и твой код верный. Я его и не смотрел.
И в твоей строке н -19 раз..и
и -19..
вот те первый из соответствия и выдаёт
11 Ёпрст
 
15.03.22
19:03
А на счет кода..в табличке значений ты увидишь весь результат целиком, разве сразу, а так-то пох.
12 Amriil
 
15.03.22
19:06
счет идет с различием регистра маленьких "и" и "н" поровну, думаю уже сделать сортировку по алфавиту...
13 ДедМорроз
 
16.03.22
08:52
Во-первых,код символа,это число от 0 до 65535,но ноль - это конец строки и встречается только один раз.
Нужно создать массив из 65536 элементов,заполнить его нулями и посчитать в него символы.
Потом найти максимальный элемент в массиве - позиция и будет символом,который чаще других встречается.
14 Serg_1960
 
16.03.22
09:28
(0) А если "самый часто встречающийся" - это несколько символов? Например, "аабб" - ?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.