Паскаль шифр цезаряпочему при дешифровке в слове с буквой "в" в результате выдаёт восклицательный знак то есть не может его дешифровать?program SHIFR_CEZERYA;uses crt;var a,b,c:string;i,j,k,d,g:integer;beginclrscr;writeln('Шифр...

Паскаль шифр цезаря почему при дешифровке в слове с буквой "в" в результате выдаёт восклицательный знак то есть не может его дешифровать? 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 k>33 then k:=k-33; if k<0 then k:=k+33; if a[i]=b[j] then c:=c+b[k]; end; writeln(c); readkey; end.
Гость
Ответ(ы) на вопрос:
Гость
ну во-первых должно быть примерно так 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; и во-вторых, второй цикл не нужен, там надо выяснять  значение j поиском a[i] в b, тогда и условия с a[i]=b[j] не надо
Не нашли ответ?
Ответить на вопрос
Похожие вопросы