Zadanie 1. Wiązka zadań WEGA

W ramach projektu WEGA naukowcom udało się odczytać sygnały radiowe pochodzące z przestrzeni kosmicznej. Po wstępnej obróbce zapisali je do pliku sygnaly.txt.

W pliku sygnaly.txt znajduje się 1000 wierszy. Każdy wiersz zawiera jedno niepuste słowo złożone z wielkich liter alfabetu angielskiego. Długość jednego słowa nie przekracza 100 znaków.

RqK9fSIZiZylB

Przycisk do pobrania TXT zwierający 1000 wierszy .

Plik TXT o rozmiarze 49.69 KB w języku polskim

Uwaga: Plik przyklad.txt zawiera dane przykładowe spełniające warunki zadania. Odpowiedzi dla danych z pliku przyklad.txt są podane pod pytaniami.

RdwsMNtQ7HQWE

Przycisk do pobrania TXT z danymi przykładowymi spełniającymi warunki zadania.

Plik TXT o rozmiarze 4.12 KB w języku polskim

Zadanie 1.1

Naukowcy zauważyli, że po złączeniu dziesiątych liter co czterdziestego słowa (zaczynając od słowa czterdziestego) otrzymamy pewne przesłanie.

Napisz program, który dla danych z pliku sygnaly.txt zapisze to przesłanie do pliku przeslanie.txt.

Uwaga: Każde co czterdzieste słowo zawiera co najmniej 10 znaków.

Dla danych z pliku sygnaly.txt wynikiem jest:

NIECHCIMATURAPROSTABEDZIE

Do oceny oddajesz:

  • plik przeslanie.txt zawierający odpowiedź do zadania;

  • plik(i) zawierający(e) kod źródłowy twojego programu.

Zadanie zostało opracowane przez CKE i pojawiło się na egzaminie maturalnym z informatyki w maju roku (poziom rozszerzony, egzamin w tzw. starej formule). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.

Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python.

Rozwiązanie

Rozwiązanie zadania przedstawimy w postaci pseudokodu, ponieważ na egzaminie maturalnym można korzystać z wybranego języka programowania: C++, Java lub Python.

Zapisywanie pseudokodu rozpoczniemy od wczytania danych z podanego pliku:

Linia 1. słowa otwórz nawias kwadratowy 0 kropka kropka 999 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów sygnaly kropka txt cudzysłów.

Następnie zadeklarujemy łańcuch znaków o nazwie przesłanie. Początkowo będzie on pusty:

Linia 1. słowa otwórz nawias kwadratowy 0 kropka kropka 999 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów sygnaly kropka txt cudzysłów. Linia 2. przesłanie ← cudzysłów cudzysłów.

Zapisujemy pętlę dla, w której zmienna iteracyjnaiteracjaiteracyjna przechodzi po co czterdziestym słowie z tablicy. Ponieważ indeksowanie tablicy rozpoczyna się od wartości 0, czterdzieste słowo ma indeks równy 39:

Linia 1. słowa otwórz nawias kwadratowy 0 kropka kropka 999 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów sygnaly kropka txt cudzysłów. Linia 2. przesłanie ← cudzysłów cudzysłów. Linia 4. dla i znak równości 39 przecinek 79 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek.

Wewnątrz pętli zapiszemy instrukcję modyfikującą pusty początkowo łańcuch znaków przesłanie. Będziemy do niego dołączać dziesiątą literę z co czterdziestego słowa. Skorzystamy przy tym z operatora dodawania jako operatora konkatenacji – ten sam operator wykorzystywany jest między innymi w językach C++, Java lub Python do łączenia ciągów znaków z innymi ciągami lub znakami.

Linia 1. słowa otwórz nawias kwadratowy 0 kropka kropka 999 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów sygnaly kropka txt cudzysłów. Linia 2. przesłanie ← cudzysłów cudzysłów. Linia 4. dla i znak równości 39 przecinek 79 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 5. przesłanie ← przesłanie plus słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 9 zamknij nawias kwadratowy.

W rezultacie zgromadziliśmy wszystkie znaki składające się na łańcuch przesłanie. Pozostaje zapisać jego wartość do pliku wynikowego i zamknąć pliki.

Linia 1. słowa otwórz nawias kwadratowy 0 kropka kropka 999 zamknij nawias kwadratowy ← wczytaj dane z pliku cudzysłów sygnaly kropka txt cudzysłów. Linia 2. przesłanie ← cudzysłów cudzysłów. Linia 4. dla i znak równości 39 przecinek 79 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 5. przesłanie ← przesłanie plus słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 9 zamknij nawias kwadratowy. Linia 7. zapisz przesłanie do pliku cudzysłów przeslanie kropka txt cudzysłów. Linia 9. zamknij plik cudzysłów sygnaly kropka txt cudzysłów. Linia 10. zamknij plik cudzysłów przeslanie kropka txt cudzysłów.

Schemat oceniania:

  • 3 pkt – za prawidłową odpowiedź,

  • 1 pkt – za podanie wynikowego słowa z jednym błędem,

  • 0 pkt – za błędną odpowiedź albo za brak odpowiedzi.

Odpowiedzi do zadania:

Plik przeslanie.txt:

R166MiokrIIuC

Przycisk do pobrania TXT z odpowiedzią do zadania.

Plik TXT o rozmiarze 25.00 B w języku polskim

Słownik

zmienna sterująca
zmienna sterująca

zmienna tworzona i wykorzystywana do sterowania wykonaniem instrukcji iteracyjnej; zazwyczaj to zmienna typu porządkowego, np. liczba naturalna, całkowita lub wartość logiczna, aczkolwiek w niektórych językach, np. C++Java, typ zmiennej sterującej nie jest ograniczony

iteracja
iteracja

powtarzanie tej samej operacji z góry określoną liczbę razy lub do momentu spełnienia określonego warunku