Дан файл, содержащий текст на языке. опредилить: 1. цифры, которые входят в текст; 2.определить сколько раз встречается в нем самое короткое слово; 3. выбрать буквы, которые встречаются только 1 раз в порядке их расположения. с обьясннием
// PascalABC.NET 3.2, сборка 1485 от 15.06.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadAllText('input.txt'); s.Println; // из файла var Delimeters:=Arr(' ','-',',','.',')','(',':',Chr(13),Chr(10)); s:=LowerCase(s); var a:=s.ToWords(Delimeters); // массив слов Write(Newline,'Цифры, входящие в текст: '); s.MatchValues('\d').Distinct.OrderBy(x->x).Println; var k:=a.MinBy(x->x.Length).Length; Write('Самые короткие слова: '); a.Where(x->(x.Length=k)) .GroupBy(x->x).Select(x->x.Key) .Where(x->Pos(x,'0123456789')=0).Println(','); Write('Буквы, встречающиеся ровно один раз: '); s.ToCharArray.Where(x->not (x in Delimeters)) .Where(x->not (x in ['0'..'9'])) .GroupBy(x->x).Select(x->(x.Key,x.Count)) .OrderBy(x->x[1]).ThenBy(x->x[0]) .Where(x->x[1]=1).Select(x->x[0]).Println; end.
Пример Большой Кавказ простирается более чем на 1100 км с северо-запада на юго-восток, от района Анапы и Таманского полуострова Чёрного моря до Апшеронского полуострова на побережье Каспия, рядом с Баку. Максимальной ширины Большой Кавказ достигает в районе меридиана Эльбруса (почти 180 км). В осевой части расположен Главный Кавказский (или Водораздельный) хребет, к северу от которого простирается ряд параллельных хребтов (горных цепей), в том числе моноклинального (куэстового) характера). Южный склон Большого Кавказа большей частью состоит из кулисообразных хребтов, примыкающих к Главному Кавказскому хребту. Традиционно Большой Кавказ делится на 3 части: Западный Кавказ (от Чёрного моря до Эльбруса), Центральный Кавказ (от Эльбруса до Казбека) и Восточный Кавказ (от Казбека до Каспийского моря).
Цифры, входящие в текст: 0 1 3 8 Самые короткие слова: с,и,в,к Буквы, встречающиеся ровно один раз: щ
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadAllText('input.txt'); s.Println; // из файла
var Delimeters:=Arr(' ','-',',','.',')','(',':',Chr(13),Chr(10));
s:=LowerCase(s);
var a:=s.ToWords(Delimeters); // массив слов
Write(Newline,'Цифры, входящие в текст: ');
s.MatchValues('\d').Distinct.OrderBy(x->x).Println;
var k:=a.MinBy(x->x.Length).Length;
Write('Самые короткие слова: ');
a.Where(x->(x.Length=k))
.GroupBy(x->x).Select(x->x.Key)
.Where(x->Pos(x,'0123456789')=0).Println(',');
Write('Буквы, встречающиеся ровно один раз: ');
s.ToCharArray.Where(x->not (x in Delimeters))
.Where(x->not (x in ['0'..'9']))
.GroupBy(x->x).Select(x->(x.Key,x.Count))
.OrderBy(x->x[1]).ThenBy(x->x[0])
.Where(x->x[1]=1).Select(x->x[0]).Println;
end.
Пример
Большой Кавказ простирается более чем на 1100 км с северо-запада
на юго-восток, от района Анапы и Таманского полуострова Чёрного моря
до Апшеронского полуострова на побережье Каспия, рядом с Баку.
Максимальной ширины Большой Кавказ достигает в районе меридиана Эльбруса
(почти 180 км). В осевой части расположен Главный Кавказский
(или Водораздельный) хребет, к северу от которого простирается ряд
параллельных хребтов (горных цепей), в том числе моноклинального
(куэстового) характера). Южный склон Большого Кавказа большей
частью состоит из кулисообразных хребтов, примыкающих к Главному
Кавказскому хребту.
Традиционно Большой Кавказ делится на 3 части: Западный Кавказ
(от Чёрного моря до Эльбруса), Центральный Кавказ
(от Эльбруса до Казбека) и Восточный Кавказ (от Казбека
до Каспийского моря).
Цифры, входящие в текст: 0 1 3 8
Самые короткие слова: с,и,в,к
Буквы, встречающиеся ровно один раз: щ