Zadanie maturalne - szyfr cezara...
Dzisiaj na Infie baba dała nam zadanie, oto jego treść...
Szyfr cezara, to szyfr, którego nazwa pochodzi od gajusza Juliusza cezara, rzymskiego wodza i polityka. Cezar stworzył go do kodowania swojej korespondencji. Jest to dzisiaj klasyczny przykład szyfru przesuwnego z kluczem k = 3. Jego zasada polega na zastapieniu dowolnej litery literą leżącą o k pozycji w prawo w stosunku do litery kodowanej. Kodując literę a należy zapisac d, zamiast k piszemy n, ale zamiast y należy zapisac b. System szyfrowania można rozszerzyc o dowolne przesuniecie klucza k gdzie k należy do zbioru od 1 do 24.
1 polecenie
Posługując się wybranym jezykiem programowania napisz program szyfrujący który dla wprowadzonej litery L (zmienna) oraza klucza k wyświetli zaszyfrowana litere
2 polecenie
Napisz funkcje deszyfrujaca która wyświetli dla wprowadzonej zaszyfrowanej litery z (zmienna) oraz klucza k litere zdeszyfrowana.
3 polecenie
Napisz program który wyświetli na ekranie tablicę jawnego alfabetu oraz tablice zaszyfrowanego alfabetu da dowolnego k ze zbioru od 1 do 24.
Do programu powinny być wprowadzone tylko male litery alfabetu, program powinien być odporny na blednie wprowadzona wartość klucza. Układ wyświetlania wynikow powinien być zgodny z poniższym
Podaj klucz szyfrowania:
Podaj litere do zaszyfrowania:
Litera zaszyfrowana to:
Podaj litere do deszyfrowania:
Litera zdeszyfrowana to:
Sprawdzenie
Alfabet jawny
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a b c d e f g h i j k l m n o p q r s t u w x y z
Program zrobiłem, działa. Użyłem tam instrukcji goto. Wiem, że
wszyscy tego unikają i tępią to zjawisko, ale w tym wypadku nie
chciało mi się kombinować :) Ważne, że spełnia swoje zadanie.
Kod znajdziesz tutaj.
Komentarze
Disclaimer
Jakkolwiek jestem właścicielem tego bloga, nie ponoszę odpowiedzialności za kometarze napisane przez innych obywateli tego wolnego kraju.
Zastrzegam sobie prawo do kasowania/modyfikowania komentarzy (jeśli uznam to za stosowne).
#1
do {
[ciach]
} while(k < 1 || k>24)
fajne zadania maturalne macie, nie ma co.
blah | #
#2
nie rozumiem, możesz mi wytłumaczyć o co Ci chodzi ?
radmen | #
#3
jak dla mnie to w tym wypadku i tak nie ma różnicy...
radmen | #
#4
Wow, ale banalne zadanie… To na prawdę z matury?
Wyzwaniem mogłoby być napisanie tego w Brainf*ck'u albo w dc, ale (niestety) nie zaliczają się one do języków dopuszczonych na maturze…
To goto wygląda jakbyś je tam na siłę wsadził właśnie specjalnie. Dużo bardziej naturalne wydaje się być użycie do{…}while.
A w zasadzie to nie wiem po co to sprawdzać (k<1||k>24), program ma być odporny na niepoprawne dane, a nie ich nie przyjmować ;)
Z resztą cholera ich tam wie co znaczy „odporność” programu…
Btw, twój kod źle znosi jak mu się wpisze literę zamiast liczby kiedy pyta o klucz, oraz kiedy mu się poda znaki z poza alfabetu do szyfrowania :)
No, a generalnie to ja bym to zrobił tak: http://phpfi.com/170516
mwgamera | #
#5
zadanie jest łatwe. Co do odporności to masz rację, ale w tym momencie ten fakt mi wisiał :)
Zadanie wymaga aby podać liczbę tylko z tego przedziału..
radmen | #
#6
@mwgamera: Twój kod dał mi dzisiaj parę wskazówek, z których pózniej skorzystam :)
thx
radmen | #