Помогите написать код в Паскале
В исходном текстовом файле записаны строки, содержащие текст на английском языке. Требуется написать программу, которая для каждой строки исходного файла будет определять и выводить в результирующий файл английскую букву, встречающуюся в этой строке чаще всего, и количество там таких букв. Строчные и прописные буквы при этом считаются не различимыми. Если искомых букв несколько, то программа должна выводить на экран первую из них по алфавиту. Например, пусть в одной из строк исходного файла содержатся следующие символы:
It is not a simple task. Yes!
В этом случае в результирующем файле должно быть:
I 3
Answers & Comments
===== PascalABC.NET =====
begin
ReadLines('Sonet90.txt').
Where(p -> p.Length > 0).
Select(p -> p.ToUpper.MatchValues('[A-z]').
GroupBy(p -> p).Select(p -> (p.Key, p.Count)).
OrderBy(p -> -p[1]).ThenBy(p -> p[0]).First).
Foreach(p -> Writeln(p[0], ' ', p[1]))
end.
В тестовом файле с именем Sonet90.txt (он прикреплен) находится оригинал известного сонета Шекспира №90. В нем есть и пробелы, и знаки препинания и даже пустая строка.
Then hate me when thou wilt; if ever, now;
Now, while the world is bent my deeds to cross,
Join with the spite of fortune, make me bow,
And do not drop in for an after-loss:
Ah, do not, when my heart hath 'scoped this sorrow,
Come in the rearward of a conquer'd woe;
Give not a windy night a rainy morrow,
To linger out a purposed overthrow.
If thou wilt leave me, do not leave me last,
When other petty griefs have done their spite
But in the onset come; so shall I taste
At first the very worst of fortune's might,
And other strains of woe, which now seem woe,
Compared with loss of thee will not seem so.
Во втором вложении показана работа программы.