[pascal] szyfr cezara

Witam,

Mam duży problem odnośnie szyfru cezara. Chodzi o to że osoba przed komputerem ma podać Tekst, po czym podaje klucz i program wyświetla zakodowany tekst, ale to nie koniec ponieważ w tym ma się jeszcze znaleść deszyfrator czyli po tym wszystkim program ma znowu zapytać o klucz i gdy będzie poprawny, nastąpi deszyfracja.

 

Jestem początkujacym wiec proszę was o pomoc :slight_smile:

kubmat230, na forum używamy polskich znaków (ż, ł, ć, ś, ą itp.). Proszę wyedytować swojego posta i poprawić co trzeba. Niezastosowanie się do prośby będzie skutkowało przeniesieniem tematu do śmietnika.

A co do pytania - pokaż co do tej pory zrobiłeś, bo jak chcesz żeby ktoś zrobił za Ciebie wszystko, to powiedz ile zapłacisz, to może ktoś się znajdzie.

program cezar;
uses crt;
var tekst:string;
    i:integer;
    klucz:char;

Begin
   ClrScr;
   WriteLn('podaj tekst');
   ReadLn(tekst);
   WriteLn('podaj klucz');
   ReadLn(klucz);
   
   for i:=1 to length(tekst) do
   begin
      write(chr(tekst[i])+[klucz]);
   end;
   
   WriteLn('To Zaszyfrowany Tekst',tekst);
   ReadLn;
end.

Poprawiłem kod Lecz działa tylko w jedną stronę.

program cezar;
uses crt;
var tekst:string;
    i:integer;
    klucz:LongWord;

Begin
   ClrScr;
   WriteLn('podaj tekst');
   ReadLn(tekst);
   WriteLn('Podaj Klucz');
   ReadLn(klucz);

   for i:=1 to length(tekst) do

   Begin
      write(chr(ord(tekst[i])+klucz));
   end;
   ReadLn;
end.

Mamy ponad 20 znaków w alfabecie, Szyfr musiałby być ðługi. O ile wiem, to szyfr cezara polega na podmianie litery na daną w kluczu.