i all the A langs
This commit is contained in:
parent
86c034bb8b
commit
9246b988c7
245 changed files with 3941 additions and 0 deletions
43
Task/Caesar-cipher/ALGOL-68/caesar-cipher.alg
Normal file
43
Task/Caesar-cipher/ALGOL-68/caesar-cipher.alg
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/local/bin/a68g --script #
|
||||
|
||||
program caesar: BEGIN
|
||||
|
||||
MODE MODXXVI = SHORT SHORT INT; # MOD26 #
|
||||
|
||||
PROC to m26 = (CHAR c, offset)MODXXVI:
|
||||
BEGIN
|
||||
ABS c - ABS offset
|
||||
END #to m26#;
|
||||
|
||||
PROC to char = (MODXXVI value, CHAR offset)CHAR:
|
||||
BEGIN
|
||||
REPR ( ABS offset + value MOD 26 )
|
||||
END #to char#;
|
||||
|
||||
PROC encrypt = (STRING plain, MODXXVI key)STRING:
|
||||
BEGIN
|
||||
[UPB plain]CHAR ciph;
|
||||
FOR i TO UPB plain DO
|
||||
CHAR c = plain[i];
|
||||
ciph[i]:=
|
||||
IF "A" <= c AND c <= "Z" THEN
|
||||
to char(to m26(c, "A")+key, "A")
|
||||
ELIF "a" <= c AND c <= "z" THEN
|
||||
to char(to m26(c, "a")+key, "a")
|
||||
ELSE
|
||||
c
|
||||
FI
|
||||
OD;
|
||||
ciph
|
||||
END #encrypt#;
|
||||
|
||||
# caesar main program #
|
||||
STRING text := "The five boxing wizards jump quickly" # OR read string #;
|
||||
MODXXVI key := 3; # Default key from "Bello Gallico" #
|
||||
|
||||
printf(($gl$, "Plaintext ------------>" + text));
|
||||
text := encrypt(text, key);
|
||||
printf(($gl$, "Ciphertext ----------->" + text));
|
||||
printf(($gl$, "Decrypted Ciphertext ->" + encrypt(text, -key)))
|
||||
|
||||
END #caesar#
|
||||
6
Task/Caesar-cipher/AutoHotkey/caesar-cipher-1.ahk
Normal file
6
Task/Caesar-cipher/AutoHotkey/caesar-cipher-1.ahk
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
n=2
|
||||
s=HI
|
||||
t:=&s
|
||||
While *t
|
||||
o.=Chr(Mod(*t-65+n,26)+65),t+=2
|
||||
MsgBox % o
|
||||
13
Task/Caesar-cipher/AutoHotkey/caesar-cipher-2.ahk
Normal file
13
Task/Caesar-cipher/AutoHotkey/caesar-cipher-2.ahk
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Caesar(string, n){
|
||||
Loop Parse, string
|
||||
{
|
||||
If (Asc(A_LoopField) >= Asc("A") and Asc(A_LoopField) <= Asc("Z"))
|
||||
out .= Chr(Mod(Asc(A_LoopField)-Asc("A")+n,26)+Asc("A"))
|
||||
Else If (Asc(A_LoopField) >= Asc("a") and Asc(A_LoopField) <= Asc("z"))
|
||||
out .= Chr(Mod(Asc(A_LoopField)-Asc("a")+n,26)+Asc("a"))
|
||||
Else out .= A_LoopField
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
MsgBox % Caesar("h i", 2) "`n" Caesar("Hi", 20)
|
||||
32
Task/Caesar-cipher/AutoIt/caesar-cipher.autoit
Normal file
32
Task/Caesar-cipher/AutoIt/caesar-cipher.autoit
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
$Caesar = Caesar("Hi", 2, True)
|
||||
MsgBox(0, "Caesar", $Caesar)
|
||||
Func Caesar($String, $int, $encrypt = True)
|
||||
If Not IsNumber($int) Or Not StringIsDigit($int) Then Return SetError(1, 0, 0)
|
||||
If $int < 1 Or $int > 25 Then Return SetError(2, 0, 0)
|
||||
Local $sLetters, $x
|
||||
$String = StringUpper($String)
|
||||
$split = StringSplit($String, "")
|
||||
For $i = 1 To $split[0]
|
||||
If Asc($split[$i]) - 64 > 26 Or Asc($split[$i]) - 64 < 1 Then
|
||||
$sLetters &= $split[$i]
|
||||
ContinueLoop
|
||||
EndIf
|
||||
If $encrypt = True Then
|
||||
$move = Asc($split[$i]) - 64 + $int
|
||||
Else
|
||||
$move = Asc($split[$i]) - 64 - $int
|
||||
EndIf
|
||||
If $move > 26 Then
|
||||
$move -= 26
|
||||
ElseIf $move < 1 Then
|
||||
$move += 26
|
||||
EndIf
|
||||
While $move
|
||||
$x = Mod($move, 26)
|
||||
If $x = 0 Then $x = 26
|
||||
$sLetters &= Chr($x + 64)
|
||||
$move = ($move - $x) / 26
|
||||
WEnd
|
||||
Next
|
||||
Return $sLetters
|
||||
EndFunc ;==>Caesar
|
||||
Loading…
Add table
Add a link
Reference in a new issue