Помогите с паскалем! Нужно сделать одну любую задачу.

0 голосов
31 просмотров

Помогите с паскалем!
Нужно сделать одну любую задачу.


image

Информатика (129 баллов) | 31 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

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

(194k баллов)
0

Да кто его знает, что проще? Все зависит от уровня понимания))

0

Например, указание метода Sort понятнее, чем несколько строк, реализующих сортировку.

0

Да, просто Sort проще. Но, чаще всего, чтобы писать короткие "простые" программы, нужно знать много-много больше, чем при написании динных.

0

длинных

0

Вы совершенно правы. Это называется "опыт".

0

Не зря же есть "крылатая" фраза: "Краткость - сестра таланта" )))

0 голосов

// 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

(142k баллов)