Задача 579 на Pascal - Шифр Цезаря
Шифр Цезаря.
Этот метод основан на замене каждой буквы шифруемого текста на другую путем смещения в алфавите от исходной буквы на фиксированное количество символов, причем алфавит читается по кругу.
А) В текстовый файл записать произвольное число строк.
Б) Зашифровать полученный текст смещением символов на 9 позиций вправо. Сохранить зашифрованный текст в новом файле
В) Расшифровать полученный код, предполагая, что шифр (т.е. число 9) неизвестен. Результат сохранить в новом файле.
var
f1,f2,f3:text;
s:char; {1. открываем исходный файл 2. создаем новый файл 3. считываем символы из исходного файла и записываем новый символ со смещением в новый файл
4. открываем зашифрованный файл и расшифровываем его в новый файл }
BEGIN
{1.}
{$I-}
assign(f1,'text1.txt');
reset(f1);
{$I+}
if ioresult<>0 then
begin
writeln('Создайте текстовый файл text1.txt и запустите программу снова!');
readln; halt;
end;
{2.}
assign(f2,'text2.txt');
rewrite(f2);
while not eof(f1) do
begin {3.} read(f1,s); {считываем один символ в s}
write(f2,chr(ord(s)+9)); {получаем код символа ord(s), прибавляем к коду символа число 9,
записываем в файл f2 символ с кодом ord(s)+9)}
end;
close(f1);
close(f2);
writeln('Создан зашифрованный файл text2.txt'); writeln;
{4.}
reset(f2);
assign(f3,'text3.txt');
rewrite(f3);
while not eof(f2) do
begin
read(f2,s);
write(f3,chr(ord(s)-9));
end;
close(f2);
close(f3);
writeln('Создан расшифрованный файл text3.txt из зашиврованного файла text2.txt'); writeln; readln; END. |