• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed cpp,szyfr -pomoc

Object Storage Arubacloud
+1 głos
1,605 wizyt
pytanie zadane 1 marca 2017 w C i C++ przez Krystek102 Bywalec (2,440 p.)
zamknięte 1 marca 2017 przez HaKIM
Witam,mam problem oto z tym zadaniem

Wiązka zadań Szyfr afiniczny
Dany jest tekst złożony ze słów zbudowanych z małych liter alfabetu angielskiego. Metoda szyfrowania afinicznego — dla której kluczem szyfrującym są dwie liczby całkowite A i B — polega na wykonaniu kolejno następujących operacji: zastąpienia kolejnych liter alfabetu liczbami od 0 do 25: 'a' przez 0, 'b' przez 1, 'c' przez 2 itd

pomnożenia liczby odpowiadającej każdej literze przez A i dodania otrzymanego wy- niku do B,
zamiany otrzymanych liczb z powrotem na litery; jeśli liczba jest większa niż 25, bie- rze się jej resztę z dzielenia przez 26.
Parametry klucza, czyli liczby A i B, powinny być liczbami całkowitymi z przedziału [0, 25].
Dla przykładu, jeśli kluczem szyfrującym jest (3, 7), czyli A = 3, zaś B = 7, to litera 'n' jest najpierw zastępowana liczbą 13. Po pomnożeniu jej przez A i dodaniu B otrzymujemy wynik równy 46. W następnym kroku otrzymujemy literę o numerze 46 – 26 = 20, czyli 'u'.
Okazuje się, że do odszyfrowania szyfru afinicznego można zastosować tę samą metodę, być może z innym kluczem. Na przykład, jeśli napis zaszyfrujemy kluczem (3, 7), to aby go od- szyfrować, stosujemy ten sam algorytm z kluczem (9, 15). Dla przykładu, deszyfrując literę 'u' z kluczem (9, 15), otrzymamy liczbę 20 * 9 + 15 = 195, czyli literę 'n', jako że 195 mod 26
= 13. Klucz (9,15) jest wówczas kluczem deszyfrującym dla klucza (3,7).
Napisz program(y), który poda odpowiedzi do poniższych zadań. Odpowiedzi zapisz do pliku
wyniki.txt.

75.2.
Zaszyfruj szyfrem afinicznym o kluczu (5, 2) te słowa z pliku tekst.txt, które składają się z co najmniej 10 liter. Wypisz je w postaci zaszyfrowanej, po jednym w wierszu.

Mam problem gdyż nwm jak zamienić znak na odpowiednią liczbę.Ktoś ma jakiś pomysł ??

 

Pozdrawiam
komentarz zamknięcia: Problem rozwiązany.

2 odpowiedzi

+2 głosów
odpowiedź 1 marca 2017 przez tangarr Mędrzec (154,860 p.)

wczytaj znak i odejmij od niego wartość litery a
 

char znakA = 'a';
int wartoscA = znakA - 'a';
char znakZ = 'z';
int wartoscA = znakZ - 'a';

 

komentarz 1 marca 2017 przez Krystek102 Bywalec (2,440 p.)
dlaczego akurat  należy odjąć litere  'a' ?
1
komentarz 1 marca 2017 przez tangarr Mędrzec (154,860 p.)
tutaj masz tabele kodów ASCII: https://pl.wikipedia.org/wiki/ASCII
znak 'a' ma wartość 97
znak 'b' ma wartość 98
(...)
znak 'z' ma wartość 122
jeżeli odejmiesz od liczby z zakresu [97,122] liczbę 97 ('a') to otrzymasz zakres [0,25]
komentarz 1 marca 2017 przez Krystek102 Bywalec (2,440 p.)
dzięki,wszystko jasne,temat do zamknięcia :)
1
komentarz 1 marca 2017 przez HaKIM Szeryf (87,590 p.)
Sam możesz zamknąć temat klikając na kłódkę w menu pytania (Prawa strona pod treścią).
+2 głosów
odpowiedź 1 marca 2017 przez mokrowski Mędrzec (155,460 p.)

Jako inspiracja ... :-)

#include <iostream>
#include <cctype>
#include <cstdlib>

using namespace std;

int main() {
    char znak;
    cout << "Podaj literę: ";
    if(! ((cin >> znak) && isalpha(znak))) {
        cerr << "Nie podano prawidłowego znaku\n";
        return EXIT_FAILURE;
    }

    znak = tolower(znak);
    cout << "Znak " << znak << " ma kod ASCII " << static_cast<int>(znak) 
        << " i kod w zadaniu " << static_cast<int>(znak - 'a') << endl;
    
    return EXIT_SUCCESS;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 837 wizyt
pytanie zadane 26 lutego 2016 w C i C++ przez rafalmagician Obywatel (1,320 p.)
0 głosów
0 odpowiedzi 275 wizyt
pytanie zadane 13 września 2020 w Python przez saseta00 Użytkownik (700 p.)
0 głosów
1 odpowiedź 396 wizyt
pytanie zadane 7 grudnia 2015 w C i C++ przez Armando Obywatel (1,870 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...