Zadanie maturalne - szyfr cezara...

Dodano 02 LIS 2006 roku o godzinie 16:41:37

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

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

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

Dodaj komentarz

code