Помогите с паскалем! Нужно сделать одну любую задачу.
Помогите с паскалем!
Нужно сделать одну любую задачу.
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
var s:=ReadlnString('Введите строку:').ToUpper.
TakeWhile(c->c<>'.').Where(c->c in ['A'..'Z']);
var d:=new dictionary;
foreach var c in s do d[c]:=d.Get(c)+1;
var d1:=d.OrderByDescending(k->k.Value).ThenBy(k->k.Key);
var r:=d1.ElementAt(0);
Println(r.Key,r.Value)
end.
Тестовое решение:
Введите строку: It is not a simple task. Yes!
I 3
Гость
Вот ещё вариант решения 2 задачи. Не так красиво, конечно, но, может быть, проще для понимания.
var s:string;
k:array['A'..'Z'] of integer;
max,i:integer; c,m:char;
begin
writeln('Введите строку:');readln(s);
for c:='A' to 'Z' do k[c]:=0;
for i:=1 to pos('.',s)-1 do
case s[i] of
'a'..'z','A'..'Z': k[UpperCase(s[i])]:=k[UpperCase(s[i])]+1;
end;
max:=0;
for c:='A' to 'Z' do
if k[c]>max then begin max:=k[c]; m:=c; end;
writeln(m,' ',k[m]);
end.
Пример:
Введите строку:
It is not a simple task. Yes!
I 3
Не нашли ответ?
Похожие вопросы