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

Matura Maj 2016 Zadanie 6.1 (Rozwiązanie)

VPS Starter Arubacloud
0 głosów
5,657 wizyt
pytanie zadane 13 kwietnia 2018 w Rozwój zawodowy, nauka, praca przez Krzysiu Czereczon Nowicjusz (170 p.)
edycja 14 kwietnia 2018 przez Krzysiu Czereczon

Witam przedstawiam moje rozwiązanie zadania 6.1 z matury 2016, może przydać się komuś, kto przygotowuje się do matury, przepraszam za błędy w nazewnictwie poszczególnych rzeczy w komentarzach.

Zadanie 6.2 : https://forum.pasja-informatyki.pl/343366/matura-maj-2016-zadanie-6-2-rozwiazanie-c-11

 

Link do arkusza:

https://cke.gov.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2016/formula_od_2015/MIN-R2_1P-162.pdf

Link do plików:

https://www.cke.edu.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2016/formula_od_2015/Dane_PR2.zip

Treść zadania:

Zadanie 6.1. (0–3)

W pliku dane_6_1.txt znajduje się 100 słów. Słowa umieszczono w osobnych wierszach.
Fragment pliku dane_6_1.txt:

INTERPRETOWANIE
ROZWESELANIE
KONSERWOWANIE

Napisz program, który zaszyfruje słowa z pliku dane_6_1.txt z użyciem klucza
k = 107. Wynik zapisz do pliku wyniki_6_1.txt, każde słowo w osobnym wierszu,
w porządku odpowiadającym kolejności słów z pliku z danymi.

Uwaga:
Dla pierwszego słowa z pliku dane_6_1.txt (INTERPRETOWANIE) wynikiem jest
słowo LQWHUSUHWRZDQLH. 

 

Rozwiązanie:

#include <iostream>
#include <fstream> // biblioteka operacji na plikach

using namespace std;

char alfabet[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; // tablica znaków alfabetu
ifstream plik; //klasa pliku
int k = 107; //przesunięcie

string cezar(string in, int offset) // fukcja szyfrująca
{
    string hashedString;
    for(int i = 0; in.length() >= i; i++) // pętla pobierająca każdą literke tringa
    {
        int j = -1; // inicjazliacja zmiennej, aby na początku nie wykonuwała sie fukcja dodająca literke
        while(alfabet[j] != in[i]) // sprawdza czy literka w alfabecie jest równa literce w słowie jeśli tak, to kończy pętle
        {
            j++; //ilość powtórzeń pętli, oraz zmienna oznaczająca kolejność literki względem tablicy "alfabet"
        }
        if(j != -1) // sprawdza czy liczba nie jest -1, aby przypadkiem nie dodać litery "a" do naszego ciągu znaków
        {
            hashedString += alfabet[(j+offset)%sizeof(alfabet)]; // (j+offset)%sizeof(alfabet) sprawdza czy liczba nie wychodzi poza szerokość tablicy
        }
    }
    return hashedString; // zwraca stringa z poprzestawianymi liczbami
}

int main()
{
    plik.open("dane_6_1.txt"); // wczytywanie pliku do zmiennej "plik", aby działo poprawnie plik musi być w folderze z plikiem źródłowym

    if(plik.good()) // sprawdza czy plik jest wczytany jeśli tak kontynuuje program
    {
        string line; // zmienna pomocnicza
        while(std::getline(plik,line)) // petla, która pobiera linie z pliku "plik" i wpisuje ją do zmiennej "line"
        {
            string newLine = cezar(line, k); // zmienna "newLine", która przyjmuje wartość zwrotu z funkcji szyfrującej "cezar"
            cout << newLine << endl; // wyświetla zaszyfrowane słowo
        }
    }
    return 0; // zakończenie programu
}

 

komentarz 13 kwietnia 2018 przez Patrycjerz Mędrzec (192,320 p.)
Miło by było, gdybyś podał treść do zadania. Inaczej każdy zainteresowany musi szukać jej na własną rękę.
komentarz 14 kwietnia 2018 przez Krzysiu Czereczon Nowicjusz (170 p.)
Już dodaję, dzięki za radę.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 3,060 wizyt
0 głosów
1 odpowiedź 1,138 wizyt
pytanie zadane 7 czerwca 2016 w Rozwój zawodowy, nauka, praca przez m_rij_v Użytkownik (660 p.)

93,005 zapytań

141,971 odpowiedzi

321,251 komentarzy

62,344 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...