Вот ещё вариант решения 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