var key:array [0..4] of 0..9

Составим программу:

Program Gronsfeld;
const nn=32; {число букв в алфавите}
type cifra=0..9;
var key:array [0..4] of cifra;
 x, {данный ключ - пятизначное число}
 i: integer;
 c: char;
function shifr (c:char; k:cifra):char;
{зашифровка данной буквы ключом k}
 var i:integer;
 begin
 i:=ord(c)+k;
 if i>=nn+ord('А') then shifr:=chr(i-nn)
 else shifr:=chr(i)
 end; {шифр}
begin {гронсфельд}
 read(x);
 for i:=4 downto 0 do
 begin
 key[i]:=x mod 10;
 x:=x div 10
 end;
i:=0;
while not eof do
 begin
 read(c);
 if c in ['А'..'Я'] then
 begin
 write(shifr(c, key[i mod 5]));
 i:=i+1
 end
 else write(c);
 if eoln then writeln
 end
end.

Оценка - 1.0 (19)

2012-06-25 • Просмотров [ 9639 ]