Вот шифр цезаря на паскале но в чем заключаеться вопрос , в том что если в слове есть буква близкая к концу алфавита например я то прибавляя ключ(например 3) он не может перескочить к началу алфавита! помогите пожалуйста!progra...

Вот шифр цезаря на паскале но в чем заключаеться вопрос , в том что если в слове есть буква близкая к концу алфавита например я то прибавляя ключ(например 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.
Гость
Ответ(ы) на вопрос:
Гость
Кажется так. необходи из алфавита вычесть общее количество знаков алфавита. program z1; var a,b,c:string; i,j,k,d,g:integer; begin 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 k > 33 then k:=k-33; if a[i]=b[j] then c:=c+b[k]; end; writeln(c); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы