Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Помогите пожалуйста с решением задачиМетод Цезаря с лозунгом
Здравствуйте, помогите пожалуйста с решением шифрования и дешифрования: Методом Цезаря с лозунгом. Использовать русский алфавит, сдвиг на 3 знака, работа с файлами (лозунг и текст брать из файла).

Например:
лозунг: пришел,_увидел,_победил      ( "_" - пробел)
текст: ручка
алфавит: абвгдежзийклмнопрстуфхцчшщъыьэюя
алф. лозунга: пришёл,_увдеобагжзйкмнстфхцчщъыьэюя.
шифр: ёеысз

Алфавит лозунга должен получиться из лозунга+алфавит, без повторяющихся букв. Потом берем первую букву текста "Р" и ищем в алф. лозунга соответствующую ей по счету букву (сдвиг +3), получается "ё" и т.д., так и получается шифр.

У меня есть готовый код Шифра Цезаря но я не могу переделать в шифр Цезаря с лозунгом, вот код:




Код
unit Unit1;     
{$mode objfpc}{$H+}interfaceuses  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,  
      StdCtrls, ComCtrls;  

type  { TForm1 }  TForm1 = class(TForm)    Button1: TButton;  
        Button2: TButton;  
        Button3: TButton;  
        Button4: TButton;  
        Button5: TButton;  
        Edit1: TEdit;  
        Edit2: TEdit;  
        Label1: TLabel;  
        Label2: TLabel;  
        OpenDialog1: TOpenDialog;  
        ProgressBar1: TProgressBar;  
        SaveDialog1: TSaveDialog;  
        procedure Button1Click(Sender: TObject);  
        procedure Button2Click(Sender: TObject);  
        procedure Button3Click(Sender: TObject);  
        procedure Button4Click(Sender: TObject);  
        procedure Button5Click(Sender: TObject);  private  
        { private declarations }  public  
        { public declarations }  end; var  Form1: TForm1;  

{ TForm1 }procedure TForm1.Button1Click(Sender: TObject);  
begin  
if form1.OpenDialog1.Execute  
then  
form1.Edit1.Caption:=form1.OpenDialog1.FileName;  
end;  

procedure TForm1.Button2Click(Sender: TObject);  

begin  
      if form1.SaveDialog1.Execute  
      then  
      form1.Edit2.Caption:=form1.SaveDialog1.FileName;  
end;  

procedure TForm1.Button3Click(Sender: TObject);  

var f1,f2: file of byte;a,b,c:byte;  
fs,fp:int64;  

begin  
assignFile(f1,form1.Edit1.Text);  
reset(f1);  
assignfile(f2,form1.Edit2.Text);  
rewrite(f2);  
fs:=filesize(f1);  
while not eof(f1) do  

     begin                    fp:=filepos(f1);  
                       read(f1,a);  
                       b:=a+3;                    write(f2,b);  
                       c:=round(fp/fs*100);                    form1.ProgressBar1.Position:=c;  
                       end;closefile(f2);  
closefile(f1);  

end;  

procedure TForm1.Button4Click(Sender: TObject);  

var f1,f2: file of byte;a,b,c:byte;  
      fs,fp:int64;  

begin  

assignFile(f2,form1.Edit1.Text);  
reset(f2);  
assignfile(f1,form1.Edit2.Text);  
rewrite(f1);  
fs:=filesize(f2);  
while not eof(f2) do  

     begin  
     fp:=filepos(f2); read(f2,a);  
     b:=a-3;  
write(f1,b);  
                       c:=round(fp/fs*100);                    form1.ProgressBar1.Position:=c;  

     end;  

closefile(f2);  
closefile(f1);  
end;

Нужно сделать точно также как в этой программе только с шифром Цезаря с лозунгом.
1 | Автор: Jenya | 2013-03-27, 07:24 | Изменено: Jenya - Ср, 2013-03-27, 07:26   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: