Text57. Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) русской буквы и создать строковый файл, элементы которого имеют вид «<буква>-<число ее появлений>» (например, «а-25»). Буквы, отсутствующие в тексте, в файл не включать. Строки упорядочить по возрастанию кодов букв.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
program Text57; var F_in,F_out: Text; Name,S:string; C:Char; Num:array[1..33] of integer; i:integer; begin Write('File In name: '); Readln(Name); Assign(F_in,Name); Reset(F_in); Write('File Out name: '); Readln(Name); Assign(F_out,Name); for i:=1 to 33 do Num[i]:=0; While not eof(F_in) do begin While not eoln(F_in) do begin Read(F_in,C); if (ord(C) in [160..165]) then inc(Num[ord(C)-159]) else if (ord(C) = 241) then inc(Num[7]) else if (ord(C) in [166..175]) then inc(Num[ord(C)-158]) else if (ord(C) in [224..239]) then inc(Num[ord(C)-207]); end; Readln(F_in); end; Close(F_in); Rewrite(F_out); for i:=1 to 33 do begin if Num[i]>0 then begin str(Num[i],S); if (i<=6) then S:=chr(159+i)+'-'+S else if (i=7) then S:=chr(241)+'-'+S else if (i<=17) then S:=chr(158+i)+'-'+S else if i<=33 then S:=chr(207+i)+'-'+S; Writeln(F_out,S); end; end; Close(F_out); end. |
Другие задачи из раздела Text можно посмотреть здесь.
Комментарии:
Комментарии 2