Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,55 +0,0 @@
|
|||
WITH Ada.Text_IO, Ada.Characters.Handling;
|
||||
USE Ada.Text_IO, Ada.Characters.Handling;
|
||||
|
||||
PROCEDURE Main IS
|
||||
SUBTYPE Alpha IS Character RANGE 'A' .. 'Z';
|
||||
TYPE Ring IS MOD (Alpha'Range_length);
|
||||
TYPE Seq IS ARRAY (Integer RANGE <>) OF Ring;
|
||||
|
||||
FUNCTION "+" (S, Key : Seq) RETURN Seq IS
|
||||
R : Seq (S'Range);
|
||||
BEGIN
|
||||
FOR I IN R'Range LOOP
|
||||
R (I) := S (I) + Key (Key'First + (I - R'First) MOD Key'Length);
|
||||
END LOOP;
|
||||
RETURN R;
|
||||
END "+";
|
||||
|
||||
FUNCTION "-" (S : Seq) RETURN Seq IS
|
||||
R : Seq (S'Range);
|
||||
BEGIN
|
||||
FOR I IN R'Range LOOP
|
||||
R (I) := - S (I);
|
||||
END LOOP;
|
||||
RETURN R;
|
||||
END "-";
|
||||
|
||||
FUNCTION To_Seq (S : String) RETURN Seq IS
|
||||
R : Seq (S'Range);
|
||||
I : Integer := R'First;
|
||||
BEGIN
|
||||
FOR C OF To_Upper (S) LOOP
|
||||
IF C IN Alpha THEN
|
||||
R (I) := Ring'Mod (Alpha'Pos (C) - Alpha'Pos (Alpha'First));
|
||||
I := I + 1;
|
||||
END IF;
|
||||
END LOOP;
|
||||
RETURN R (R'First .. I - 1);
|
||||
END To_Seq;
|
||||
|
||||
FUNCTION To_String (S : Seq ) RETURN String IS
|
||||
R : String (S'Range);
|
||||
BEGIN
|
||||
FOR I IN R'Range LOOP
|
||||
R (I) := Alpha'Val ( Integer (S (I)) + Alpha'Pos (Alpha'First));
|
||||
END LOOP;
|
||||
RETURN R;
|
||||
END To_String;
|
||||
|
||||
Input : Seq := To_Seq (Get_Line);
|
||||
Key : Seq := To_Seq (Get_Line);
|
||||
Crypt : Seq := Input + Key;
|
||||
BEGIN
|
||||
Put_Line ("Encrypted: " & To_String (Crypt));
|
||||
Put_Line ("Decrypted: " & To_String (Crypt + (-Key)));
|
||||
END Main;
|
||||
Loading…
Add table
Add a link
Reference in a new issue