Паскаль шифр цезаряпочему при дешифровке в слове с буквой "в" в

Паскаль шифр цезаря

почему при дешифровке в слове с буковкой "в" в результате выдаёт восклицательный символ то есть не может его дешифрировать?




program SHIFR_CEZERYA;
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=1 then k:=(j+d) mod 33 else k:=(j-d)mod 33;
If kgt;33 then k:=k-33;
if klt;0 then k:=k+33;
if a[i]=b[j] then c:=c+b[k];
end;
writeln(c);
readkey;
end.

Задать свой вопрос
1 ответ
Ну во-первых должно быть приблизительно так
for i:=1 to length(a) do //цикл
for j:=1 to length(b) do
if a[i]=b[j] then
begin
If g=1 then k:=(j+d) mod 33 else k:=(33+j-d)mod 33;
c:=c+b[k];
end;

и во-вторых, 2-ой цикл не нужен, там надо выяснять 
значение j поиском a[i] в b, тогда и условия с a[i]=b[j] не надобно
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт