Паскаль шифр цезаря
5-9 класс
|
почему при дешифровке в слове с буквой "в" в результате выдаёт восклицательный знак то есть не может его дешифровать?
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] не надо
Другие вопросы из категории
Температура, °С
Давление, мм рт. ст.
Направление ветра
Облачность
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Для визуализации полученных данных постройте:
х:=1.5
х:=2*х+1
у:=х/2
у:=х+у
х:=х-у
Читайте также
Розшифруйте слово ТСДКЖСПОЗРРВ, зашифроване цим шифром:
считается написанным по кругу. Используя этот шифр, зашифруйте слово ИНФОРМАЦИЯ
кругу, используя этот шифр зашифруйте слова: информатика, компьютер, человек
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 a[i]=b[j] then c:=c+b[k];
If k>33 then k:=k-33 else k:=k+33;
end;
writeln(c);
readkey;
end.
а) Лмбттоьк шбт
б) Вёмпё тпмочё рфтуьой