Информатика, опубликовано 2018-08-22 23:13:27 by Гость

Вот шифр цезаря на паскале но в чем заключаеться вопрос , в том что если в слове есть буква близкая к концу алфавита например я то прибавляя ключ(например 3) он не может перескочить к началу алфавита! помогите пожалуйста!program z1;uses crt;var a,b,c:string;i,j,k,d,g:integer;beginclrscr;writeln(Шифрование?1-да,0-нет);readln(g);writeln(Исходный текст );readln(a);writeln(ключ);readln(d);c:=;b:=абвгдеёжзийклмнопрстуфхцчшщъыьэюя;for i:=1 to length(a) dofor j:=1 to length(b) dobeginIf 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.

Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.