Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon



Like dokumenter
Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

Skilpadder hele veien ned. Steg 1: Tegn et fjell. Sjekkliste. Introduksjon. Hent frem skilpaddene dine, åpne IDLE, det er på tide å tegne igjen.

Flaksefugl Nybegynner Scratch Lærerveiledning

Enarmet banditt Nybegynner Scratch Lærerveiledning

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

Skilpadder hele veien ned

Fyrverkeri Nybegynner Scratch Lærerveiledning

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

Skilpaddefraktaler Erfaren Python PDF

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang

Øvingsforelesning i Python (TDT4110)

Skilpadder hele veien ned

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Skilpadder Introduksjon Python PDF

Straffespark Introduksjon Scratch Lærerveiledning

Felix og Herbert Introduksjon Scratch PDF

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Stjerner og galakser Nybegynner Python PDF

Kanter, kanter, mange mangekanter

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Steg 1: Regneoperasjoner på en klokke

Hangman. Level. Introduksjon

Kryptering med vigenere-metoden

Gangemesteren Nybegynner Scratch PDF

Steg 1: Lag en figur som bytter drakt

Skilpadder. Introduksjon: Steg 1: Hei, Skilpadde! Sjekkliste. Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk)

Utførelse av programmer, metoder og synlighet av variabler i JSP

Forberedelser: Last ned bildefiler

Tegneprogram Journeyman Scratch PDF

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

Steg 2: La løvinnen og papegøyen bevege seg

Steg 1: Få Flakse til å falle

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Repetisjon Novice Videregående Python PDF

Mattespill Nybegynner Python PDF

Skrevet av: Oversatt fra microbit-micropython.readthedocs.io (

Steg 1: Felix følger musepekeren

Kryptering med Vigenère-metoden

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

Løpende strekmann Erfaren Videregående Python PDF

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster

Spøkelsesjakten. Introduksjon

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Steg 1: JafseFisk følger musepekeren

Sprettende ball Introduksjon Processing PDF

Skilpaddetekst. Steg 1: Tekst på flere linjer. Sjekkliste. Introduksjon

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

INF109 - Uke 1b

Forberedelser: Last ned bildefiler

Labyrint Introduksjon Scratch Lærerveiledning. Steg 1: Hvordan styre figurer med piltastene

Bygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon

PGZ - Hangman Ekspert Python Lærerveiledning

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

Verden. Steg 1: Vinduet. Introduksjon

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

Introduksjon til ComputerCraft Introduksjon ComputerCraft PDF

Steg 1: Lag et flyvende spøkelse

Brukerveiledning. For student hjemmeeksamen

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

HTML: Legg til lyd og video

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Steg 1: Tekst på flere linjer

Guide for tilkobling til HIKT s Citrix løsning

Hva er det? Steg 1: Få flere ting til å vise seg på tavlen. Sjekkliste. Test prosjektet. Introduksjon

Steg 1: Lag en scene og legg til figurer

Steg 1: Husker du skilpadden?

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Bruk av oppgaver og grupper i

Fra datax til Visma eaccounting

Sprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen

Frantic Felix Ekspert Scratch

HØGSKOLEN I SØR-TRØNDELAG

Import av varer fra Excel

JS: Grunnleggende JavaScript Nybegynner

Oppgaver uke 1: Løsningsforslag

Velkommen som ny bruker av Uni Økonomi!

Legg merke til at at over de blå klossene er det flere kategorier av kommandoer i forskjellige farger, for eksempel

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

I denne oppgaven skal du lære hvordan du kan flytte rundt på elementer og gjemme elementene bak andre elementer ved hjelp av CSS.

Hvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle

Flagg Erfaren Scratch Lærerveiledning

Transkript:

Hemmelige koder Nybegynner Python Introduksjon Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder! Kodeklubb-koden Et chiffer er et system for å gjøre om vanlig tekst til kode som ikke andre skal kunne lese. Vi skal bruke et av de eldste og mest berømte chifferene, Cæsar-chifferet eller Cæsars kode - oppkalt etter Gaius Julius Cæsar som sannsynligvis brukte det til å sende hemmelige beskjeder. Det er neppe den beste måten å hindre andre i å lese beskjedene dine, men det kommer vi tilbake til. Det finnes ferdige moduler til Python du kan bruke hvis du vil lage noe som skal være vanskelig å knekke, men nå skal vi forsøke å lage Cæsar-chifferet selv. Start med å tegne alle bokstavene i en sirkel. Å Ø Æ Z A B C D Y E X F W G V H U I T J S R Q P L M O N K For å lage en hemmelig bokstav fra en vanlig bokstav, trenger vi et tall vi kan bruke som hemmelig nøkkel. Jeg liker tallet 3, det er et magisk tall, så vi bruker det. A + 3 = D T + 3 = W Å + 3 = C Vi begynner med A og teller fremover 3 bokstaver: B, C, D. Så bokstaven A blir til bokstaven D. For å dekode gjør vi det samme, men baklengs. Vi begynner med D og teller bakover for å få A. Steg 1: Alfabetet Her kan du få trøbbel med norske bokstaver om du ikke har Python 3. Du har Python 2 dersom det står 2.6 eller 2.7 i IDLE. I så fall må du legge en u foran tekst som er inni "". For eksempel blir alfabetet under u"abcdefghijklmnopqrstuvwxyzæøå". u -en betyr at teksten er av typen Unicode som støtter alle norske bokstaver. Først må vi lære python alfabetet. Åpne IDLE og lag en ny fil med koden under:

print(len(alphabet)) Når du kjører dette programmet skal det skrive ut 29. Pass på at du har med alle bokstavene, ellers kommer ikke den hemmelige koden din til å virke. Hvis du er fornøyd med alfabetet ditt kan vi begynne å kode en bokstav. Steg 2: Kode en bokstav Akkurat som vi gjorde med hjulet ovenfor kan vi finne posisjonen til en bokstav ved å telle forover, og så bruke bokstaven vi ender opp med. Skriv inn koden under og kjør den: letter = "a" secret = 3 secretletter = alphabet[newpos] print(secretletter) Vi slår opp hvor "a" er i alfabetet og legger til det hemmelige tallet vårt for å telle fremover. Vi sjekker om vi har gått rundt, hvis vi har det må vi gå en hel runde tilbake igjen ved å trekke fra 29 (dette er litt som med gradene, å trekke fra 360 gjør at vi er akkurat der vi var). Så slår vi opp i alfabetet igjen for å se hvilken hemmelige bokstav vi fikk. Kjør koden og se hva som skjer. La oss ta en titt på koden igjen, men vi tar det sakte. Du trenger ikke å skrive dette! Alt som står bak firkant-tegnet bryr python seg vanligvis ikke om, det er bare kommentarer til mennesker som skal lese koden.

# alphabet er navnet på teksten fra a til å alphabet = "abcdefghijklmnopqrstuvwxyz" # Den hemmelige bokstaven (letter) og det hemmelige tallet # (secret) vi bruker for å kode det letter = "a" secret = 3 # Finn posisjonen til bokstaven. Python vil gi oss et # tall fra 0 til 28 (python teller fra 0) # Gå like langt fremover som det hemmelige tallet sier # Hvis vi har telt for langt, må vi gå en runde tilbake # for å få et tall mellom 0 og 28 # Slå opp denne posisjonen for å se hvilken bokstav # i alfabetet som står der secretletter = alphabet[newpos] # Skriv denne bokstaven ut på skjermen print(secretletter) Det er mye python-ting som skjer her, men ikke bli skremt om du ikke forstår alt til å begynne med. Mye av dette er akkurat som i scratch. if newpos >= 29 er bare en if -setning, en ting som bare kjører koden under hvis det som står etter if er sant. En if -setning bruker en innrykksblokk, akkurat som for og def som vi har sett tidligere. Nå som vi kan kode en bokstav, hva med å dekode en? Steg 3: Finne tilbake bokstavene Akkurat som i koden fra den forrige oppgaven skal vi finne posisjonen til bokstaven, men denne gangen skal vi gå bakover i alfabetet for å dekode. Forsøk å skriv inn denne koden og kjør den: secret = 17 secretletter = "r" pos = alphabet.find(secretletter) newpos = pos - secret if newpos < 0: newpos = newpos + 29 letter = alphabet[newpos] print(letter) Steg 4: Bygge funksjoner La oss ta koden som lager og leser Cæsar-koder og gjøre den om til to funksjoner. Gi den ene funksjonen navnet encode og den andre funksjonen navnet decode. Tips: Dersom du aldri har hørt om funksjoner, kan du lese mer om de i Skilpaddeskolen.

For å få en funksjon til å sende tilbake en verdi bruker vi return. Dette gjør at vi kan lagre funksjonens resultat til en variabel og deretter bruke variabelen. Lag en fil som ser slik ut: def encode(letter, secret): return alphabet[newpos] def decode(letter, secret): newpos = (pos - secret) if newpos < 0: newpos = newpos + 29 return alphabet[newpos] print(encode("a", 17)) print(decode("r", 17)) Husk at du kan bruke 'Tab' i IDLE for å få innrykk. Du kan også merke deler av koden og rykke alt inn på en gang. Prøv å kode og dekode noen bokstaver! Steg 5: Send et hemmelig ord eller to, og finn dem tilbake igjen Nå har vi noen funksjoner, la oss bruke dem til å kode ord. Vi kommer til å gå igjennom hver bokstav i ordet og kode det hvis det finnes i alfabetet (vi hopper over tegn som punktum og mellomrom). Under de nye funksjonene fra forrige oppgave kan du skrive inn koden under (med andre ord: behold det du gjorde i oppgave 4, og legg til koden under).

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 = "yvååc kcfåu" output = "" for character in message: if character in alphabet: output = output + decode(character, secret) else: output = output + character print(output) Kjør programmet og se hva som skjer. Den første delen av koden burde skrive ut "yvååc kcfåu", som er den hemmelige versjonen av "hello world". Den andre delen dekoder det igjen og skriver ut "hello world" Steg 6: Dekoding av noen hemmelige beskjeder Her er noen hemmelige beskjeder, forsøk å dekode dem! daczj ym cgyzcdmwwzf?, hemmeligheten er 21. æxkxånwn næ bnwwnwn mrwn, hemmeligheten er 9. Prøv å sende noen beskjeder til vennene dine! Hva med å lage et Python-program som forsøker seg på alle mulige hemmelige tall og forsøker å knekke koder selv om du ikke kan det hemmelige tallet? Lisens: Code Club World Limited Terms of Service Forfatter: Oversatt fra Code Club UK Oversetter: Bjørn Einar Bjartnes