Tekstu iespējams nokodēt, visus tajā esošos burtus pēc noteikta algoritma aizvietojot ar citiem. Lai veiktu šāda veida kodēšanu, veidosim kodēšanas tabulu.
Lai izveidotu šo tabulu, izvēlēsimies atslēgas vārdu, kas sastāv no atšķirīgiem angļu alfabēta burtiem un naturālu koda skaitli K, kura vērtība nepārsniedz 26.
Kodēšanas tabula sastāvēs no divām rindām un 26 kolonnām. Katrā tabulas rūtiņā atrodas pa vienam angļu alfabēta lielajam burtam. Tabulas pirmajā rindā ir uzrakstīti visi angļu alfabēta lielie burti alfabētiskā secībā pēc kārtas.
Tabulas otrajā rindā, sākot no K-tās kolonnas ir ierakstīts atslēgas vārds. Kad atslēgas vārds ir ierakstīts, pārējie alfabēta burti (kas neietilpst atslēgas vārdā) tiek sakārtoti leksikogrāfiskā secībā un tiek rakstīti tūlīt aiz atslēgas vārda pēc kārtas. Kad ierakstīts burts 26.kolonnā, atlikušie burti tiek rakstīti sākot no pirmās kolonnas.
Piemēram, ja atslēgas vārds ir "DUBROVNIK" un koda skaitlis ir 10, tad kodēšanas tabula izskatās sekojoši:
Teksta kodēšana notiek, oriģinālajā tekstā katru tajā esošo burtu atrodot pirmajā rindā un aizstājot to ar burtu no šīs pašas kolonnas otrās rindas. Teksta atkodēšana notiek pretēji - t.i., jāatrod burts otrajā rindā un jāaizstāj ar burtu no šīs pašas kolonnas pirmās rindas.
Uzrakstiet programmu, kas dotam atslēgas vārdam un koda skaitlim atkodē doto kodēto tekstu, t.i. atrod oriģinālo tekstu!
Teksta faila decode.in pirmajā rindā dots atslēgas vārds.
Faila otrajā rindā dots koda skaitlis K.
Faila trešajā rindā dots kodētais ziņojums, kura garums nepārsniedz 100 simbolus.
Teksta faila decode.out vienīgajā rindā jāizvada atkodētais teksts.
decode.in | decode.out |
NOVI 15 DTZNMNXAWT |
VINODOLSKI |
decode.in | decode.out |
DUBROVNIK 10 SVPKVSVABZOMSRZY |
DOBRODOSLINADMIH |
decode.in | decode.out |
ZAGREB 23 QYELREDEWEMLFNEIEP |
OVAJZADATAKJELAGAN |