{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Első beadandó\n", "\n", "\n", "Hat feladat van, ahányat sikerül megoldani, annyi lesz a beadandó értéke, de legfeljebb 5. Megoldásként ezt a fájlt kell visszaküldeni kitöltve. Nem elég csak a válaszokat feltüntetni, hagyd benne a fájlban a függvényeket és kódokat, amit a megoldás során használtál. \n", "\n", "- Mindegyik feladat kódolásokhoz fog kapcsolódni. Felteheted, hogy minden szöveg csak a következő karatereket tartalmazza: `hun_alph=['a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z', ' ', '!', ',', '-', '.', ':', '?', ';']`. \n", "- **Helyettesítő ábécé** alatt karakterekből áll halmazok közötti bijekciót értünk. Ezt egy dicitionaryben érdemes tárolni, ahol minden kulcs egy egyedi karakter és minden érték is az. Pl: `{'a':'b','x':'y'}`\n", "- A programoknak úgy kell működniük, hogy a Restart & Run All parancsra hiba nélkül végigfusson a notebook és minden megoldás a megadott változóba kerüljön. \n", "- Ha valamivel nagyon elakadtok, írjatok egy emailt és segítek. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "hun_alph=['a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z', ' ', '!', ',', '-', '.', ':', '?', ';']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " ## 1. feladat\n", "Írd meg a következő függvényeket.\n", " - az `elkodol` függvény egy stringet és helyettesítő ábécét vár bemenetként, majd pedig visszaadja azt a stringet, amit úgy kapunk, hogy a bemenet minden karakterét lecseréljük az helyettesítő ábécé szerinti párjára. Ha egy karakter nem szerepel az ábécében akkor ne változtasson rajta a függvény. Pl: `encodestring(\"abbac\",{\"a\":\"x\",\"b\":\"y\"})=\"xyyxc\"` \n", " - a `dekodol` ugyanazt csinálja visszafelé, tehát egy elkódolt üzenet és a helyettesítő ábécé ismeretében megadja az eredeti szöveget. Helyes megoldás esetén `dekodol(elkodol(szoveg,abc),abc)` az eredeti szöveget adja vissza. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def elkodol(szoveg,abc):\n", " #todo\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def dekodol(szoveg,abc):\n", " #todo\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. feladat\n", "Az alábbi szöveg a cézár kódolással van elkódolva. Mi lehetett az eredeti szöveg?\n", "\n", "A cézár kódolás a következőképpen működik. Választunk egy egész számot, hívjuk ezt k-nak. A titkosítandó szöveg minden betűjét lecseréljük az ábécében k-val később álló betűre. Itt is a fenti `hun_alph`-t használjuk ábécéként, tehát csak a karakterek és a szünet számítanak. (Ha kifutunk az ábécé végén az elejétől kezdjük újra a számolást.) Pl ha `k=5` és `szoveg=\"csíkos zebra?\"`, akkor a az elkódolt üzenet `\"gűnóqű:.ifüec\"` \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg='cnkh-c-iqof:-c,h-c-ycoodú.'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. feladat\n", "Az alábbi `titkos_szoveg3` is egy behelyettesítő ábécé segítségével készült. A cézár kódolással ellentétben itt semmit sem tudunk arról, hogy milyen helyettesítő ábécét használtak. Szerencsére azt viszont tudjuk, hogy az eredeti szöveg tartalmazza a lenti `biztos_szoveg` részletet. Mi lehetett a teljes eredeti szöveg?\n", "\n", "(Ne lepődj meg ha a megoldás mondatai nem egy folytonos szöveget alkotnak, egy nagyobb szöveg véletlenszerű darabjait kódoltuk el.) \n", "\n", "(Segíthet egy olyan verziója a `dekodol` függvényednek, amely nagybetűvel írja be azt, amit dekódol és kisbetűvel, amit nem. Így nem kevered össze, hogy mely részek vannak már dekódolva és melyek nem, amikor egy részleges helyettesítő ábécét tesztelsz.')\n", "\n", "Megoldásodat - az eredeti szöveget - mentsd el a `megoldas3` változóba! \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg3='emgztüögígöáháűöjaü,ggoígqwoamsgúfűcfööf,gzícaögfcjgútmsaűíőögüícjgüaőímxígbfööf:gáöögtmgísögmwmácöígígüaőgztüőfügmsadí:gmsedfmgfgbtdacáügütüvmfügaűbaxxgüadí.güaőöáűmgdóügísgacjí,gsmázxáúggíghaűüaqí,gtmöfügúeúgfcebfdgénőbfgígöíüjaqí,gzrcüfzgígmnöeögeqgmsaűüjígídagbfööfgmgéfúföfgháüjbaxpdgmaöáűögbáüögéfdfööf.gfqüjf,goaögoádgqaűoíögzámögfsgígéedmsgxfüüf?gzamúáűgígmaűúaüüjídgtmgxtűáúűígzfüüf;geőfmíüjqaögéedötgtcfü-tcfügüícjáü,güfoácjgígsnűfqűfgmsnűüjfügéfdűtíőqáü.gísgtmgzfcfmoföüeú,goácjoígrcjgéndbfűüe,gíxdíúaö,gíqöpqaögzfcüjtöütgmfgzfűüe,goíüfzgsíqögvmtüadüígoíücámgmtúádöammíd,gmgöaügüfzgtmgöwőüaüíúgmspdütgzíqőgfcjzammíd.gzfűögídtcoácjgztúdpmögígxtúígzfcdaööí,gűeztöóögmtúúíüöáöögemgígháűögúíhadöí,gíswöaügicjgmspűöígígéndőfögmsíűbabíd,gztüöoígmseű üghfdjbaögéáűcíöüígbtddabíd.gfcjmsfűmztüőgfűómfügüfútűwcímsúáőbígmsíűbaögnúdfdóűfgüícj-dfgxávmaöáööí.gáőíbíü!gbecfgbíü!gqíq,gqíq!gmtúádöaüíúgztüőfügíxdíúaxpdgíghfmötgwövaüíú.goácjgígvmaűőaxígeűö,géfdndönsnöögmsehfü,göáddímgxwsácaüjaögéáűcíöagúfsexfü,gíúúáűgxiöögéfdgígüíhgísgecgúíűtzaqaü,gzfcgtmgíúíőögmsfzfgígétigűwoaqaü.gígűtcpgmfzgísgbádö,gíútgöfcüíhgfmöbf,gmaűűíd,giötgháűűídgmsuűúfgmsrüűfgéfmöbf,goíüfzgéfúföf,gztüögígéfúföfgxácaű,gfdmtúízdáöögmsóűeügígéeüjfmgüíhmwcaű.g'\n", "biztos_szoveg='szérűn pelyvát forgatna villával. egyszersmind erősen nekirugaszkodva szarvát öklelőre nagy-le'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. feladat\n", "Készíts elemzést a magyar nyelv betű és betűpár gyakoriságáról. \n", "- Keress ehhez egy legalább 100000 karaktert tartalmazó magyar szöveget. (Ne használj olyat, ami a gyakorlaton szerepelt.) \n", "- Mentsd el a szöveget ennek a notebooknak a mappájába `szoveg.txt` néven. \n", "- Olvasd be a fájlból a szöveget.\n", "- Változtasd kisbetűssé és szabadítsd meg a szöveget az extra karakterektől (amik nincsenek a `hun_alph`-ban). \n", "- Ezután számítsd ki a `hun_alph` minden karakterére, hogy hány százalékban szerepel a szövegben. Majd ugyanezt számítsd ki a `hun_alph` minden betűpárjára is (\"aa\",\"ab\",\"ac\",...). \n", "- Az eredményt mentsd el a `megoldas4betu` és `megoldas4betupar` változókba. Mindkettő legyen egy lista, mely (karakter/pár, gyakoriság) elemeket tartalmaz és rendezve van gyakoriság szerint. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ne felejtsd, hogy a hat feladatból elég ötöt megoldani az ötöshöz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. feladat\n", "Az alábbi `titkos_szoveg5` is egy behelyettesítő ábécé segítségével készült. Itt semmilyen extra információval sem rendelkezünk, csak annyit tudunk, hogy az eredeti szöveg magyar nyelvű. Mi lehetett az eredeti szöveg? \n", "\n", "Szerintem szórakoztatóbb, ha teljesen magadtól oldod meg ezt a feladatot. Viszont ha nincs semmi ötleted, vagy elakadtál, akkor az alábbi szöveget visszafele olvasva találsz egy kis segítséget. \n", "\n", " - .ketíges nesevízs ,tliame yge jrí ,degésküzs nav ergéstíges bböt gém aH .takavazs divör a luádlép detehrűzsiK .tíges takos si azssoh kavazs a rám nátuzE .lavásálálatik retkarak ' ' a luádlép dzeK .lavásálálatik kűteb a técébá őtísetteyleh őlelefgem yge lef stípé nasotazokoF .támázs ketese za detehtíkűzsel noygan lezzE .ttüyge llá mesahos etnizs rápűteb kos ,tíges si lánkoráp űteb a zenaygU .kankairokayg ébsévek a gidep kairokayg ébsévek a ,gem kenlelef kenkeretkarak irokayg nebvleyn raygam a keretkarak irokayg tti za návliyN .kenkiylem gem lelef űteb kiylem ygoh ,inlálatik gem dlábórp gidep djam ,si tti tákitzsitats ólnosah zohtadalef .4 a stízséK\n", "\n", "Megoldásodat - az eredeti szöveget - mentsd el a `megoldas5` változóba! \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg5='rumicqprpoeévpávo nrwprpqékpfsvskk,pvhadrwpfcúqcexúmiprpfz,pumwkprpnáadmírkripűmeá;pnrpűákéopfsvskkpmqrucúmipáv,pasuysvdz,pwradpn vvhucirkpűákprparycwr,pumwkprpuévdpűmezpkxp-páeprpoeévpkhwör.pkhwöcvwmpmopoeéíáwpk ú,pnhkpuéapuáoévwm!pumwúáwpoerűrpu eomir,popuhoiéííáwpeáwaprepharipömkáqhghw,puhoiéííáwprepryvripqéoéw,prpfrvpnrorúéihw.pfswwprpuraroyrwpfőkdővűápkáqávaákmprpfávnówdhgrk,preprgkxpávókkpnrwacorwpk k v,pumwkprpiőqkógéyápfjgxpkcqcwdóq.pitoéqkákmáopnrwacwpoőűtkpyáprpiéuéwdáw,pváoervrúprpirwúrvvxyr;pwdcuhyrwpomokáqáaűápvhwaqrpiríwriprpfrnrohyci,popuáaűmvhatkghiprpncuhvdyrpycq vxpoecyhk,prncvpcvdrwpgxváomipővwmprpuáváayáwpéopnrvvarkwmpáadpqéampuáoék.púápucokpuáoévgáwprpoeév!pksyyákpvhkckk,pumwkpumpűrvruáwwdmáwpáaéoepévákőwiyáw!pnrvvaroúpöori,pumwúmaptadpiáeúmprpuáoék:p-pn - - !pkcűhyy,pkcűhyy!p-prpoeéváopyávkpírqkghwphvvpáadpqéamp úűrqnhep-piáeúprpksqkéwákyáprpoeévp-,pűrokra,pűsqsopfrvrmpuáooemqápávvhkoerwri.péwpmouáqáipckkpumwúáwpisűák;puhqpriicqpmouáqkáu,prumicqpuéapokmapűhqhwripisűámpűcvkri,poprpnáadcqucwpyőoeiéviáúkái.prekprpqéampűhqrkpváqcwkckkhi,púáprpisűámyóvpuhopnávdáwpjgpfrvrirkpáuávkái,prpycqqáyd-irokévdpfrvrmk.páeprpirokévdpuéapurpmophvv.pgxvpmouáqkáupnrgúrwmpvrixmk,prpwáuáop qrirkpéoprooecwdohacirk;pmouáqkáup kxúrmiwripoehucopwáueáúéiék,púápucokpöoripáadpöorvhúqxvpuáoévái:pűrvúáurqpúrr-qxvpéopvhwdrmqxv.purarorwpncqúkrprpfágékpúrrpjq,puáqkpimqhvdmpöorvhúpműrúéirpűcvk,puáapreéqkpmo,puáqkpwáuöoripoerqűrokpzewm,pi íhkpnrgkcarkwmpk úckk:puhoncepmopéqkákk,pncadpumnáe,prekpurgúpuáak úghkcipqáwúqá.páadáwáopúáqáijpfáváoéaápuévkxohacorwpghqk-iávkprqrwwdrvpoeókkpyqcihkpq nhghyrwprpféwdáopirokévdpkáquámyáw.pútoeáopihqímkci,pfrqrackkputűzpúqharpyjkcqcipícuíhekriprpirokévdyrw;páeőok-puáaprqrwdáúéwdáipöomvvcakripumwúáwőkkp-preprooecwdpncekrpóiákprpnhencep-,prpímwöéiyáwpwéuákposqpadswadseskk,prepmokhvvxiyrwpncvvxoeóqzpwáuáopírqmíhipúcycakri.pyóoéapéopareúraohap qrvicúckkprpycqqáyd-irokévdyrwpéopisqwdéiéw,prutap qrvicúckk.padáquáiámipmopűcvkri,pnhqcupoeéíoéaáopnrgrúcw:pmúr,pgcnrwwrpuáaprwwrp-páuvéioeáupuéaprpwáűőiqápmo.pareúrapöorvhúpűcvk,pávóiávópöorvhú;poeővákéoőipxkrpícuírpűákkápóiákpisqőv.pn - - !pkcűhyy,pkcűhyy!p-pksqkpimprpoeévyóvprpoemvrgpmwú vrk,púáprekhwpuáaöoswúáoáúűápkcűhyypuáoévk.p-pymecwd,pmkkpwáupjadpűcvk,pumwkpocipuhop úűrqnheyrw,prncvprepjqwóprpoecvahvxműrvpáadőkkpísqaákkáprpqciihkprputűáooecyhyrw;pűrvúáurqpúrrpfáváoéaápmwihyyprpvrwkckpíáwaákká,popéwáiávkpmopnceeh,piővcqoehampúrvcirkpmo,pwáuöoripnrermrirk.pergvckkprepévák,poerirúrkvrwpűáwúéaáoiáúéoyóvphvvckk;pkxú vkriprpűáwúéaáiprpirokévdyrprpisqwdéiqóvpéopuáooeápfsvúqóv;pávpwáupnrvvarkckkpocnrprpu eomirpuáaprpícnhqöoáwaéop-puéapéwpoápk úkrupkjvnrqocawm.prpiáűévdoéapuáaprpiswwdávuzoéapáadőkkpőkskkpkrwdhkprpycqqáyd-irokévdyrw,poprekpnmkkáprpirokévdpwéíá,ptadpkrqkpáepsqsipmúóima.p-páadpuhg ompáokáp-pfcvdkrkkrprpoeévp-pnrgxirkpvhkkrupehkcwdqrpf kwmpdőkvrwúpwd arkmpírqkgrpávókk.pfsvwdrqarvkruprepáqúóopírqkqr,popvmnáaűá,pemnhvűrpűhakrkkruphkprpoeéváopyávkáw.prpycqqáyd-ymqkcipiseávéyáwpkéqkáupímnáwóqá,pryyrwprpadswdsqz,poskékesvúpksvadáqúóyáw.péííáwprpkrűroepőwwáíékpkrqkckkhiprecwprpwrícw:prepáaéoepisqwdéiqóvpcúradzvkáiprpváaéwdái,pqóeoékpoeáúkáiprpksvadáoyáw,poehqrepharirkpksqúávkái,péopuhavdhkpqrikripyávóvá.prekhwpsooeáfcaxeicúkriprpvhwdci,pváaéwdái,péopisqővkhwöcvkhiprpvcycaxpkőeák.p-pöoswúáoáwpfáiőúkáup-pfcvdkrkkrprpuáoékprpoeévp-,púápűévákváwővpuáaváadmwkákkáupáadphark;prpváaúáqáiryypváaéwdphahk,poprwwriprpvhwagrpöoríckkpváauraroryyqr.pópvákkpnhkprpuhg oimqhvd,popópűhvroekckkpávóoesqpuhg ompyhqhwdihkpurahwriprpvhwdcipoáqáaéyóv,prncadpáepoecihoprecwprpűmúéiáw.pwradpűcvkprpűmarooha,poeéípűcvkpáeprpkrűroempőwwáí;prpycqqáyd-ymqkcicwpkrvhwpocnroáupűmarúkripcvdrwpmarehw.prqrwdcopömfqhgj,pnrkvcűropnmwkxw,pávgskkprpwéípiseéprpirokévdpjqwógápmoprpnhqcupvhwdhűrv;poeéípűcvkprpnhqcupnrgrúcw,pnhqcupadswaápűmqhaoehv:pqxeor,pvmvmcupuáapfánéqpghömwk.preprwdg ipáadáwáopoehqj,pyőoeiápk vmíhwpűcvk,pwáupfcarúkrprpwéípisoeswkéoék,píáúmaprpvhwdci,pváaéwdáipfévyánradkhiprpkhwöck,popuévdáwpuáanrgcvűrpghq vkripávéyá.prvmanrwáupűroyxvpűcvkprpyőoeiápk vmíhwpoehqr.pmaáw,pvhkkruprpnhqcupoeéíoéaáopűmqhack,prpqxeohk,prpvmvmcuckpuáaprpfánéqpghömwkck!pávkzwóúkáupriicq:pimwáiprpuhg ompyhqhwdihmpváoewái,pimpváoeprepópuhg oimqhvd i?prvmanrprúghiprvhyypwáuáopvcűrawhv;pkrvhwpuéapnáqöáampiéqógőipmoprirú!pn - - !pkcűhyy,pkcűhyy!poerícqhwpvéíiáúákkprpnrkpvx,poprpkzepisqővpoerícqhwpghqkhiprpuhg ompkhwöck.pkrűroeőwwáíákpővkpáeáwprpwrícwpumwúáwpfrv ,pumwúáwpűhqco.péggáv,prumicqpfsviáqáiáúkáu.p-pfcvdkrkkrprpoeévp-,pyáwéekáupáadpímvvrwrkqrprpirokévdyr,popncvkrwpkrvhvkrupűrvúáurqpúrrprooecwdhk.páokápváfáiőúk,péopwáupiávkpfsvpksyyé.prep qrpfsvéyápnrgcvk,péopicucqrwpwéeká;pkrvhwprqqrpacwúcvk,pncadprepmarempwáuáopfrpöoripnrgvmi,púápwáupksqmi,popáadpiswwdákpoápágkákk.prpnhqcupvhwdpnrwacopgrgoexűrvpomqrkkrprwdghk;prpirokévdpoecvarwéíápoxnrgkceckk,popoeáuékpksqsvaákká.púrrwépávuáwk,popuáwkáupéwpmopkcűhyy,pkcűhyy!pn - - !pwradp krkpyághqkru,popűmooerkéqkáu;pávöorűrqcakru,popuáamwkpűmooerkéqkáuprpyávkpírqkghqr,prpozqzpksvadáqúópiseáíéyá.pocipurúhqpféoeiávkpckk:pnrvhoeoro,pűrúarvruy,páqúámpncvvx,pfáiákápaxvdr.péííáwpriicqpeoáwúővkprpkrűroe,pwéuávdmipurúhqpuéaprpféoeiéwpővk,prpuhomipuhqpimisvkskkáprpfmxihmk.pwradpűcvkprpqmrúrvcuprepáqúóyáw:páaéoepwrípfágoeáöorkkcahopűáqkápfsvprepáqúópöoáwúgék,poprpuraroyrwpqéuővkáwpisqsekáiprpurúrqri.pűrvúáurqpúrrpűharkkrpimprepáqúágék,pnrvhvqrptkévká,puáqkpícuíhopnrgxkprirqkpéítkkákwm:pnhqcufáúéveákzpnrúmnrgxk,popurahwriprpimqhvdwriprirqkrpávrúwm.páeéqkpűhakhiprepáqúók,purúrqripkrwdhghk,pnrgxocipmqhwdu krkxghk.pfávqmroekckkpaéymöoáipqsíúsokáiprpí oek vxpáqúópfsvskk,pnrgvéi irkpűáoekákkpnrvhoeoroci;pckkpiáqáwaákk,pűmggcackk,potqkpfévávuéyáwpéopnrqraghyrwprepáqúópűrvruáwwdmpurúrqr.péwpéqkákkáu,pumkpucwúrwri,puáqkpk úcuprpwdávűőiák.prpuáeópyciqrmwpféoeiávópűrqgri,pöoxihipqmöorgceűrpöojfcvkhipóiák:pimprpféoeáiyóv!pimprpféoeáiyóv!prpimúswkskkpfhipiseskk;prpfrűhaxipöorírkhyrw,pckkphvvkpűrvúáurqpúrrprpnhqcupvhwdhűrv,péopwáűákkéiprpurúrqripqmrúrvuhk.pöoriprpváaimoáyymipvhwdwri,prwwhwripáoákkpuáaprpoetűáprecwprpfáiákápaxvdröorvhúcw,pruávdprvxvpáadpicqnrúkpfhkprirqkripéíípimúswkáwm.prpféoeáiyóvpíávdnáopfmxihipú akhipimpqéuővkáwprpöoóqőiák,pcvdrwpoehwwmpűrvxpűcvkprpadhucvkrvrwoha i!prwwrpoetűéyóvpuáaorgwhvkrpóiák,péopiéqká,pncadpiáadávuáeeáwáipuáapáwwáiprepáadpfhwri.puáapmopkákkéi,pnmoeáwprirúkpuéapávéapfrprepáqúóyáw.piműhakhipnhkprepáqúók,pfávfzqéoeávkéiprpqswisiák,popéítkáwmpiáeúkéiprpnhqcufáúéveákzpnrúmnrgxk.prpnrgxhöo,primprpu wihkpűáeákká,páadoeáqzpocqyxvpűrvxpáuyáqpűcvk,púápwáuáopűmoáviáúéoz;poeáuéyóv,pncuvcihqxvpöoripjadpo ahqeckkprepéoe;pűrvúáurqpúrrpoetűáoáwpávyáoeévaákákkpűává,poprpváawradcyymipvhwdr,pmúrpmo;primpriicqpksvkskkápyápkmeáwsksúmipáoekáwúágék.prpnrgxhöopnrgxkpéítkákkpűrvúáurqpúrr-wri,purahwripíáúmapöoripáadpvéaűhqrkpéítknákákk,pophvurmyrwpmúhkpűmkkáprooecwdwripáyyáprpvéaűhqyr.puáakánákkápűcvwrpáekprpűrvxohayrwpmo,pnrprekprpűhqrkpióyóvpéítkm,pohwöciirvpűáoempisqőv,péopáqúókpuáapymqkcickpoeáqáepuávvégá.púápnhkpnmhyrpűcvkpwáuáopvávizpéopáoeáo,pwáupűcvkprpűmvhacwpoáuumgá,pop adrwpumkpiáqáowápáadpoeőqiápűáqéyprpféwdáopkcvvjpurúrqripiseskk?pn - - !pkcűhyy,pkcűhyy!péwpmopkcűhyyqáíővkáu,pópmopkcűhyyqáíővk,puáqkpckkpwáupurqrúnrkckk.prpoeáaéwdpimopmúrpíáúmapávnrvvarkkrkkrprpoetűék,puáqkpáadáyákpwáupkánákákk.prpirokévdpmokhvvxmyrwpncvvxoeóqzpvcűripúcycakri;péqúáuáopűcvkpuáawéewm,popuáapmopwéekéipóiák:prpkáwaáqwradhkpiővúkápávprpimqhvd,pncadpuáawéeeáprepjgpnrúmnrgxk,popisooápuáaprpűhohqk,pnrpkákoemipwáim.púáprpkáwaáqwradpöoriprpwáuáopírqmíhirkpyhu vkrp-pfcvdkrkkrprpoeévp-,péwpvhkkrupgxv,puáqkp khw ipf kckkruprepmokhvvxyr,péoprqrwdíhvömihirk,poervuroehvrirkpoexqkruprepjkg iqr.pűrvúáurqpúrrprqrwdrkpiéqkprpnrgxéqk,prpkáwaáqwradpuáaprpírqmíhirkphntkckkr,púmöoéqkápmopóiákpwradcw,púápwáupéqkákkéipuáaprpoehwúéihk.ptadpnhkprpnrgxkpoápűákkápuáaprpkáwaáqwrad,prpnrgxpckkurqrúkprpírqkcw,púáoeihiirvpyáycqtkűr,pumwkpáadpoehqrecwpkhkcaxpnrv.poecucqjpvhkűhwdpűcvk.pn - !pn - - !pkcűhyy,pkcűhyy!páviseávaákkprpkév,pnxpycqtkckkrpyáprpuáeóiák,popéwpwradpgéakhyvhirkpocúcqkruprpoeéváopyávkáw;pncvvxi,pűrqgripiáqmwakáipwradpöorírkciyrw,picqcuwhvpfáiákéyyái;pváoehvvkriprepávnradckk,pwéurpnrgxqr,popqáiáúkpihqcahoorvpomqrkkhiprepáve nrwkpksvadáiák;prpoeékújvkpféoeiáiákpéopocipfsvúswf kxpvrixghk,prepsqáapéopfmrkrvpurúrqrirk,primiákpreprepmúcukrvrw,paóasoprvickuhwdpkákkpnrgvéikrvrwwh.páeprpwéurpnrgx,pruávdpwáupoehvvpűteqápocnr.pnxsqűéwdkpirűrqkruprpnxváíkápnrgxpisqőv.pőűsvkskkáupkcqicupoerirúkhyxv,pávucwúkrupumwúáwk,prumkprpoeévwáipávpiávvpucwúrwmr;pnrpáoeápűrwprpnrgxwri,pci vnrkpyávóvá.pn - !pn - - !pkcűhyy,pkcűhyy!pqáíővkpkcűhyyprepmúópmo,pávqsíővkprpkév,prpwdhq,prncadpéwpqsíővsi;pávcvűrúkprpnx,poeékíáqaákkpreprvurűmqhapoemqur,pváfcoevckkriprpvcuyci.pn - - !pkcűhyy,pkcűhyy!pkmpmo,páuyáqái!pkcűhyy,pkcűhyy!poehvvkprepmúó,púáprpvhwdcipuéapfmrkrvcipűcvkri;pmúr,prpoeéípqxeor;pcvdrwpűcvkpucokpmo,pumwkprumicqprpnrgxhöopqrgkrpfávágkákkáprpoeáuék.pocioecqpáviríkrupoávduáo,pyrqwrpnrghk,prumicqpkzwóúűápuáa-uáahvvkpreprvurfhiprvrkk;poemqucirkpoemkhvkrupimycuvckkpnrghqr,púápéoeqápoápűákká,pwéekáprpiáqkposkékpyciqrmpiseskkpímqcovxpwríck,prqrwdvxpéaycvkck.pgcnrwwr,prpnjar,prpícuíhopvmvmcu,pcvdrwpo úhq,páadáwáopúáqáij,pkőwúsivópvhwdpűcvk,pumwkpreprwdgrpvánákákkpűrvrumicq.poeáqákákkpávmúóewmprpirokévdpiéíöorqwcihyrw,pocqqrpwéeáaákkáprepóosipiéíámk:preprooecwdcipoávdáuoeciwdhk,pyhqocwdúáqáirkpűmoávkáiprpiéíáiáw,pfcwrkcopnrg irkpadswadsopfóiskópfcakrpsooeáp-púápoeéíáipűcvkri!prpféqfmripkrvímapíhwöévyrwphvvkri,pűradpuxi oíqéuuávpoeáaákk,púqharpiswksoyáwpícuíhekri;poeéíputűzpirqúpféwdáoiáúákkprepcvúrv icw.pncvpfőaapurgúpáadoeáqpgcnrwwrpiéíá,popumvdáwpváoeprpféqfm,primpávgswpéqká?pmaáw,páeáwpkzwóúskk,po kkcackkpmopqxvrpwénrp-pnrvvckkru,prumicqpűéamaoervrúkruprpncooejpfcvdcoxwpéopyáoőűtkákkáuprpkáqáuyá.prwwr,prpfánéqpghömwk,puéapöoripkmeáwwéadpáoekáwúóopűcvkpriicqmyrw;poexkvrw,pkzwóúópkáqáukéo,pwradpiéipoeáuápöo írpkmkci,púápoehgrpisqővpadáquáiáopucocvd;prekpwáupk úkrupváfjgwmpqxvr,pmare,pwáupmoprirqkru.pocioecqpkrvhvicekrupűáváprpuáeámpsoűéwdáiáw:pfőűáiákpadzgkskkpríghwri,primpmkrvcirkpéopyzűsopöoáííáiákpfóeskkpyávóvői.pűrvúáurqpúrrpvheropu wihyrwpűcvkpéggáv-wríírv,púápncadpumyáwpfhqrú,pwáuphq vkrpáv.prpkáquéoeákpáqómwpwéuhwp qrvicúgéiprepáuyáqp-prekpkrqkckkrp-,pöoriptadpkrvhvnrkgrpuáaprpkmkicipkmkihk:preprqrwdöomwhvhopfcqkévdhk.páeéqkpfőoksvkpkéváw-wdhqcwprpirokévdpiéuéwdá,páeéqkpvcycackkprpirwúrvvxyrwprpkzep-péwpvhkkru!pkcűhyy,pkcűhyy!p-páekpejakruprpiéuéwdyáw.p-pfőokképűhvmiprpu wihú,porvriihpuáapnru űh!pn - - !puáaéaákáúpurarú,puáavhoú!pkcűhyy!pkcűhyy!péopűrvúáurqpúrrpuáwkpkcűhyy,pkcűhyyprpurarpjkghw.pőqáoáiprepmokhvvxip-pncűhpvákkáiprpncvvxoeóqzpírqmíhi?pőqáoáiprpoeáiqéwdái,prpvhúhip-pimpűmkkápávprpimwöoákpéqóprqrwd-,páeőokáúéwdáiák?pnhkprpkánáwáiákpimpűáeákkápávprpváaávóiqóv?popncűhpvákkprpymqkci?pávcvűrúk,pumwúáwpávcvűrúkpreprqrwdöomwhvxpkéaávdyáw,púáprpkéaávdprvghwpwáupurqrúkpáadpöoáííprqrwdpoáu.pőqáoprpöozq,prpiruqr,pőqáoprpímwöá,prpírúvho.poeévwáipáqáúkáiprpöoávéúái,pyáisvksekáiprepáaáqái.pmkkpuáaqáíáúkpáadpryvriőűáa,pckkpyáksqskkp-pwáuöoripreprgkxwpűcvkpyághqhocup-,pfcvdkrkkrprpoeév.puhopnheyrwpgxpáyéúákpgáveákkprpiéuéwdpfőokgá,púápmkkpcvdrkpfóekái,prumprep kcvoxpfrvrkckpmopfsváuéoekákká.pjadpeáwakáu-ejakruprpirokévdpirí ghyrw,pumwkprepóqsipiőqkgáp-púápóqpuhqpqéapwáuphvvkpycqqáyd-irokévdpávókk.puáafcqarkkruprpoeévirirokprpkcqwdcw,pjadpqáöoáaákk,pumwknrprpkcqcwdóqpncqicvkpűcvwrpcúrfsww,píáúmapckkpoáupóqisúskkpuhqpoáwim.pöoripírkihwdcipuáapáaáqáipf kicokriprpírúvhocwp-pwáimipkáqtkákkproekrvkprpoeáaéwdoéa.puáqkprepűáqkpkrwdhkprpirokévdyrw,prpoeáaéwdoéa,prepőqtkákkápimprpoecyhirk,prpoeáiqéwdáiák,prpiruqhirk;puéapreprgkxirkpmopimfcqútkckkrprporqi iyxvp-pgsnákkáu-uánákkáupiáúűáuqá.pim-yápghqkru,pumwúáwkpvhkkru,péopumwúáwkpk úcip-pucwúkrprpoeév.pűrvúáurqpúrrpoerihvvhk,pnrghkpfőokpuáapnru poeőqitkákká,phvurkvrwpégoerihipohqatkckkhi,pfcwwdroekckkhipreprqöhk;poprpoeáuéyápimővkprpoxűhqaho,prpiríeompűhadpreprqrwd,prephntkckkprqrwdp khw.pfőokskpuáapnru kpfjgkrupreprqöhyr,poerihvvhyr,prncadpckkpasqwdáúkpwríáokmaprepáúéwdámpfsvskk.púápnmhyrpasqwdáúk:pwáupreprqrwdpadzvk,pöoripreprúxooha.péwpim-yápoékhvkruprpksqskkpryvricicw,prpqciirwkprgkxicw,pyáoőűsvkskkáuprpnhqcupúrr-nrgrúcwpnhvxiruqhghyr,prncvpáad-iékpávqcwadcvxúckk,pfrixpq nrpnáűáqkp-precirkpncqúkhipumwúma,puáqkpjgqrpwáupkávk.pckkpejakru-oőűtkákkáuprephad ipuávvákkp-prpysvöoógőipfsvskkpymecwdpuhofévápúrvkpéwáiávkái!pwdcucqjohacopicvú oévákpvákkprpnrgúrwmpjqmpuxúyxv.prpu eomirpmopqéapávnrvvarkckkprpirokévdyrw,pwáupéwáiávkpckkpuho,pöoripéw.pnrűrkpoemkhvkrupqhg i,puáqkprekpnrvvckkru,prepuáváatk.puáqkpkzeqápűrvxpfhg ipoáupűcvk,prepáqúágőiákpqéapiműhakhi,pncwwrwpoeáqáekáipűcvwr?pöomicqaxpnmúáapkévpűcvk;prpfcvdcoxicwpf kicokru,puáaprpkcqcwdyhokdhicw,pncadpfsvuáváaáúgáu.pfrqirocqútkxpnmúáapűcvkprpirokévdyrwpmo,prpwáuáopnrgrúcwciphadyrwpfáiőúkáipáaéoepwrí,pncadpuáapwápűáadápóiákprepmokáwpnmúáaá.prepríg ipmopckkpi ícqackkpíqéuáopkrirqxgrprvrkk.pwáupűcvkpumkpáwwm,pwáupűcvkpumkprpkzeqápűákwmp-páepvákkprepjqmpuxúyxv!pn - - !pkcűhyy,pkcűhyy!púápűrvúáurqpúrrwripfcadkhwpűcvkprepáqágá.prpkévp khwpkrűroepgsw,pycqjqrpúáqz,púápnhkpwánéepiműhqwm,pwradcwpwánée.pűrvúáurqpúrrpuéaoáuprúkrpfsvprpqáuéwdk:puéapáadpiáűéopkőqáváu,péopuáaváoepreprqrwd!pnjoűékqrpuáaváoe,pymecwdcorwpuáaváoe!pvhkkru,prumwkpáadoeáqpuáahvvkpáadpíxipnhvxgrpuávvákkpéoprekpucqucvkr:pkőqáváuqá,pimkrqkhoqrprúoepíévúhkpwáiáu,pfőqaápimopkrihöo!pnrprpnhvxúpávoerirú,pwáimvhkoe,péopjgqrpuáaoesűsú,pnrpuáamwkpávoerirú,puáamwkpávsvqóvpiáeúáú,pwáuprúcúpfávpocnr.ptadpűrwpáepgxv,poprpg krvurúpwáupmopurqrúpáv!pnjoűékpqáaaávqápűmqqrúk,peáwakái-ycwakriprpnrqrwaci,pqradcackkprpwrí.pűrvúáurqpúrrpáaéoepégoerirpűmqqroekckk,pvherorwpiáűáqk,pfóeskk,pfcqqrvk,píhqcvkpűrvrumkpimopiruqhghyrw.pnrvvckkru:priicqhkpoxnrgkckk,pumwkpáadpihqnceckkpvévái;prekhwpmuhúiceckk.prpvhuírp kcvoxirkpímovcackk,púápéoeqápoápűákká;péwpuáaéváoekákkáuprpoeéwírqreork,poprwwriprpűmvharpűákóúskkpohírúkprqöhqr;poeáuápuévdáwpyáváoőííáúkpőqáaéyá,púápáadoeáqqápkhaqrpuáqáúk,prqörpmopoetwáoáúwmpiáeúákk,pumwknrpöocúhkpvhkckkpűcvwr.prpkéaávdyáw,preprqrwdöomwhvxpkéaávdyáwpöomvvcapűrvrum!pmeex,pkmoekrpéopwánée.pqáuáaópiéeeávpáuávkáprpuraroyr,popqáuáaákkpreprgir,prumicqpfsvimhvkckkprqrwd!prqrwd!pjadpávoeéúővk,pncadpáadpmqrucúhoorvpfsvvsinákkáupűcvwr,púápöoriprepmeexpoeéwírqheoqrpfjgkrupáadpwradck,péop khwrpcocwkruprpvhwdrmpnhvxiruqhghyr.pöo írpnru pűcvkprpq nhgr,prpoerihvvrpycqero,prepmopoeőqiáprpnru kxv.prpiőoesyswpimnjekrpurahk,popfsváuávkáprpúqharpimwöoákpóqeópkéaávdk.puáaűrw!puáaűrwpreprqrwd!p-pimhvkckkr,poprpuraroyrpváwútkákkáprpwríféwdyáwpkőwúsivópiqmokhvdkéaávdk.púápuáaqáuáaákkprpiáeá,poprpkéaávdpimáoákkpyávóvá,páeáqpúrqryqrpksqskkprpírúvxw.pávírkkrwkpnhkprpqáuéwdp kcvoxpoeríírwy ycqéirpmo!pn - - !pkcűhyy,pkcűhyy!pqcnrwkrupkcűhyypreprqrwdöomwhvxpoeáqáwöoékváwpnhehyxv.pűéaápfávépghqkprepáoekáwúó,prumicqpjgqrpcúrűákóúkáu.pqsűmúővkáiprpwríci,poprpűmúéiqáprpisúpkáqtkákkápöorkricopváyáqwdáaék,pruávdqóvpnmúáapöosííáipn vvkriprpímqcocúxpycadxiqr,pöo íroephariqr.pfqmoopgxiáúűűávpéqiáekáu,pimoeávvóekákkáuprpkhgrk,pváosísqkáuprepáaák,popváksqúávkáuprpöojwdrpoehqrepharirk;pwáupwradpu wir,púápáekpmopávpiávvpűéaáewm.pwradkrirqtkhopűcvkpűrvúáurqpúrrpirokévdhyrwpmo,pöorincadpáaéoeáwpuhofrgkr.priicqmyrwphvvtkckkpyáprpirokévdyrpűrvúáurqpúrrpqéampávváwoéaá,poprúxováűávákpu krkckk,pruávdpoeáqmwkpsűéprpirokévd,prpymqkci,poprwwripumwúáwpgxoehar.péwpnrqracorwpűáqkáuprepryvriőűáaáiák,pűraúrvkruprpqcecarprgkxirk,pyáoőűtkákkáuprpqéoáiáw:pn - - !pávprirqkrupűáwwmprepjgpfsvúáojqpiáúűékprpirokévdkxv.pmúrpéoprwwrpiáoáqűáoáwpecicackk;pgcnrwwrpohírúkrw,púápyőoeiéwphvvk,péoprep gghyrpnrqríckk,pncadpávfcgkorpoetűápfhgúrvuhk.prepjgpjqpiáadáopűcvkpúrrncepéopvhwdrmnce:pfsvrghwvckkrpwáimi,pncadpévákőipűéaémaprpirokévdyrwpurqrúnrkwri,púápóipwáupfcarúkhipáv,puáapoápisoeswkéi.péwpcúrimwwpváoiávóúkáupéopvhkkru:prpicvú oyckqrpg kckkpareúrpyőoeiéwpfsvoeáakáprpfágék,popoexkvrw vpűéamauéqkápávváwoéaék.pwáimqcwkckkruprep úűrqpűéwpnhqofhmwri,pncadpuéaprpváaűrokraryypharipmopqáöoáakáipyávé.pjadpuáqáúáekáiprpnhqoriprpirokévdpávókk,pumwkpuáarwwdmpoáíqz,pruávdpöoriprqqrpűhq,pncadposísqgáwáipűává.posísqkáipmopwáuocihqr,prumwkprepjgpareúrpyáisvkseskk.pwánéepwrípűcvkpre,piáuéwdpmúó,púápűrvúáurqpúrrpmopiáuéwdpáuyáqpűcvk,popwáupnrgkckkpfágákpoáwimpávókk.precwitűőv,prumkprpkáokőiswpncqúkri,pwáupurqrúkpoáuumgői,pöoripáadprqrwdöomwhvxpkéaávd,prumyápúrrpjqpsooeáadzgkskkáprpírúvxwpoeáqkásuvskkpfcvdéicwdprqrwdrk,prpkmkicipkmkihk,pruávdpumwúáwkptaéqk,púápwáuprúckkpuáapoáuumk.pűrvúáurqpúrrpöoripáekpqágkákkáprpeoáyéyá,prekhwpfcakrprpyckghk;prpnrgúrwpareúrapjqpadrvcapmwú vkpjkwripnhqcupvhwdhűrvprpycqqáyd-irokévdyxv.péwpckkpiáqáwakáupisqővskká,pnzkskkáupéaóprqöhk,póoepoerihvvhk,pnrghkpomucarkkru,popyjöojéwáiákpfjgkrupwáim:pn - - !pkcűhyy,pkcűhyy!pmúrpuáaprwwrpckkpvéíúávkáipríg ipuávvákk;pgcnrwwrpuáafcqú vkprpirí yrw,púápnmhyr,pnrprpoeáqáwöoápwáupfcqú vkpuáa!pgcnrwwrprpokmapűhqhwripűsqsopisűámyóvpáuávkpirokévdkpwéeká,popkrvhwprpkáokűéqámqápacwúcvk:pkrvhwpáadpűáqopwénhwdpocqrpghqkprepáoeéyáwpiéeáwpfcagrpwóűéqáprpnjahk,pwáiműhaprepmqúrkvrwpűmvhawri...pvánák,pncadpáqqáprpűáqoqápacwúcvk.pckkpyrwú icvkprpnhqcupwáuáopnrgrúcwpríghűrvprepcqoehajkcw.pwáuprpiseáíéw,prncvpreávókkpnmwkxpqsítkákkápóiák,pnrwáuprpoeévéw,prncvprpicvú ocipyrikrkwri.páadpotiohapfávépmadáiáekái,pryyrprpűhvdcanhemixyr,pruávdákpwénhwdparqroéqkpimyéqávkái.pí oekrpfrvpéopőqáopiruqrpűhqkrpckkpóiák.prpfágőipfsvskkpáaéoepjkcwpűrqgripuáapöoxihipqsíisúkái,péopöojfcwúhqcopnrwacwpqmicvkckkhi:pimprpféoeáiyóv!pimprpféoeáiyóv!p-páekpimhvkcekhiprpycqqáyd-ymqkcipksvadáqúágéyáwpmo,prumicqpúswkskkéiprpfhirk,purúrqripkrwdhghk.pgxvpéqkákkáprpoerű irkpúrrpjqpuáaprpnhqcupvhwdr,puáqkprpfővőiyápfjgkruprpurúhqqmicvkcehok;pyhwcupuhq,puáqkpwáupűcvkpéqúáuáopuáanrvvarkwmpóiák.pyáisvksekáipnhkprpwdcucqjohacopimopűhvdcanheyr,popéwpckknradkrupóiák;pávűhakrkkrupucöorqri,potiohaci,pváöo íhvkpyciqci,páqúóipfsvskk,pwradpűmeáiáwphk,pmúáaáwpkhgriqr.pn - - !pkcűhyy,pkcűhyy!páoekáwúóimapöorűrqcakrupoeáqkáprpűmvhayrw.pumpvákkprpocqorpűrvúáurqpúrrwripéopnhqcupoeéíoéaáopvhwdhwri?pkcűhyypuáoévprpoeév:p-prwwhkpvhkkrup kcvghqr,prwwhk,prpfánéqpghömwkck.psqáapűcvkpuhqpéopasqwdáúkpnhkj,pnmoeáwpskűáwpáoekáwúópf kckkpávprexkr.pópévkprpváakcűhyy,pópűcvk,primpumwúáwkpk úckk.pűmycqapűhqcorpuávvákk,pimwwprpí oekhw,poeéípjgp úűrqnherkpéítkkákákkpáadpváviéoe;pűsqsopisűáiyóvpáuávkéiprpfrvhk,pűtarwpfőoksvkáiprpiéuéwdám.prpváviéoepfáváoéaápuáapvhwdrmpimwwpővkáiprepáqiévdáw,poprpiáqkmpfhipiseővpimwéekáiprpuáooempí oekhqr.p adrwpumkpvhkkripckk?páadpfévmapqcuyrpúóvkpűmoixk,popáadpaxvdrféoeiákprpkákágéw.pucnrpéope euxpesvúávvkprpkáków;pyhqprpkákópwáűákpwáumaáwpéqúáuávkápuáa,puáqkpmwihyyprpaxvdrféoeáipfsúkápéopűéúkáprpnherk.púáprpkákópreéqkpwáupoerirúkpyá,puáqkprpaxvdrpmarearkkr,pfcvkcearkkr,pacwúghkpűmoávká.pvhkűhwdwripymecwdpéqúáiáopűcvkpreprpűmoix,púápnrgvéiwripwdcucqjohacop-pfcvdkrkkrprpoeév.p-pöoripreéqkpwáupqcwkckkhipvá,puáqkpaxvdrpféoeiávkpqrgkr,piővswyáwpűrvxohacopurúhqmgáoekógápűcvkprpí oekhwri.prpváviéoeöorvhúpwáuprirqkrpávzewmprpaxvdhk,páeéqkphvvnrkckkpyéiéyáwprpűhvdcaűmoix,poprpoeáaéwdpsqáapvhwdwripkcűhyyqrpmopnrgvéickprúckk.pymecwd,páekprpaxvdhwripisoeswnákká;pkrvhwpg krvurewmprirqkrprpurúhq,pruméqkpűrvrumicqpqéaáw,prpycqqáyd-ksvadáoyáwpfáiákápkáokűéqámwáipévákékpuáwkákkápuáaprwwr,prumicqpuéapfánéqpghömwkpűcvkprpyőoeiápwáuáojqpűmqhacoiáqkgéyáw.prpoeáaéwdpsqáaprwwrpáv-ávkzwóúskkprpujvkcw.p-px,px!p-poxnrgkceckkpwríáokma.piővswso,prepáuyáqáipéííáwpjadpoxnrgkcewri,pumwkprpoeév,prumicqprpwhúropiseskkpoervrú.p-px,pűrvúáurqpúrr,poeáaéwdpríhu!pwáupitoéqkpnrqrwaoexp kcvoxp krúqr;pmoicvhoadáqáiáipoápéwáiávkáipnrvckkroéwáiák,prumicqpycqqáydpáadicqmp qhkpávkáuákkéi!pávkáuákkéi,popöoripjadpoerirúkpűéaáprpwdcucqjohahwri.pmúrpáadpgcyyhadncepuáwkpfáváoéaőv,poeáaéwdpríhwirkpáepyjotkckkrprpváagcyyrw:pvhwdhwrip qrpwdcucq vkpoecvar,primkpúáqáoqápnjenrkprpareúhgr,pnrpjadpkákoemipwáim.p adá,pgcyyprpfsvúprvrkkpímnáwwm,príhu?p adá,pgcyypcúrváww,poeáaéwdpmúr?px,px!prepéwpoeáwűáúéoámuwáipuéapwáupoerirúpűéaá!pűhvkopuáapmokáwáu!ptadpfcnhoeicúckkprwwrprpyáqcadckkpűmoixyrw,pruávdwáipöoriprpaxvdrpiáúűééqkpiáadávuáekái.pgcnrwwhk,prpváayhkqryymipnrgrúcwk,péwpűákkáupíhqkfcahocuyrp-puáoévkpkcűhyyprpoeév.p-pf qöorpúcvackpűákkprpfágéyá:pféqfmq nhkpűrqqrkckk,péopávoeáaóúskkpnrgxomwrowri;poezioerűjpűcvkpéopicucq,púápwradcwpoáqéwdprpu wihyrw.pnrwáuphqycöqrpuhoewmpwáupk úckk,páeéqkpéwpváocúcqkruprpfáúéveákqóv,puéapumávókkpéoeqáűákkéipűcvwr,pncadpvhwd.páeeávpuáauáwkákkáuprpoeéadáwkóv.poci-ocipáoekáwúópf kckkpáv;páadpnjoűékpqáaaáváwp-pnjoűékpűcvk,pumwkpriicq,prumicqpűrvúáurqpúrrprekpnmkká,pncadpuáakrvhvkrprpkmkicipkmkihkp-péwáioexkpnrvvckkruprpqcadrúcexpűhvdcafrvripiseőv:prwwrpéwáiávkáprpnjoűékmpeocvkhqk,prwwr,prpnrgúrwmpfánéqpghömwk.pryvripwáupűcvkprpfrvcw,pöoripáadpwdtvho,precwpqradcackkpyáprpwrí,prihqpáadpúrqrypoetwrqrwd.pumöocúrpféwdphqrúkprpűmoixyr!pryyrwprpímvvrwrkyrwpuáaksqkprepsqáaprwwrpoeáuá,puáaoerirúkprpoetűá,péopncvkrwpy ickkprpírúvxqr.priicqpmoptadpksqkéwkpűcvwrpíáqoeá,pnrpwáupqradcapyápnceehprpnjoűékmpwrí.p kcvoxpímvvrwrkmaprpaxvdrpféoeiápfsúkápyá,pűéúkáprepáoókóvprpűmoixghk.prpotqgrpfsvskkpéwpéwáiávkáuprpyjöojekrkxkp-pucwúkrprpoeév.p-péwpyjöojekrkkruprepríghkpmo,pucokpmopk úcu,pncvprpotqgr,pöoripéwpk úcu,poáwimpuho.pjgpmúói,puhopmúóipisűákiáewái.pqéamp kripuáeóiiépfőűáoáúwái,pqéampotqcipcqoehajkkhpkrícoxúwri,pűradpotwáiákpéítkáwáipfsvéyői,popaóeuceúcwdpqcycapávprpqéampnrvckkripfsvskk,primiwáipuhqprpwáűéqápoápáuvéioemipoáwim.pn - - !pkcűhyy,pkcűhyy!ptadpévkpéoptadpnrvkpuáapűrvúáurqpúrrpéopnhqcupvhwdr.primpoeáyyáwpk úpuáoévwm,puáoévgápávpoeáyyáw!p-pimhvkckkrprpoeév,preervpuáafcqú vkpéopávoeha vúckk.p'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. feladat\n", "Készítsd el az Enigma rejtjelező gépet pythonban. Az Enigmát a Második Világháborúban használták a németek. Körülbelül úgy nézett ki mint egy írógép, amibe beleszereltek három forgó tárcsát. Betűnként rejtjelezett, ha megnyomtad egy billentyűjét, akkor egy kis lámpa jelezte, hogy milyen betűt kell leírnod helyette. Itt egy egyszerűsített rajz a belső működéséről. \n", "\n", "![enigma](http://damasdigabor.web.elte.hu/python/beadando1/enigma.JPG) \n", "\n", "A gép úgy működött, hogy a betű lenyomásával az áram végighaladt egy vezetékekből álló rendszeren, és ahová eljutott, ott kigyulladt egy lámpácska. Először egy kapcsolótáblán haladt át, ami megkeverte a drótokat. (azaz egy fix permutációjának felel meg). Aztán áthaladt három tárcsán. Ezek a tárcsák is egy-egy keverést adnak meg, csak a gép működése közben ezek változni fognak. Aztán egy visszafordítóba futott, ami párokba állította a drótokat és visszaküldte az áramot egy másikon. (Aza egy bijekciónak felel meg). Ezután visszafelé átfutott újra a három tárcsán és a kapcsolótáblán. Így visszaért egy billenytűhöz, és az ahhoz tartozó lámpa felgyulladt. Például a kép azt ábrázolja, hogy a `b` billentyű megnyomására a `c` lámpa fog felgyulladni. \n", "\n", "Ha a gép csak ennyit csinálna, akkor ez persze nem volna más csak egy behelyettesítő ábécé. Viszont minden billentyű ütés után a tárcsák állása megváltozott. Az első ütésnél az első tárcsa egyet tekerődött, azaz minden drót körkörösen arrébb ment egyel. Az előző ábrán lévő állásból például ez lett:\n", "\n", "![enigma2](http://damasdigabor.web.elte.hu/python/beadando1/enigma3.JPG) \n", "Itt már a nem a `c` fog világítani, ha lenyomjuk a `b` gombot, hanem a `d`. Az első tárcsa minden gombnyomásra lépett egyet. Amikor az első tárcsa már annyit lépett, hogy teljesen körbe ért, egyet lépett a második tárcsa is. Mindig, amikor a második körbeért, lépett egyet a harmadik tárcsa is. Így az összes lehetséges tárcsa pozíción végigmentek a tárcsák és csak utána kezdődött előröl az egész. Tehát a kapcsolótábla és a visszafordító fixen marad a működés során, a tárcsák pedig különböző sebességgel forognak. \n", "\n", "Készíts egy programot, ami megvalósítja az enigma kódolást. A feladatott objektum orientáltan kell megoldani. \n", "- Készíts egy `AltalanosTarcsa` osztályt, aminek legyen három alosztálya: `KapcsoloTabla`, `ForgoTarcsa` és `Visszafordito`.\n", "- Készíts egy `Enigma` osztályt, amelynek minden példánya egy enigma gépet valósít meg. Tartalmazza a tárcsákat és azok állását, és a hozzá tartozó tárcsák segítségével képes elkódolni egy szöveget. \n", "- Az elkódolást az Enigma osztály `elkodol` metódusa valósítsa meg. \n", "- Rád bízom a részleteket, például, hogy milyen ábécével dolgozol. \n", "\n", "(Bónusz: Gondold meg, hogy ha tudjuk, hogy milyen tárcsákkal dolgozott a gép, azok milyen állásban voltak és a titkosított szöveget is, akkor hogyan nyerhető vissza az eredeti szöveg.) \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }