Zadanie z matury 2012 (rozszerzona)

0

Rozważmy szyfr podstawieniowy działający zgodnie z następującymi zasadami:

  • Tekst jawny, szyfrogram oraz klucz składają się wyłącznie z wielkich liter alfabetu angielskiego.
  • Litery ponumerowano i przyporządkowano im kody ASCII (liczby z zakresu 65–90):

Tabela numerów i kodów ASCII poszczególnych liter

Kolejne litery tekstu jawnego są szyfrowane za pomocą kolejnych liter słowa będącego kluczem, być może powtórzonego wiele razy.

  • W procesie szyfrowania tekst jawny przekształcany jest na szyfrogram przy pomocy klucza poprzez dodanie do kodu litery tekstu jawnego numeru odpowiadającej jej litery klucza. Jeżeli tak uzyskana wartość liczbowa będzie większa od 90, należy ją zmniejszyć o 26. Szyfrem danej litery jest litera o tak uzyskanym kodzie.
    Poniższy przykład precyzuje zasady szyfrowania.

Przykład:
Tekst jawny: LATO, klucz: WODA
L+W = 76+23 = 99. Ponieważ przekroczono zakres 90, należy od 99 odjąć 26, czyli 99–26 = 73. Zatem zaszyfrowanym znakiem jest litera I.
A+O = 65+15 = 80, czyli zaszyfrowanym znakiem jest litera P.
T+D = 84+4 = 88, czyli zaszyfrowanym znakiem jest litera X.
O+A = 79+1 = 80, czyli zaszyfrowanym znakiem jest litera P.
Szyfrogram: IPXP

-Jeżeli użyte słowo kluczowe jest zbyt krótkie, by wystarczyło do zaszyfrowania całego tekstu, należy użyć jego powtórzeń.

Przykład:
Tekst jawny: MARTA, klucz: TOR
M+T = 77+20 = 97, 97-26=71, G
A+O = 65+15 =80, P
R+R = 82+18= 100, 100-26 = 74, J
T+T = 84+20 = 104, 104-26=78, N
A+O = 65+15 =80, P
Szyfrogram: GPJNP

Proszę o pomoc w zrobieniu i wytłumaczeniu tego zadania (jestem w 1 klasie liceum i mam to zrobić na wtorek).
Z góry dziękuję za pomoc.

0

Dzięki za odpowiedź, ale w tym kodzie jest jeszcze parę rzeczy których nie rozumiem, więc może ktoś doda jakieś łatwiejsze rozwiązanie?

0

to napisz czego nie rozumiesz, przynajmniej się czegoś nauczysz...

0

Nie rozumiem wielu rzeczy, jestem początkującym programistą.
Głównie chodzi mi o wyjaśnienie całego kodu, gdyż mój nauczyciel po oddaniu takiego zadania wymaga wyjaśnienia go, a z tego kodu niewiele rozumiem.

0

Co mamy ci wytłumaczyć? Deklarację funkcji, skróconą instrukcję warunkową, pętle czy skorzystanie ze strumieni plikowych? Przecież tam są tylko absolutne podstawy C++.

0

Dobra, już rozumiem większość, ale ja mam to zadanie zrobić bez fstream. Chodzi o to aby ten program nie pobierał danych z pliku tylko trzeba je po prostu wprowadzić.

0

Pobierz dwa napisy (tekst do zaszyfrowania i klucz) poprzez std::cin, przekaż je do funkcji, którą napisałem i wyświetl wynik przez std::cout.

1 użytkowników online, w tym zalogowanych: 0, gości: 1