ТЕКСТ ЗАДАНИЯ Расшифруйте слово цЖГЪГ закодированное с Шифра Цезаря. Известно, что каждая буква исходного текста заменяется третьей после нее буквой в алфавите. А Б В ГА Е Ё Ж З И й клин о прст у ф х ц ч ш щ ъ ы ь Э Ю Я КРАЖА УДАЧА BECHA
// PascalABC.NET 3.0, сборка 1073 const nn=30; mm=30; var a:array[1..mm,1..nn] of integer; m,n,i,j,k,s:integer; begin Writeln('Введите число строк и столбцов массива: '); Read(m,n); Randomize; Writeln('*** Исходный массив ***'); k:=0; for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4); if Odd(a[i,j]) then Inc(k) end; Writeln end; if k>5 then begin Writeln('Средние арифметические отрицательных элементов по строкам'); for i:=1 to m do begin s:=0; k:=0; for j:=1 to n do if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end; if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000'); end end else begin Writeln('*** Результирующий массив ***'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end; Writeln end end end.
По условию здесь шифр Цезаря +7. Это значит, что при шифровании вместо каждой буквы писали другую, отдаленную от настоящей на 7 букв вперед по алфавиту. Значит при расшифровке надо сдвигаться, наоборот, на 7 букв назад, к началу алфавита. Здесь пронумерованный алфавит.
шифр Ц Т Ж Ф Я Л Щ № 24 20 8 22 33 13 27 № - 7 17 13 1 15 26 6 20 буква П Л А Н Ш Е Т
const
nn=30;
mm=30;
var
a:array[1..mm,1..nn] of integer;
m,n,i,j,k,s:integer;
begin
Writeln('Введите число строк и столбцов массива: '); Read(m,n);
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4);
if Odd(a[i,j]) then Inc(k)
end;
Writeln
end;
if k>5 then begin
Writeln('Средние арифметические отрицательных элементов по строкам');
for i:=1 to m do begin
s:=0; k:=0;
for j:=1 to n do
if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000');
end
end
else begin
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
Writeln
end
end
end.
Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
-16 -8 -1 24 -22 1
-9 -20 -25 13 -11 10
-15 10 -12 20 -22 3
-6 25 -3 25 -14 22
24 -4 24 17 -4 -17
-23 -9 -22 1 -18 -13
-12 13 6 -16 2 -13
19 8 -22 14 -3 4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
-7.66667
-8.33333
-17.00000
-13.66667
-12.50000
Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
3 24 -21 -22 -8
-21 14 -22 0 -22
15 -16 -2 6 22
*** Результирующий массив ***
6 48 -42 -44 -16
-42 28 -44 0 -44
30 -32 -4 12 44
Значит при расшифровке надо сдвигаться, наоборот, на 7 букв назад, к началу алфавита. Здесь пронумерованный алфавит.
шифр Ц Т Ж Ф Я Л Щ
№ 24 20 8 22 33 13 27
№ - 7 17 13 1 15 26 6 20
буква П Л А Н Ш Е Т
ответ: Планшет
Приложение: пронумерованный алфавит
А1 Б2 В3 Г4 Д5 Е6 Ё7 Ж8 З9 И10 Й11 К12 Л13 М14 Н15 О16 П17 Р18 С19 Т20 У21 Ф22 Х23 Ц24 Ч25 Ш26 Щ27 Ъ28 Ы29 Ь30 Э31 Ю32 Я33