Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста, с Паскалем!
а) С клавиатуры вводится предложение - строка, в которой есть слова, разделённые пробелом без повторов. Выведите слова в порядке уменьшения их длин.
б) Напишите программу, которая будет кодировать введённое предложение шрифтом Цезаря. Суть кодировки в том, что каждый символ строки заменяется на символ, отстоящий в алфавите от заданного вправо на три позиции. Например, слово 'mama' превратится в 'pepe' (между символами 'm' и 'p' 3 символа). В программе используйте только латинские символы.

ОТВЕТЫ
// PascalABC.NET 3.2, сборка 1334 от 12.11.2016
begin
  var a:=ReadlnString(-gt;).ToWords;
  a.Select((x,i)-gt;(x,x.Length,i)).OrderByDescending(x-gt;x[1]).
    ThenBy(x-gt;x[0]).Select(x-gt;x[0]).Println
end.

Пример
-gt; Карл у Клары украл кораллы Клара у Карла украла кларнет
кларнет кораллы украла Карла Клара Клары украл Карл у у

// PascalABC.NET 3.2, сборка 1334 от 12.11.2016
begin
  var s1:=abcdefghijklmnopqrstuvwxyz;
  var s2:=defghijklmnopqrstuvwxyzabc;
  var s:=ReadlnString(-gt;);
  var p:integer;
  for var i:=1 to s.Length do begin
    p:=pos(s[i],s1);
    if pgt;0 then s[i]:=s2[p]
    end;
  Writeln(s)
end.

Пример
-gt; abracadabra
deudfdgdeud



201
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам