Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2012, 20:02   #1
hpc
Новичок
Джуниор
 
Регистрация: 18.11.2012
Сообщений: 2
По умолчанию Нужно сделать программу магический квадрат

Нужно сделать программу которая зашифровывает и дешифровывает текст с помощью магического квадрата.Я сделал квадрат 4х4 но нужно чтобы можно было изменять (редактировать) размеры квадрата 3х3,5х5.Не могу понять как. помогите!

Код Delphi
Код:
var
  Form1: TForm1;
  key: array[0..3, 0..3] of integer = ((16,3,2,13),(5,10,4,8),(9,6,7,12),(11,15,14,1));
  main, encr, decr: array [0..3 ,0..3] of char;
  text_str: string;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k,l: integer;
begin
  Edit2.Text:='';
  Edit3.Text:='';
  for i:=0 to 3 do
  for l:=0 to  3 do
  Stringgrid2.Cells[i,l]:='';
  text_str:=Edit1.Text;
  if length(text_str)<=16 then
  j:=length(text_str) else j:=16;
 
  for k:=1 to j do
  begin
    for i:=0 to 3 do
     for l:=0 to  3 do
     if Stringgrid1.Cells[i,l]=inttostr(k) then
     Stringgrid2.Cells[i,l]:=text_str[k] else ;
  end;
 
  for i:=0 to 3 do
  for k:=0 to 3 do
   Edit2.Text:=Edit2.Text+Stringgrid2.Cells[k,i];
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k,l: integer;
begin
  text_str:=edit2.Text;
  if length(text_str)<=16 then
  j:=length(text_str) else j:=16;
  k:=0;
  l:=0;
  for i:=1 to j do
  begin
    encr[l,k]:=text_str[i];
    l:=l+1;
    if (i mod 4)=0 then
    begin
      k:=k+1;
      l:=0;
    end;
  end;
 
  for k:=1 to j do
  begin
    for i:=0 to 3 do
     for l:=0 to 3 do
     if Stringgrid1.Cells[i,l]=inttostr(k) then
     edit3.text:=edit3.Text+stringgrid2.Cells[i,l];
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var i,j,k,l: integer;
begin
  for i:=0 to 3 do
  for j:=0 to 3 do
   Stringgrid1.Cells[j,i]:=inttostr(key[i,j]);
end;
end.
hpc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
магический квадрат ДеТкА Паскаль, Turbo Pascal, PascalABC.NET 4 13.06.2012 15:29
Магический квадрат VIK_aka_TOR Помощь студентам 1 15.04.2011 23:53
Магический квадрат morgan97 Паскаль, Turbo Pascal, PascalABC.NET 5 09.04.2011 17:10
магический квадрат Irk-O Помощь студентам 3 11.10.2010 13:00
Магический квадрат Гаджи Помощь студентам 5 24.10.2009 09:46