Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то удваивается первый символ цепочки символов, а
если чётна, то в конец цепочки добавляется буква С. В полученной цепочке символов каждая буква заменяется буквой,
следующей за ней в русском алфавите (А. на Б, Б – на Вит. д., ая — на А). Получившаяся таким образом цепочка
является результатом работы алгоритма.
Например, если исходной была цепочка ЛЕС, то результатом работы алгоритма будет цепочка мМЁТ, а если
исходной была цепочка поЛЕ, то результатом работы алгоритма будет цепочка РПМЁТ.
Дана цепочка символов РУЧЕЙ. Какая цепочка символов получится, если к данной цепочке применить описанный
алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?
| Русский алфавит: .
var
i, j: integer;
ar: array[1..10]of integer;
b: boolean;
label l1;
begin
b := false;
for i := 1 to 10 do ar[i] := random(10, 300);
l1:
b := false;
for i := 1 to 10 do
for j := 1 to 10 do if((ar[i] = ar[j]) or (abs(ar[i] - ar[j]) < 10)) and (i <> j)
then
begin
b := true;
ar[i] := random(30, 300);
end;
if b = true then goto l1;
window.Init(0, 0, 800, 600, clwhite);
window.IsFixedSize := true;
randomize;
lockdrawing;
pen.Width := 5;
for i := 1 to 10 do
begin
pen.Color := rgb(random(0, 255), random(0, 255), random(0, 255)); drawcircle(400, 300, ar[i]);
redraw;
end;
end.