Apua! ja äkkiin kans pliis

Saku-foorumi » Uusi sukupolvi: MorphOS » Ohjelmointi » Viestit 2006 » Apua! ja äkkiin kans pliis « Edellinen Seuraava »

Kirjoittaja Viesti
 

palle
Perjantaina, 3. helmikuuta, 2006 - klo 13.17:   
Ongelma olis ku pitäs saaha yks ohjelma tehtyä:

Eli pitäs saada koodausohjelma saksalaisten 2 maailmansodan ajoilta olevasta koneesta.

ELI tässä olis haaveiltu toteutusmenetelmä:
tekstit suluissa on ohjeita

*****************************************************************

(Alkuteksti ja valinta)
Koodausohjelma 2005

Mitä haluaisit tehdä?
(1) LUODA KOODATUN VIESTIN
(2) LUKEA KOODATUN VIESTIN
-----------------------------------------------
(JOS käyttäjä valitsee "1" tulosta seuraava: )

(Käyttäjä valitsee koodiavaimen pituuden)

LUO KOODATTU VIESTI

Syötä koodiavaimen pituus (2-5): esim.3

(Ohjelma luo avaimen)
Ohjelma on luonut seuraavan avaimen:
8, 1, 2

(Seuraavaksi käyttäjä syöttää viestin joka pitäisi koodata)
Kirjoita viesti jonka tahtoisit koodata:

ENGLAND

(Ohjelma koodaa koodisanan koodiavaimen avulla)
Luomasi koodisana:

MOITBPL

>

(Ohjelma palaa alkuun)

-----------------------------------------------
(JOS käyttäjä valitsee "2" tulosta seuraava: )


(Käyttäjä syöttää koodiavaimen jolla koodisana puretaan)
LUE KOODATTU VIESTI

Syötä koodiavaimen pituus: 3

(Käyttäjä syöttää tarvittavat koodinumerot)
Kirjoita nr 1: 8
Kirjoita nr 2: 1
Kirjoita nr 3: 2

(Käyttäjä syöttää koodatun viestin)
Syötä koodattu sana jonka haluat lukea:

MOITBPL

(Ohjelma koodaa sanan alkuperäiseen muotoon ja tulostaa sen)
Viestisi on purettu ja se on:

ENGLAND

>

(Ohjelma palaa alkuun)

 

Jon
Perjantaina, 3. helmikuuta, 2006 - klo 13.35:   
Niin mikä tässä on varsinainen ongelma? Mihin homma tyrehtyy?

 

Jani Kuituniemi
Perjantaina, 3. helmikuuta, 2006 - klo 16.07:   
Lisäksi: noita Enigma emulaattoreita on aika kasa maailmalla.
Oletko ihan varma, että kannattaa alkaa tehdä alusta asti itse?

 

Piru
Perjantaina, 3. helmikuuta, 2006 - klo 16.44:   
Eikös nämä kotitehtävät ole tarkoitettu tehtäväksi itse? :)

 

palle
Perjantaina, 3. helmikuuta, 2006 - klo 17.55:   
Olen alkanut itsepäisesti opiskelemaan ohjelmointia ja ostin kirjat sun muut mutten oikeen tajua täysin miten tuo tehtäis parhaiten. Ei ole rahoitusta koulunpenkille enää joten ...

En siis oikeen ymmärrä että miten ne randominumerot yhistetään silleen että ne vaihtas koodais sen sanan int-arvot... ehkä vaan sen verran avuja ku näyttää olevan nihkeetä tää helppaus?

 

Piru
Perjantaina, 3. helmikuuta, 2006 - klo 18.10:   
No ensin pitää kaivaa tuo algoritmi esiin jostain. Siis miten tuota avainta käytetään viestien koodaamiseen ja purkuun. Ilman algoritmia ei koodaus/enkoodaus rutkuja voi tietenkään ohjelmoida.

fgets() rivin lukemiseen, sscanf() tai atoi() merkkijonon muuttamiseen numeroksi (int). printf:llä tuloksia ruudulle (%d tulostaa intin). Loppu onkin ihan algoritmin toteutusta ja ohjelmarakenteiden viilausta.

 

Joanna
Perjantaina, 3. helmikuuta, 2006 - klo 19.31:   
Tunnustan että tuota lukiessa tuli ensimmäisenä mieleen että jollakulla on harkkatyö tekemättä ja tarvitsee apuja pisteiden saamiseksi kotiin.. :-)

Mutta asiaan.. Tehdäksesi selauslaitteen pitää tietää miten se käsittelee salausavainta ja salattavaa koodia rutiinin aikana. Jos kyseessä olisi oikeasti esim Enigma:n (kuuluisin saklsalainen salauskone, kannattaa etsiä netistä) teko niin sitten tietoa on helppo hankkia ja netistä löytyy muistaakseni valmiita testikoneita (esim Javalla tehtyjä) joihin voi verrata omaa ohjelmansa toimintaa..

Tosin ulkomuistista mainitsemani Enigma tarvitsee enemmän tietoa kuin vain kolmen numeron ketjun että salausavaimen saa muodostettua joten siitä ei luultavasti ole kyse.

 

Jani Kuituniemi
Perjantaina, 3. helmikuuta, 2006 - klo 21.02:   
No, jos nuo kolme numeroa vastaavat niitä kolmen koodauslevyn
asentoa niin niiden lisäksi tarvitset vielä sen ristikytkentä-taulun
asetukset kysyttäväksi käyttäjältä jotta homma voisi toimia.

 

Frn
Perjantaina, 3. helmikuuta, 2006 - klo 23.28:   
En tunne Enigma-algoritmia, mutta hakukoneella löytyy varmasti. Kuitenkin tuon esimerkin perusteella näkee selvästi, että kyseessä on aakkosiin perustuva merkistö, jossa kuhunkin merkkiin lisätään avaimen yhden nimeron arvo ja siirrytään eteenpäin. kun avain loppuu, se alkaa alusta. Erittäin yksinkertainen toteutus siis.

Kyllähän tämä kovasti on ainakin perinteisen harjoitustehävän näköinen.

Muistelisin itsekin, että Enigma olisi ollut hieman monimutkaisempi viritys, mutta eikös sitä paranneltu muutamaankin otteeseen.

 

Joanna
Lauantaina, 4. helmikuuta, 2006 - klo 0.28:   
Kannattaa niiden jotka eivät ole tutustuneet katsoa vaikkapa http://en.wikipedia.org/wiki/Enigma_machine
Tuo näyttäisi sisältävän aika hyvän selityksen siitä miten ne roottorit toimivat.

Lisää viestisi tähän
Viestisi:
Käyttäjätunnus: Postitus informaatiota:
Tämä on yksityinen keskustelupalsta. Vain rekisteröidyt käyttäjät ja moderaattorit voivat postittaa tänne.
Salasana:
valinnat: Aktivoi URL:t automaattisesti tässä viestissä
Toimenpide: