Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 976 ответов!

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

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.

TheShiget0 14 окт. 2013 г., 12:28:04 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Pridetrans
14 окт. 2013 г., 13:36:40 (10 лет назад)

ну во-первых должно быть примерно так
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












Для визуализации полученных данных постройте:

Читайте также

Шифр цезаря на паскале , почему не выдает при дешифрации букву В с ключом 3 и 5 и дальше!что исправить?

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.

Используя шифр Цезаря, декодировать следующие фразы:

а) Лмбттоьк шбт
б) Вёмпё тпмочё рфтуьой



Вы находитесь на странице вопроса "Паскаль шифр цезаря", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.