IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задача "на файл"
сообщение
Сообщение #1


Гость






Возможно эта задача кому-то покажется смешной, но..
В задаче требуется найти символ в текстовом файле, кот. повторяется чаще остальных. Нужно вывести этот символ и количество его повторений.

Я так понимаю здесь потребуется воспользоваться таблицей ASCII ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






var
arr: array[char] of integer;
ch: char;
{ откроешь файл }
...
while not eof(f) do begin
read(f, ch); inc(arr[ch]);
end;

потом просто найдешь максимум в массиве arr и выведешь на печать сам символ и его индекс...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Вот это и есть ключевой момент. Я как раз и не понимаю как найти тот символ, который повторяется макс. количество раз. Никогда с символами не работал. Перерыл уже кучу всего.
Предложенной Вами операцией, я так понял, мы "переписываем" символы из файла в массив для дальнейшей работы с ними. Само по себе уже это ценная информация для меня. Я, например, узнал как работает функция inc() :smile:
Был бы очень благодарен, если бы Вы еще объяснили как мне найти символ с макс. количеством повторений. Трудно сформулировать, что именно я не понимаю, очень бы хотелось посмотреть это на примере. Интересует сама работа с символами.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
я так понял, мы "переписываем" символы из файла в массив для дальнейшей работы с ними.
Неправильно понял. Мы для каждого символа, принадлежащего к типу Char сразу подсчитываем количество повторений. Полностью программа выглядит так:

var
f: text;
arr: array[char] of integer;
max_i, i, ch: char;

begin
assign(f, 'a.txt');
reset(f);
while not eof(f) do begin
read(f, ch); inc(arr[ch]);
end;
close(f);

{
количество вхождений каждого символа уже подсчитано
теперь найдем максимум из этих чисел...
}
max_i := #0;
for i := #0 to #255 do
if arr[max_i] < arr[i] then max_i := i;

writeln('char: ', max_i, ' count: ', arr[max_i]);

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Не знаю как благодарить... good.gif
Я очень Вам признателен. Сейчас буду разбираться. Расширять мой трехнедельный уровень паскаль-подготовки.
Спасибо.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 9:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name