Darmowe konto pozwoli wrócić do niego później.
Polecenie
W wybranym przez siebie języku programowania, w pseudokodzie lub w postaci listy kroków, napisz algorytm deszyfrujący tekst, który został zakodowany szyfrem kolumnowym.
Specyfikacja:
Dane:
k – klucz, liczba całkowita większa od 0
n – liczba znaków w tekście zaszyfrowanym, n jest wielokrotnością k
S[1..n] – ciąg znaków (tekst do odszyfrowania)
Wynik:
Darmowe konto pozwoli wrócić do niego później.
T[1..n] – ciąg znaków (tekst odszyfrowany)
Przykładowe rozwiązanie:
P ← n/k
W ← 0; z ← P
dia i = 1, ..., P wykonuj
W ← W + 1
dia j = 1, ..., k wykonuj
T[W] ← S[W]; W ← W + z
W ← W - z
z ← z * (-1)
Wyjaśnienie: P to liczba wierszy. Dla każdego wiersza W (numerowanego od 1 do P) czytamy znaki z szyfrogramu. W pętli wewnętrznej indeks W przesuwamy o z (liczba wierszy), zaś kierunek zmieniamy po każdym wierszu (z *= -1). Nieparzyste wiersze czytamy od góry (z = P), parzyste od dołu (z = -P).
za poprawny algorytm, w tym: 1 pkt za poprawne przestawianie wskaźnika elementu początkowego dla pętli wewnętrznych (po wykonaniu pętli wewnętrznej +1); 1 pkt za poprawne indeksowanie komórek przy parzystej iteracji (zwiększanie o P); 1 pkt za poprawne indeksowanie komórek przy parzystej iteracji (zmniejszanie o P); 1 pkt za poprawny kierunek indeksowania pętli odczytujących.
Algorytm odwraca proces szyfrowania. Klucz to liczba wierszy, zaś n/k to liczba kolumn. Czytamy wierszami z szyfrogramu, ale wpisujemy je do odpowiednich kolumn oryginalnego tekstu, pamiętając o kierunku (parzyste kolumny od dołu).
Ocena według schematu punktowania CKE, zwykle w 15–30 s
Dowiedz się, ile punktów naprawdę zdobywasz. Zrób zdjęcie kartki albo wklej odpowiedź: Maturownik+ porówna ją ze schematem punktowania, policzy punkty i wytłumaczy, gdzie i dlaczego je tracisz.