Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Vi skal her gå gjennom de viktigste forskjellene, med utgangspunkt i leksjon (lesson) 5 del 3 i Python-delen av Kodeklubben.Python-leksjonen om koding av tekst. Dersom du ikke husker hva det dreide seg om så finner du hele denne leksjonen her: lesson03.pdf

Fra Python til Java

Code Block
languagepython
titleVersjon 1
linenumberstrue
alphabet = "abcdefghijklmnopqrstuvwxyz"

def encode(letter, secret):
    pos = alphabet.find(letter)
    newpos = (pos + secret)
    if newpos >= 26:
        newpos = newpos - 26
    return alphabet[newpos]

def decode(letter, secret):
    pos = alphabet.find(letter)
    newpos = (pos - secret)
    if newpos < 0:
        newpos = newpos + 26
    return alphabet[newpos]

secret = 17
message = "hello world"
output = ""
for character in message:
    if character in alphabet:
        output = output + encode(character, secret)
    else:
        output = output + character
    print(output)

secret = 17
message = "yvccf nficu"
output = ""
for character in message:
    if character in alphabet:
        output = output + decode(character, secret)
    else:
        output = output + character
    print(output)
Code Block
languagepython
titleVersjon 2
linenumberstrue
# alphabet-variablen er lagt utenfor funksjonene, slik at den kan brukes av dem alle
alphabet = "abcdefghijklmnopqrstuvwxyz"

def encode(letter, secret):
    pos = alphabet.find(letter)
    newpos = (pos + secret)
    if newpos >= 26:
        newpos = newpos - 26
    return alphabet[newpos]

def decode(letter, secret):
    pos = alphabet.find(letter)
    newpos = (pos - secret)
    if newpos < 0:
        newpos = newpos + 26
    return alphabet[newpos]

# run()-funksjonen samler koden som tidligere lå utenfor funksjonene
def run():
    message = "hello world"
    secret= 17
    output = ""
    for character in message:
        if character in alphabet:
            output = output + encode(character, secret)
        else:
            output = output + character
        print(output)
    message = "yvccf nficu"
    output = ""
    for character in message:
        if character in alphabet:
            output = output + decode(character, secret)
        else:
            output = output + character
        print(output)

# her kalles samlefunksjonen, som vi vil kalle "hovedprogramfunksjonen"
run()

For å gjøre det litt lettere å "oversette" Python-koden til Java, så gjør vi først en liten omstrukturering av Python-koden. Versjon 1 over til venstre er originalkoden fra pdf-filen, mens vi i versjon 2 har samlet (det meste av) koden som ikke allerede er inni en funksjon, i en run()-funksjon. Den eneste koden utenfor funksjonene er 1) variabler som er greit at alle funksjonene bruker og 2) et kall til "hovedprogrammetoden", dvs. funksjonen vi samlet vi samlet koden i.