Zadanie 1

MetagramymetagramMetagramy to wyrazy różniące się od siebie tylko jedną literą znajdującą się w obu słowach na tej samej pozycji. Metagramami są np. słowa kasarasa, nie są nimi natomiast wyrazy krabbruk.

W pliku słowa.txt zapisano 1000 par słów, każda w osobnej linii. Dwa słowa w jednej linii oddzielone są spacją. Słowa składają się z małych liter alfabetu łacińskiego.

R15VHuMDl56Ux

Przycisk do pobrania pliku TXT z treścią zadania.

Plik TXT o rozmiarze 15.60 KB w języku polskim

Napisz program, który dla słów z pliku słowa.txt poda liczbę par słów, które są metagramami. Wynik zapisz w pliku wynik.txt.

Przykład 1

Dla przykładowych danych:

Linia 1. jmyxhkjjvmyt jmyxhkjjxmyt. Linia 2. pmtwjkogf tnsosjesjx. Linia 3. df ktlzs. Linia 4. gondp bpvfoc. Linia 5. bs qqhaozzbheb. Linia 6. opuxpvts jfs. Linia 7. euepkzg dbgzhs. Linia 8. bgfg brfg.

Poprawny wynik to:

Linia 1. 2.

Do oceny oddajesz:

  • plik wynik.txt zawierający odpowiedź do zadania (liczba naturalna oznaczająca liczbę par słów z pliku słowa.txt stanowiących metagramy),

  • plik(i) z komputerową realizacją zadania (kodem programu).

Polecenie 1

Twoim zadaniem jest opracowanie rozwiązania zadania w wybranym przez siebie języku programowania: C++, Java lub Python. Odpowiedź do zadania dla danych z pliku znajdziesz na dole strony.

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.

Najpierw wczytujemy dane z pliku do tablicy. Pamiętajmy o tym, że każda linia zawiera dwa słowa.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów.

Zmiennej licznik przypisujemy wartość 0. W zmiennej będziemy przechowywać informację, ile par słów jest metagramami.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0.

Zapisujemy pętlę dla. Dla każdej pary słów będziemy sprawdzać, czy słowa te są różnej długości. Jeśli tak, nie mogą być metagramami, zatem przejdziemy do analizy kolejnej pary słów.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji.

Zmiennej ile_różnych przypisujemy wartość 0. W zmiennej tej będziemy przechowywać informację, na ilu pozycjach w słowach znajdują się różne litery.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji. Linia 13. ile podkreślnik różnych ← 0.

Jeśli słowa są takiej samej długości, przechodzimy do kolejnej pętli.

Sprawdzamy, czy kolejne litery słów są takie same. Przy każdej parze liter, które się różnią, zwiększamy wartość zmiennej ile_różnych o 1.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji. Linia 13. ile podkreślnik różnych ← 0. Linia 14. dla j znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykonuj dwukropek. Linia 15. jeżeli słowo1 otwórz nawias kwadratowy j zamknij nawias kwadratowy wykrzyknik znak równości słowo2 otwórz nawias kwadratowy j zamknij nawias kwadratowy dwukropek. Linia 16. ile podkreślnik różnych ← ile podkreślnik różnych plus 1.

Gdy wartość zmiennej ile_różnych będzie większa od 1, pętla przerwie swoje działanie, ponieważ słowa nie będą metagramami.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji. Linia 13. ile podkreślnik różnych ← 0. Linia 14. dla j znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykonuj dwukropek. Linia 15. jeżeli słowo1 otwórz nawias kwadratowy j zamknij nawias kwadratowy wykrzyknik znak równości słowo2 otwórz nawias kwadratowy j zamknij nawias kwadratowy dwukropek. Linia 16. ile podkreślnik różnych ← ile podkreślnik różnych plus 1. Linia 17. jeżeli ile podkreślnik różnych zamknij nawias ostrokątny 1 dwukropek. Linia 18. przerwij pętlę.

Po sprawdzeniu całego słowa – jeśli zmienna ile_różnych ma wartość 1 – zwiększamy wartość zmiennej licznik o 1.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji. Linia 13. ile podkreślnik różnych ← 0. Linia 14. dla j znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykonuj dwukropek. Linia 15. jeżeli słowo1 otwórz nawias kwadratowy j zamknij nawias kwadratowy wykrzyknik znak równości słowo2 otwórz nawias kwadratowy j zamknij nawias kwadratowy dwukropek. Linia 16. ile podkreślnik różnych ← ile podkreślnik różnych plus 1. Linia 17. jeżeli ile podkreślnik różnych zamknij nawias ostrokątny 1 dwukropek. Linia 18. przerwij pętlę. Linia 20. jeżeli ile podkreślnik różnych znak równości 1 dwukropek. Linia 21. licznik ← licznik plus 1.

Po sprawdzeniu całej zawartości pliku zapisujemy stan zmiennej licznik do pliku wynik.txt i zamykamy pliki.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwsze słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 3. słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugie słowo z i minus tej linii pliku cudzysłów słowa kropka txt cudzysłów. Linia 4. przejdź do następnej linii w pliku cudzysłów słowa kropka txt cudzysłów. Linia 6. licznik ← 0. Linia 7. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 8. słowo1 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 9. słowo2 ← słowa otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy. Linia 10. jeżeli długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykrzyknik znak równości długość otwórz nawias okrągły słowo2 zamknij nawias okrągły dwukropek. Linia 11. kontynuuj pętlę od następnej iteracji. Linia 13. ile podkreślnik różnych ← 0. Linia 14. dla j znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek długość otwórz nawias okrągły słowo1 zamknij nawias okrągły wykonuj dwukropek. Linia 15. jeżeli słowo1 otwórz nawias kwadratowy j zamknij nawias kwadratowy wykrzyknik znak równości słowo2 otwórz nawias kwadratowy j zamknij nawias kwadratowy dwukropek. Linia 16. ile podkreślnik różnych ← ile podkreślnik różnych plus 1. Linia 17. jeżeli ile podkreślnik różnych zamknij nawias ostrokątny 1 dwukropek. Linia 18. przerwij pętlę. Linia 20. jeżeli ile podkreślnik różnych znak równości 1 dwukropek. Linia 21. licznik ← licznik plus 1. Linia 23. zapisz licznik do pliku cudzysłów wynik kropka txt cudzysłów. Linia 24. zamknij plik cudzysłów słowa kropka txt cudzysłów. Linia 25. zamknij plik cudzysłów wynik kropka txt cudzysłów.

Odpowiedź do zadania

Odpowiedź do zadania znajduje się w pliku.

R1c3jz8vk9zk0

Przycisk do pobrania pliku TXT z odpowiedzią do zadania.

Plik TXT o rozmiarze 3.00 B w języku polskim
Polecenie 2
R1FvIvz00LtnK
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Słownik

metagram
metagram

wyraz różniący się od innego jedną literą (pierwszą lub inną dowolną) na tej samej pozycji, np. mara i masa, kara i kasa, bród i brud