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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2017, 17:39   #1
Nikitasd
Новичок
Джуниор
 
Регистрация: 15.05.2017
Сообщений: 1
Печаль Шифр Виета

Уважаемые программисты! Написал программу, по защите информации, которая осуществляет маршрутное шифрование. Она работает, но к сожалению только для случаев когда текст умещается в рамку выбранного нами двумерного массива nxm. Препод отказывается принимать, помогите зациклить пожалуйста, чтобы и для таких случаев работало:
Код:
program viet;
const alfavit = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
Type
matryx = array[0..256,0..256] of char;
var
i,j,k,n,b,x,l,a:integer;
s:char;
m:matryx;
fl:file of char;
parol:text;
shifr:file of char;
par:string;
hh : array[0..33] of byte;
begin 
writeln('введите m и n соответственно');
read(n,b);
assign(fl,'text.txt');
reset(fl);
assign(parol,'textpar.txt');
 reset(parol);
 read(parol,par);
 if b<>length(par) then
 begin
 writeln('Пароль должен содержать ' ,b,' символов, а содержит ',length(par));
 close(parol);
 exit;
 end;

            while not Eof(fl) do 
            begin
            for i:=1 to n do 
            begin  
            for j:=1 to b do 
                                              begin
                                              if Eof(fl)then 
                                              begin
                                         
                                                             begin
                                                             m[i,j]:=chr(random(32)+ord('а'));
                                                             write(m[i,j]:4);
                                                             end; 
                                                        continue
                                              end 
                                            else
                                            read(fl,S);                  
                               if pos(s,alfavit)>0 then
                               begin
                               m[i,j]:=s;
                               write(m[i,j]:4);
                               end         
                               else
                            begin
                                                             
                            read(fl,S);
                            m[i,j]:=s;
                            write(m[i,j]:4);
                            
                            end;                       
                         end;
                    writeln;
                    end;        
            writeln;
            l:=l+1;
                end;
              
              writeln('  -----------------------');
              
             
              assign(shifr,'shifr.txt');
              rewrite(shifr);
                          
              for a:=1 to l do
              begin
              for x:=1 to b do
                      begin
                          k:=1;
                          for i:=2 to b do
                          if par[i]<par[k] then k:=i;
                           par[k] := 'z';
                          write(k);
                          hh[x]:=k;
                      end;
                      for j:=1 to b do
                      begin
                      for i:=1 to n do 
                      write(shifr,m[i,hh[j]]);
                      end;   
              
              writeln;
              
        
              for x:=1 to b do
              begin
              k:=1;
              for i:=2 to b do
              if par[i]>par[k] then k:=i;
              par[k] := 'a';
              write(k);
              hh[x]:=k;
              end;
              writeln;
              for j:=1 to n do
              begin
              for i:=1 to b do 
              write(m[j,hh[i]]:4);
              writeln;
             end;
              end;   
              close(fl);
              close(shifr);
              writeln;
             
             

            
            
              
              
end.

Последний раз редактировалось Nikitasd; 15.05.2017 в 18:10.
Nikitasd вне форума Ответить с цитированием
Старый 16.05.2017, 10:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

это не поможет?
Маршрутное шифрование.PascalABC.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java квадратное уравнение с теоремой Виета gelix Помощь студентам 0 31.05.2013 17:55
Теорема Виета Voldemort93 Помощь студентам 4 27.08.2009 16:28
че за шифр? Анастасия123456789 Помощь студентам 4 11.05.2009 19:19
решение Квадратного уравнения методом Виета Claster Помощь студентам 3 16.09.2008 20:18