Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
152
Task/Vigen-re-cipher/NetRexx/vigen-re-cipher.netrexx
Normal file
152
Task/Vigen-re-cipher/NetRexx/vigen-re-cipher.netrexx
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
/* NetRexx */
|
||||
options replace format comments java crossref savelog symbols nobinary
|
||||
|
||||
pt = 'Attack at dawn!'
|
||||
key = 'LEMON'
|
||||
test(key, pt)
|
||||
|
||||
key = 'N' -- rot-13
|
||||
test(key, pt)
|
||||
|
||||
key = 'B' -- Caesar
|
||||
test(key, pt)
|
||||
|
||||
pt = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
key = 'A'
|
||||
test(key, pt)
|
||||
|
||||
pt = sampledata()
|
||||
key = 'Hamlet; Prince of Denmark'
|
||||
test(key, pt)
|
||||
|
||||
return
|
||||
|
||||
method vigenere(meth, key, text) public static
|
||||
|
||||
select
|
||||
when 'encipher'.abbrev(meth.lower, 1) then df = 1
|
||||
when 'decipher'.abbrev(meth.lower, 1) then df = -1
|
||||
otherwise signal IllegalArgumentException(meth 'must be "encipher" or "decipher"')
|
||||
end
|
||||
|
||||
alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
|
||||
text = stringscrubber(text)
|
||||
key = stringscrubber(key)
|
||||
code = ''
|
||||
loop l_ = 1 to text.length()
|
||||
M = alpha.pos(text.substr(l_, 1)) - 1
|
||||
k_ = (l_ - 1) // key.length()
|
||||
K = alpha.pos(key.substr(k_ + 1, 1)) - 1
|
||||
C = mod((M + K * df), alpha.length())
|
||||
C = alpha.substr(C + 1, 1)
|
||||
code = code || C
|
||||
end l_
|
||||
|
||||
return code
|
||||
|
||||
method vigenere_encipher(key, plaintext) public static
|
||||
|
||||
return vigenere('encipher', key, plaintext)
|
||||
|
||||
method vigenere_decipher(key, ciphertext) public static
|
||||
|
||||
return vigenere('decipher', key, ciphertext)
|
||||
|
||||
method mod(N = int, D = int) private static
|
||||
|
||||
return (D + (N // D)) // D
|
||||
|
||||
method stringscrubber(cleanup) private static
|
||||
|
||||
alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
|
||||
cleanup = cleanup.upper.space(0)
|
||||
loop label f_ forever
|
||||
x_ = cleanup.verify(alpha)
|
||||
if x_ = 0 then leave f_
|
||||
cleanup = cleanup.changestr(cleanup.substr(x_, 1), '')
|
||||
end f_
|
||||
|
||||
return cleanup
|
||||
|
||||
method test(key, pt) private static
|
||||
|
||||
ct = vigenere_encipher(key, pt)
|
||||
display(ct)
|
||||
dt = vigenere_decipher(key, ct)
|
||||
display(dt)
|
||||
|
||||
return
|
||||
|
||||
method display(text) public static
|
||||
|
||||
line = ''
|
||||
o_ = 0
|
||||
loop c_ = 1 to text.length()
|
||||
b_ = o_ // 5
|
||||
o_ = o_ + 1
|
||||
if b_ = 0 then line = line' '
|
||||
line = line || text.substr(c_, 1)
|
||||
end c_
|
||||
|
||||
say '....+....|'.copies(8)
|
||||
loop label l_ forever
|
||||
parse line w1 w2 w3 w4 w5 w6 W7 w8 w9 w10 w11 w12 line
|
||||
pline = w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12
|
||||
say pline.strip()
|
||||
if line.strip().length() = 0 then leave l_
|
||||
end l_
|
||||
say
|
||||
|
||||
return
|
||||
|
||||
method sampledata() private static returns Rexx
|
||||
|
||||
NL = char('\n')
|
||||
antic_disposition = Rexx[]
|
||||
|
||||
antic_disposition = [ -
|
||||
Rexx("To be, or not to be--that is the question:" ), -
|
||||
Rexx("Whether 'tis nobler in the mind to suffer" ), -
|
||||
Rexx("The slings and arrows of outrageous fortune" ), -
|
||||
Rexx("Or to take arms against a sea of troubles" ), -
|
||||
Rexx("And by opposing end them. To die, to sleep--" ), -
|
||||
Rexx("No more--and by a sleep to say we end" ), -
|
||||
Rexx("The heartache, and the thousand natural shocks" ), -
|
||||
Rexx("That flesh is heir to. 'Tis a consummation" ), -
|
||||
Rexx("Devoutly to be wished. To die, to sleep--" ), -
|
||||
Rexx("To sleep--perchance to dream: ay, there's the rub,"), -
|
||||
Rexx("For in that sleep of death what dreams may come" ), -
|
||||
Rexx("When we have shuffled off this mortal coil," ), -
|
||||
Rexx("Must give us pause. There's the respect" ), -
|
||||
Rexx("That makes calamity of so long life." ), -
|
||||
Rexx("For who would bear the whips and scorns of time," ), -
|
||||
Rexx("Th' oppressor's wrong, the proud man's contumely" ), -
|
||||
Rexx("The pangs of despised love, the law's delay," ), -
|
||||
Rexx("The insolence of office, and the spurns" ), -
|
||||
Rexx("That patient merit of th' unworthy takes," ), -
|
||||
Rexx("When he himself might his quietus make" ), -
|
||||
Rexx("With a bare bodkin? Who would fardels bear," ), -
|
||||
Rexx("To grunt and sweat under a weary life," ), -
|
||||
Rexx("But that the dread of something after death," ), -
|
||||
Rexx("The undiscovered country, from whose bourn" ), -
|
||||
Rexx("No traveller returns, puzzles the will," ), -
|
||||
Rexx("And makes us rather bear those ills we have" ), -
|
||||
Rexx("Than fly to others that we know not of?" ), -
|
||||
Rexx("Thus conscience does make cowards of us all," ), -
|
||||
Rexx("And thus the native hue of resolution" ), -
|
||||
Rexx("Is sicklied o'er with the pale cast of thought," ), -
|
||||
Rexx("And enterprise of great pith and moment" ), -
|
||||
Rexx("With this regard their currents turn awry" ), -
|
||||
Rexx("And lose the name of action. -- Soft you now," ), -
|
||||
Rexx("The fair Ophelia! -- Nymph, in thy orisons" ), -
|
||||
Rexx("Be all my sins remembered." ) -
|
||||
]
|
||||
|
||||
melancholy_dane = Rexx('')
|
||||
loop l_ = 0 for antic_disposition.length
|
||||
melancholy_dane = melancholy_dane || antic_disposition[l_] || NL
|
||||
end l_
|
||||
|
||||
return melancholy_dane
|
||||
Loading…
Add table
Add a link
Reference in a new issue