|
|
zadach297.PAS |
|
{* Задача 297 *}Unit ZADACH297;Interface Implementation Begin writeln('Дан файл, содержащий текст, набранный заглавными русскими буквами. В нем содержатся также знаки препинания. Провести частотный анализ текста, т.е. указать (в процентах) сколько раз встречается та или иная буква.'); End. Program zadach297; Uses zadach297.pas; {* Эту строку можно удалить *} Uses crt; {* Подключение модулей *} Const {* Предопределенные *} pr = [' ', '.', ', ', '?', '!', ':', '(', ')',#13]; Var {* В работе нам потребуются переменные: *} s : char; file1 : text; b : Array [1..32] Of char; c : Array [1..32] Of integer; d : Array [1..32] Of real; i : integer; n : integer; Begin clrscr; {* Стираем всё с экрана *} assign(file1, 'c:file1.txt'); {* Связывание file1 с файлом 'c:file1.txt' *} reset(file1); {* Подготовка переменной file1 для чтения из файла *} n := 0; For i := 1 To 32 Do {* Переменная i увеличивается с 1 до 32 *} b[i] := Chr(Ord(127 + i)); While Not(EOF(file1)) Do Begin read(file1, s); If Not(s In pr) Then n := n + 1; For i := 1 To 32 Do {* Увеличиваем i от 1 до 32 с шагом 1 *} If s = b[i] Then c[i] := c[i] + 1; End; close (file1); {* Закрытие файла *} For i := 1 To 32 Do {* Цикл для i => [1 .. 32] *} d[i] := 100 * c[i] / n; For i := 1 To 16 Do {* Переменная i увеличивается с 1 до 16 *} Begin write(b[i] : 2); writeln(d[i] : 8 : 2, '%'); End; writeln('Press any key ...'); readln; {* Приостановка программы. Ожидание Enter *} clrscr; {* Очищаем экран *} For i := 17 To 32 Do {* Увеличиваем i от 17 до 32 с шагом 1 *} Begin write(b[i] : 2); writeln(d[i] : 8 : 2, '%'); End; readln End. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|