Pisze to do osób, które wiedzą jak działa szyfr Vigenere'a. Nie chcę, żeby ktoś za mnie go napisał, tylko licze na drobną pomoc, jak np. znajdowanie błędów w kodzie albo podsuwanie pomysłu jakiego polecenia użyć.
Przejdźmy do rzeczy. Aktualnie mam zrobioną procedurę wykonującą tablicę z kluczem
Niestety nie mogę sprawdzić czy we właściwe miejsca są wstawiane odpowiednie litery, bo program, którego kod podaję poniżej nie działa. Właśnie teraz przydałaby się czyjaś pomoc.
----------------------------------------------------
program szyfr_Vigenere;
uses crt;
var i,j:integer;
tab:array[1..26] of char;
klucz:array[1..26,1..26] of char;
procedure _klucz;
begin
for i:=1 to 26 do
begin
case i of
1:tab:='A';
2:tab:='B';
3:tab:='C';
4:tab:='D';
5:tab:='E';
6:tab:='F';
7:tab:='G';
8:tab:='H';
9:tab:='I';
10:tab:='J';
11:tab:='K';
12:tab:='L';
13:tab:='M';
14:tab:='N';
15:tab:='O';
16:tab:='P';
17:tab:='Q';
18:tab:='R';
19:tab:='S';
20:tab:='T';
21:tab:='U';
22:tab:='V';
23:tab:='W';
24:tab:='X';
25:tab:='Y';
26:tab:='Z';
end;
for j:=1 to 26 do
for i:=1 to 26 do
klucz[i,j]:=tab[(i+j-1)mod 26];
end;
{procedure wczytywanie teksu;
begin
writeln('podaj tekst');
end; }
begin
clrscr;
for j:=1 to 26 do
begin
for i:=1 to 26 do
write(klucz[i,j]);
writeln;
end;
readkey;
end.
----------------------------------------------------
Ogólny plan działania programu jest taki:
A:szyfrowanie
1. wczytuje tekst(tutaj chyba należałoby wykorzystać tablicę z określoną ilością miejsc. Pozostałe miejsca wypałnić np. zankami 'X')
2. wczytuje klucz(na początku założyć, że ma to być tekst np. 5-cio literowy)
3. Program wyszukuje, współrzędne odpowiedniej litery tekstu zakodowanego w tablicy, poprzez porównywanie liter tekstu z pionowym, górnym rzędem tablicy klucza, oraz liter klucza posiomym, lewym rzędem liter(wszystko na pętlach).
Co o tym myślicie? Jakieś nowe pomysły/poprawki? Za wszelka pomoc będę bardzo wdzięczny.