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

Niikzhon
Aug 5, 2019
// 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
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