1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
условие - Дан непустой текст из цифр, за которым следует точка. Напечатать цифру, наиболее часто встречающуюся в этом тексте (если таких цифр несколько, напечатать любую из них).
мысли такие..может кто-то поправит пожалуйста?))
program V_20; var a:array [1..100] of char; k,i,j,m,p,n:integer;
begin writeln ('vvedite text iz cifr. po oknchaniju vvoda nazmite tochku'); k:=0;
for c:='0' to '9' do WriteLn(c,': ',f[c]); этот рядочек подсчитывает количество всех цифр, которые мы ввели, да?)
Нет, Настя, этот только выводит результаты.
Подсчитывает вот этот:
if s[i] in ['0'..'9'] then Inc(f[s[i]])
А точнее, даже просто конец этой строки, то есть
Inc(f[s[i]])
Принцип такой.. Представь себе, что ты сидишь при входе на выставку. Твоя задача - подсчитать, сколько заходит мужчин, женщин, мальчиков и девочек (детей легко отличить, поскольку они проходят бесплатно). Перед тобой лежит лист бумаги, расчерченный на 4 графы: муж, жен, мал, дев. Когда заходит человек, ты добавляешь палочку в нужную графу. А потом ты подсчитаешь, сколько палочек в каждой графе..
В программе аналог этого листа - массив f, в котором как бы 10 граф - для каждой цифры по графе. Если текущая цифра на входе, например, 3, то ты должна "нарисовать палочку" в графе 3, если 0, то в графу 0, и так далее. Ты знаешь, что такое Inc(x)? Это простое увеличение x на 1, то есть эквивалентно x:=x+1. Поставить палочку в графу 3 - эквивалентно Inc(f['3']), в графу 0 - эквивалентно Inc(f['0']). Иначе говоря, мы всякий раз увеличиваем счетчик с индексом, равным самой цифре:
Inc(f[s[i]])
А задача условного оператора
if s[i] in ['0'..'9'] then
- просто не пустить в подсчет нецифровые символы (например, точку, или если случайно введут..).
Такой подсчет делается после ввода каждой строки (проходим по всей строке). Так что по окончании ввода у нас уже готов массив, представляющий собой количества вхождений каждой цифры. А то, что ты написала - это всего лишь вывод этого массива на печать. Этот вывод можно вообще убрать, поскольку условием задачи это не требуется. То есть это промежуточный вывод результатовв процессе написания и отладки программы.
Если тебе еще не совсем ясно, как это работает - спрашивай еще, не стесняйся. Даже если кажется, что вопрос глупый.
Когда разберешься с этим - сделаем поиск максимума. Хорошо? Успехов тебе.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой