Предмет: Информатика,
автор: Аноним
Вот шифр цезаря на паскале но в чем заключаеться вопрос, в том что если в слове есть буква близкая к концу алфавита например я то прибавляя ключ (например 3) он не может перескочить к началу алфавита! помогите пожалуйста!
program z1;
uses crt;
var a,b,c:string;
i,j,k,d,g:integer;
begin
clrscr;
writeln('Шифрование? 1-да, 0-нет');
readln(g);
writeln('Исходный текст ');
readln(a);
writeln('ключ');
readln(d);
c:='';
b:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
for i:=1 to length(a) do
for j:=1 to length(b) do
begin
If g=0 then k:=(j-d) mod 32 else k:=(j+d);
if a[i]=b[j] then c:=c+b[k];
end;
writeln(c);
readkey;
end.
Ответы
Автор ответа:
0
Я думаю, что в процедуре шифрования надо добавить проверку, типа такой
If g=0 then k:=(j-d) mod 32 else k:=(j+d);
If k > 32 then k := k-32;
if a[i]=b[j] then c:=c+b[k];
If g=0 then k:=(j-d) mod 32 else k:=(j+d);
If k > 32 then k := k-32;
if a[i]=b[j] then c:=c+b[k];
Автор ответа:
0
Подсказываю: при дешифровке надо прибавлять 32.
Автор ответа:
0
да я сам понял потомучто там минуса вылазили
Автор ответа:
0
нафига так то? во первых надо делать mod
Похожие вопросы
Предмет: Математика,
автор: husanbayoysh3
Предмет: Литература,
автор: ILYAPETUNIN
Предмет: Геометрия,
автор: DDlove1
Предмет: Химия,
автор: Аноним