24.02.2012, 23:47 | #1 (permalink) |
Новичок
Регистрация: 24.02.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Отсортировать символы по убыванию частот
Для текстового файла найти частность входящих в него символов. При выводе частности отсортировать символы по убыванию частот. Исходный файл Подготовить самостоятельно. |
24.02.2012, 23:47 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Похожие темы встречались на нашем форуме, посмотрите Фильтр низких частот Отсортировать числа Фильтр низких частот |
25.02.2012, 11:39 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Летом к нам обещали заглянуть наши экстрасенсы, тогда от них и узнаем язык программирования, на котором надлежит выполнить задание. А до тех пор мы, извините, не в силах Вам помочь.
|
25.02.2012, 17:53 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну тогда - вот Паскаль (пути к файлам поставьте, естественно, свои):
Код:
VAR f:Text; Smb:Set of Char; S:Array[1..500] of Char; T:Array[1..500] of Word; N,i,j,num:Word; C:Char; BEGIN Smb:=[]; N:=0; For i:=1 to 500 do T[i]:=0; Assign(f,'D:\Input.txt'); Reset(f); Repeat Read(f,C); If Not(C in Smb) then Begin Smb:=Smb+[C]; Inc(N); T[N]:=1; S[N]:=C; End else Begin i:=0; repeat inc(i); until S[i]=C; Inc(T[i]); End; Until EoF(f); Close(f); Assign(f,'D:\Output.txt'); Rewrite(f); For i:=1 to N do For j:=1 to N-i do If T[j]<T[j+1] then begin num:=T[j]; T[j]:=T[j+1]; T[j+1]:=num; C:=S[j]; S[j]:=S[j+1]; S[j+1]:=C; end; For i:=1 to N do Writeln(f,S[i],' - ',T[i]:3,' times'); Close(f); END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|