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

0 głosów
6,400 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,694 wizyt
0 głosów
1 odpowiedź 1,319 wizyt
pytanie zadane 7 czerwca 2016 w Rozwój zawodowy, nauka, praca przez m_rij_v Użytkownik (660 p.)

93,604 zapytań

142,529 odpowiedzi

322,997 komentarzy

63,092 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

Kursy INF.02 i INF.03
...