Вопрос задан 01.04.2018 в 11:22. Предмет Информатика. Спрашивает Шишлова Олеся.

Вот шифр цезаря на паскале но в чем заключаеться вопрос , в том что если в слове есть буква близкая

к концу алфавита например я то прибавляя ключ(например 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.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Зайцева Ксения.

Кажется так.
необходи из алфавита вычесть общее количество знаков алфавита.
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.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос