0 / 0 / 0
Регистрация: 03.10.2021
Сообщений: 29
|
|
1 | |
Вывести на экран только те символы, которые встречаются в строке более трех раз08.09.2022, 17:43. Показов 977. Ответов 15
Метки нет (Все метки)
Дана символьная строка. Вывести на экран только те символы,
которые встречаются в ней более трех раз, для каждого из этих символов указать точное количество повторений.
0
|
08.09.2022, 17:43 | |
Ответы с готовыми решениями:
15
Вывести на экран только те символы, которые встречаются в строке более трех раз Дана символьная строка. Вывести на экран те символы которые встречаются в строке более 3х раз Вывести на экран те символы, которые встречаются в строке только один раз Дана символьная строка. Вывести на экран только те символы, которые встречаются в ней более трех раз, для каждого из эти |
2309 / 1420 / 516
Регистрация: 07.04.2017
Сообщений: 4,723
|
||||||
08.09.2022, 18:25 | 2 | |||||
0
|
0 / 0 / 0
Регистрация: 03.10.2021
Сообщений: 29
|
||||||
08.09.2022, 18:57 [ТС] | 3 | |||||
А можно попросить в развернутом в виде, ребенок не понимает)
Добавлено через 3 минуты Sun Serega, на подобии такого
0
|
2309 / 1420 / 516
Регистрация: 07.04.2017
Сообщений: 4,723
|
||||||||||||||||
08.09.2022, 19:07 | 4 | |||||||||||||||
Дайте ему навести мышку на слова - там у всего понятные описания. Для
EachCount только не показывает чего-то, но вот его реализация:
Добавлено через 18 секунд ThaiAZ, для выделения кода есть кнопка PASCAL над окном ответа. Добавлено через 6 минут А тот кот что вы написали - написан на древне-паскальном. Лучше всё же современному учиться. Если уж всё ручками реализовывать то так:
Dictionary заменить, но для этого учите хеш-таблицы. Но это уже не для новичков...
0
|
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
|
||||||
09.09.2022, 06:55 | 5 | |||||
тогда так:
Добавлено через 2 часа 3 минуты
0
|
XzzzX
|
09.09.2022, 14:24
#6
|
0
|
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
|
|
09.09.2022, 14:29 | 7 |
XzzzX, код на PascalABC.Net компилируется? Тогда зачем отправлять в другие разделы?
0
|
XzzzX
|
09.09.2022, 14:42
#8
|
Не по теме: Joy, компилируется, но осуждается
0
|
0 / 0 / 0
Регистрация: 03.10.2021
Сообщений: 29
|
|
30.09.2022, 03:45 [ТС] | 9 |
а что в данном случае выполняет inc, и как программа сравнивает значения, например, как она понимает, что элемент 1 и элемент 2 это повторяющийся символ?
0
|
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
|
|
30.09.2022, 06:19 | 10 |
ThaiAZ, inc — стандартная процедура.
Описание смотрите в букваре по ЯП А вы отладчиком попробуйте прогнать программу
0
|
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
|
|
30.09.2022, 09:54 | 11 |
в программе есть массив C в котором индексы массива - это все возможные символы, а значения по этим индексам - это счётчик - сколько раз этот символ встретился.
например, C['s'] - сколько раз встретилась символ 's' в строке, C['#'] - сколько раз встретился символ '#' и так далее. Алгоритм такой, сначала подсчитываем для каждого встреченного символа строки - наращиваем счётчик в массиве C на 1. потом проходим по строке, проверяем счётчик, если он больше 3 - выводим символ и зануляем счётчик, чтобы этот символ вывелся только один раз (если этого не сделать, то сколько раз повторяется символ столько раз он и выведется). Всё. загугли просто увеличивает на единичку переменную. если тебе это принципиально не нравится (хотя это зря, inc() лучше!) можешь вместо inc(c[s[i]]) написать аналогичный код c[s[i]] := c[s[i]] + 1
0
|
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
|
|
30.09.2022, 17:26 | 13 |
bormant, ну, не я писал этот код и этот алгоритм, я просто пояснил ТС, как идёт программа работает.
Что же касается то совершенно не факт, что это будет эффективней. всё таки вряд ли строка длиной 65536 символов, поэтому проще по ней пробежаться, пусть даже с занулением, чем по всему массиву. Хотя, задача явно учебная, в ней что не делай, если это работает и решает поставленную задачу - то всё сгодится Главное, понимать, что написано в коде и суметь повторить и/или хотя бы объяснить преподавателю суть решения. имхо.
1
|
Модератор
|
|
01.10.2022, 00:08 | 14 |
mr-Crocodile,
ровно до тех пор, пока нет ввода-вывода. Но стоить добавить Write/WriteLn, и на этом фоне уже просмотр 65635 вместо прохода по строке с модификацией не факт, что дороже
0
|
3018 / 1643 / 650
Регистрация: 19.03.2019
Сообщений: 5,319
|
|
03.10.2022, 09:46 | 15 |
0
|
Модератор
|
|
03.10.2022, 14:47 | 16 |
mr-Crocodile,
о том, что операции ввода/вывода обычно настолько тяжелы, что на их фоне прочие затраты легко могут оказаться несущественными.
0
|
03.10.2022, 14:47 | |
03.10.2022, 14:47 | |
Помогаю со студенческими работами здесь
16
Написать программу, которая определяет наиболее часто встречающийся в строке символ, а так же символы, которые встречаются более трех раз Разработать программу, которая выводит на экран символы, которые встречаются в строке только один раз Вывести все символы, которые встречаются в строке только один раз, в порядке возрастания их ASCII-кодов. Символы, которые встречаются в строке более 2-ух раз Для заданной символьной строки вывести на экран те символы, которые встречаются в ней только один раз Вывести символы, которые встречаются более 2х раз. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |