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 rel="external">tutaj.

6 Responses to “Zadanie maturalne – szyfr cezara…”

  1. blah November 2, 2006 at 4:41 pm #

    do {

    [ciach]

    } while(k < 1 || k>24)

    fajne zadania maturalne macie, nie ma co.

  2. radmen November 2, 2006 at 4:41 pm #

    nie rozumiem, możesz mi wytłumaczyć o co Ci chodzi ?

  3. radmen November 2, 2006 at 4:41 pm #

    jak dla mnie to w tym wypadku i tak nie ma różnicy…

  4. mwgamera November 2, 2006 at 4:41 pm #

    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

  5. radmen November 2, 2006 at 4:41 pm #

    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..

  6. radmen November 2, 2006 at 4:41 pm #

    @mwgamera: Twój kod dał mi dzisiaj parę wskazówek, z których pózniej skorzystam :)
    thx