Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 16:09   #1
Кристя777
 
Регистрация: 06.12.2013
Сообщений: 3
По умолчанию работа с файлами: дан символьный файл f содержащий произвольный текст. получить 10 наиболее часто встречающихся букв

дан символьный файл f содержащий произвольный текст. получить 10 наиболее часто встречающихся букв и число их появления.

не могу разобраться.с цифрами намного проще по мне так...помогите...
код вроде сделала для цифр,а как его для символов(букв) переделать?
Код:
program kris6;
uses crt;
var
   name: string;
   i,j: integer;
   f:text;
   m:array [1..10] of integer;
    begin
         name:='data.txt' ;
         if (file Exsists (name)) then
          begin
          assign (f,name);
          reset (f) ;
          i:= 1;
           while not EOF (f) do
           begin
           read (f, m[i]);
           i:=i+1;
           end;
close(f);
name:='out.data.txt';
assign(f,name);
rewrite (f);
for i=i-1 downto 1 do
begin
     write (f,m[i],ij);
     end;
     close (f);
     end.
else ('файл не существует');
end.

Последний раз редактировалось Stilet; 12.01.2014 в 17:26.
Кристя777 вне форума Ответить с цитированием
Старый 12.01.2014, 23:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
if (file Exsists (name)) then
уже по этой строчке видно, что код ваш написан в блокноте и не компилируется в Паскаль.

а по сути решения задачи, рекомендую завести массив счётчиков и тупо наращивать нужный элемент при обнаружении очередного подходящего символа.
Только Вам нужно будет ответить себе на вопрос: что для Вас является "буквой" в данной задаче: латиница, кириллица или что-то ещё...
После заполнения массива счётчиков его нужно отсортировать по убыванию и взять 10 верхних элементов.
всё.

Последний раз редактировалось Serge_Bliznykov; 12.01.2014 в 23:23.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.01.2014, 02:16   #3
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 241
По умолчанию

Даже если пропустить ошибки в тексте кода, то там сначала идет объявление массива из 10 элементов

Код:
m:array [1..10] of integer;
А потом вы читаете из файла в m[i]-тый элемент.

Код:
          i:= 1;
           while not EOF (f) do
           begin
           read (f, m[i]);
           i:=i+1;
           end;
Соответственно после 10-го байта будет попытка прочитать в m[11], а их всего десять элементов было заявлено. И программа отвалится с ошибкой.

А потом цикл еще страшнее:

Код:
for i=i-1 downto 1 do
begin
     write (f,m[i],ij);
     end;
Кто такой ij, и зачем вы в обратном порядке ранее прочитанные 10 байт (или больше) хотите записать в другой файл.

Похоже это просто побитый опечатками код для задачи "прочитать файл размером не более 10 байт и записать его содержимое в другой файл в обратном порядке", взятый у одноклассника/курсника =)
blackstrip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан символьный файл f, содержащий произвольный текст. Получить 10 наиболее часто встречающихся букв и число их появления пожрать_бы Помощь студентам 4 30.12.2012 18:51
Оптимальный алгоритм - получить список из N наиболее часто встречающихся элементов vedro-compota Общие вопросы по программированию, компьютерный форум 34 09.12.2012 13:11
из текстового файл получить 5 наиболее часто встречающихся слов и число их появлений (на Delphi) sifa Помощь студентам 5 09.01.2012 18:34
в тексте слова, содержащие ровно одну из 10 наиболее часто встречающихся букв yaroslav_bondarev Паскаль, Turbo Pascal, PascalABC.NET 3 16.12.2011 10:11
дан текст, написать код, нахождения 10 наиболее часто встречающихся букв yaroslav_bondarev Паскаль, Turbo Pascal, PascalABC.NET 9 14.12.2011 22:08