Tapahtumat

Kun kirjaudut sisään näet tässä ilmoitukset sinua kiinnostavista asioista.

Kirjaudu sisään
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.
Tervetuloa lukemaan keskusteluja! Kommentointi on avoinna klo 7 - 23.

Suomentakaa tämä mulle (Aalto-yliopiston C-MOOC tehtävänanto)

Vierailija
17.07.2016 |

Task 08-characters-2: Salaviesti (1 pts)

Tavoite: Lisää merkkien pyörittelyä, jotta ASCII-merkistön toiminta tulee tutuksi. Samalla pientä johdattelua merkkijonoihin (jotka tulevat seuraavassa modulissa).

Toteuta funktio void secret_msg(int msg) joka purkaa ja salaa annetun viestin soveltaen yksinkertaista algoritmia. Salaviestit on numeroitu kokonaisluvulla, joka annetaan funktion parametrilla msg.

Voit hakea salaviestin merkkejä yksi kerrallaan käyttäen funktiota char get_character(int msg, unsigned int cc), joka on annettuna harjoituspohjassa (kyseinen funktio on toteutettu käyttäen taulukoita ja merkkijonoja, jotka tulevat vastaan vasta seuraavassa modulissa.). Parametri msg kertoo mistä viestistä on kysymys, ja on sama arvo, jonka olet saanut secret_msg - kutsun mukana. cc on haettavan merkin järjestysluku. Funktio palauttaa paluuarvonaan kyseisen merkin.

Viestin sisältämät merkit on numeroitu nollasta alkaen. Sinun tulee kutsua get_character - funktiota kullekin viestille useamman kerran, kasvattaen aina merkkilaskuria, kunnes funktio palauttaa 0, mikä tarkoittaa että viesti on lopussa.

Kun luet merkkejä, sinun tulee purkaa salaus ja tulostaa kukin merkki ruudulle, kunnes 0-merkki tulee vastaan. 0-merkkiä ei tulosteta.

Salauksenpurku-algoritmi on seuraavanlainen: vähennät saamasi merkkiarvon desimaaliluvusta 158, eli 158 - m, missä m on get_character - funktiolta saamasi merkkiarvo. Tämän laskutoimituksen tulos tulostetaan siis merkkinä (ei esimerkiksi desimaalilukuna).

Voit testata funktiota viesteillä, jotka on numeroitu 0:ksi ja 1:ksi src/main.c:ssä. Jos funktio toimii, näiden salaviestien tulisi muuntua lyhyiksi englanninkielisiksi lauseiksi. TMC-tarkistuksissa käytetään myös muita merkkijonoja.

Kommentit (3)

Vierailija
1/3 |
17.07.2016 |
Näytä aiemmat lainaukset

Mitä et ymmärrä? 

Tehtävässä on valmiina osa noista funktioista ja toteutat tuon yhden secret_msg(int msg) noiden muiden avulla.

Saat siis viestin numeron (int msg) ja sen avulla purat sen halutun viestin salauksen merkki kerrallaan annetulla tavalla ja tulostat purettuna.

Tehtävässä on siis taulukko jossa on pari viestiä valmiina.

Vierailija
2/3 |
17.07.2016 |
Näytä aiemmat lainaukset

"Toteuta funktio void secret_msg(int msg) joka purkaa ja salaa annetun viestin soveltaen yksinkertaista algoritmia."

Ilmeisesti tuossa johtaa harhaan tuo "ja salaa" sillä tässä tapauksessa ohjelma vain purkaa salatun viestin.

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Vierailija
3/3 |
17.07.2016 |
Näytä aiemmat lainaukset

hohhoijaa.. tylsää. puhukaa mielummin meikeistä ja kumipakaroista.