Работа 3.8 Упр.28 ГДЗ Семакин 10 класс (Информатика)
(Например, строка «Программа» превратится в «ргамамроП».)
б) Запрограммировать решение обратной задачи (расшифровки).
Для шифрования нужно пройти по строке и сначала добавить в результат все символы с чётных позиций, а затем — символы с нечётных позиций, но в обратном порядке.
Пусть строка имеет длину $$n$$. Тогда:
- символы на чётных местах: $$2, 4, 6, \dots$$;
- символы на нечётных местах: $$1, 3, 5, \dots$$, но записываются с конца к началу.
Для обратной задачи нужно восстановить исходную строку по зашифрованной. Для этого удобно разделить строку на две части: первая содержит символы с чётных мест исходной строки, вторая — символы с нечётных мест в обратном порядке. Затем нечётную часть нужно снова развернуть и вставить символы на свои места.
var a, b, c, i, n: integer;
s, p: string;
begin
readln(s);
for i := 1 to length(s) do
if i mod 2 = 0 then p := p + s[i];
for i := length(s) downto 1 do
if i mod 2 <> 0 then p := p + s[i];
writeln(p);
end.
Такой алгоритм даёт, например, для строки Программа результат ргамамроП.
Ответ
Шифрование: сначала выписываются символы с чётных позиций, затем в обратном порядке символы с нечётных позиций. Для расшифровки нужно выполнить обратное преобразование: восстановить исходный порядок символов по двум частям строки.