Sklep Nowa Linia ma szeroki asortyment produktów papierniczych.
Każdy artykuł w sklepie opisany jest następującymi danymi:
id produktu – liczba całkowita dodatnia, unikatowy numer każdego produktu,
rodzaj – „zeszyt”, „kalendarz”, „notatnik”,
rozmiar – „A3”, „A4”, „A5”,
liczba kartek – liczba całkowita z zakresu ,
okladka – „twarda”, „miekka”.
Przedstawione informacje dla 500 artykułów zostały zapisane w pliku papierniczy.txt, każdy artykuł w osobnej linii. Informacje dotyczące artykułów zostały oddzielone od siebie pojedynczymi znakami odstępu.
R1RB0kMatMx6f
Korzystając z danych w pliku, wykonaj zadania:
Niektóre dane produktów zostały błędnie wpisane. Zapisz, ile artykułów z błędnymi danymi znajduje się w pliku. Błędne dane rozpoznajemy po tym, że nie spełniają podanych niżej zasad:
Zeszyt w miękkiej okładce nie ma więcej kartek niż 110.
Liczba kartek w notatniku jest liczbą z zakresu .
Kalendarze w rozmiarze A3 występują tylko w miękkiej okładce.
Kalendarze mają zawsze 6 lub 12 kartek.
Uwaga!
Produkt łamiący więcej niż jedno kryterium liczymy tylko raz. Produkty z błędnymi danymi nie powinny być uwzględniane podczas wykonywania kolejnych zadań!
Produkty należą do jednej kategorii, jeżeli mają jednakowe następujące dane:
rodzaj,
rozmiar,
liczba kartek,
okładka.
Dla każdego rodzaju (zeszyt, notatnik oraz kalendarz) zapisz największą liczbę produktów danej kategorii. Kolejne liczby rozdziel znakami odstępu.
Zapisz nazwę rodzaju produktu, który zawiera łącznie najwięcej różnych kategorii produktów oraz łączną liczbę kartek produktów różnych kategorii tego rodzaju.
Sprawdź, czy istnieje produkt o liczbie kartek, która jest liczbą pierwszą. Jeżeli tak, zapisz „tak”, w przeciwnym wypadku zapisz „nie”.
Kolejne odpowiedzi zapisz do pliku wyniki.txt, każdy podpunkt w nowej linii (wyniki w ramach podpunktów oddziel pojedynczymi znakami odstępu).
Do oceny oddajesz:
plik wyniki.txt zawierający odpowiedzi do poleceń,
plik(i) z komputerową realizacją zadania (kodem programu).
11
Pokaż ćwiczenia:
11
Ćwiczenie 1
JĘZYK C++
RcwcRuCoTkGon
Przykładowe rozwiązanie zadania wykorzystujące klasę vector omówioną w materiale Dynamiczne struktury danych w języku C++D18GJWMHoDynamiczne struktury danych w języku C++.
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny string zamknij nawias ostrokątny.
Linia 3. kratka include otwórz nawias ostrokątny vector zamknij nawias ostrokątny.
Linia 4. kratka include otwórz nawias ostrokątny stdlib kropka h zamknij nawias ostrokątny.
Linia 6. using namespace std średnik.
Linia 8. struct Produkt otwórz nawias klamrowy.
Linia 9. int id średnik.
Linia 10. string rodzaj średnik.
Linia 11. string rozmiar średnik.
Linia 12. int liczba średnik.
Linia 13. string okladka średnik.
Linia 14. zamknij nawias klamrowy średnik.
Linia 16. struct Kategoria otwórz nawias klamrowy.
Linia 17. string rozmiar średnik.
Linia 18. int liczba średnik.
Linia 19. string okladka średnik.
Linia 20. int l podkreślnik produktow średnik.
Linia 21. zamknij nawias klamrowy średnik.
Linia 23. prawy ukośnik prawy ukośnik funkcja do podpunktu 4.
Linia 24. bool czyPierwsza otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. if otwórz nawias okrągły liczba otwórz nawias ostrokątny 2 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. return false średnik.
Linia 27. zamknij nawias klamrowy.
Linia 28. int i znak równości 2 średnik.
Linia 29. while otwórz nawias okrągły i asterysk i otwórz nawias ostrokątny znak równości liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 30. if otwórz nawias okrągły liczba procent i znak równości znak równości 0 zamknij nawias okrągły.
Linia 31. return false średnik.
Linia 32. i plus plus średnik.
Linia 33. zamknij nawias klamrowy.
Linia 34. return true średnik.
Linia 35. zamknij nawias klamrowy.
Linia 37. Kategoria dodajKategorie otwórz nawias okrągły Produkt produkt zamknij nawias okrągły otwórz nawias klamrowy.
Linia 38. Kategoria k średnik.
Linia 39. k kropka rozmiar znak równości produkt kropka rozmiar średnik.
Linia 40. k kropka liczba znak równości produkt kropka liczba średnik.
Linia 41. k kropka okladka znak równości produkt kropka okladka średnik.
Linia 42. k kropka l podkreślnik produktow znak równości 1 średnik.
Linia 43. return k średnik.
Linia 44. zamknij nawias klamrowy.
Linia 46. int dodajProdukt otwórz nawias okrągły vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny ampersant kat przecinek Produkt produkt zamknij nawias okrągły otwórz nawias klamrowy.
Linia 47. if otwórz nawias okrągły wykrzyknik kat kropka empty otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 48. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły kat kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 49. if otwórz nawias okrągły kat otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka rozmiar znak równości znak równości produkt kropka rozmiar and kat otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka liczba znak równości znak równości produkt kropka liczba and kat otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka okladka znak równości znak równości produkt kropka okladka zamknij nawias okrągły otwórz nawias klamrowy.
Linia 50. kat otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow plus plus średnik.
Linia 51. return 0 średnik.
Linia 52. zamknij nawias klamrowy.
Linia 53. zamknij nawias klamrowy.
Linia 54. kat kropka push podkreślnik back otwórz nawias okrągły dodajKategorie otwórz nawias okrągły produkt zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 55. zamknij nawias klamrowy.
Linia 56. else.
Linia 57. kat kropka push podkreślnik back otwórz nawias okrągły dodajKategorie otwórz nawias okrągły produkt zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 58. return 0 średnik.
Linia 59. zamknij nawias klamrowy.
Linia 61. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 62. const int n znak równości 20 średnik.
Linia 63. vector otwórz nawias ostrokątny Produkt zamknij nawias ostrokątny dane średnik.
Linia 64. Produkt p średnik.
Linia 66. int id podkreślnik produktu otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 przecinek 11 przecinek 12 przecinek 13 przecinek 14 przecinek 15 przecinek 16 przecinek 17 przecinek 18 przecinek 19 przecinek 20 zamknij nawias klamrowy średnik.
Linia 67. string rodzaj otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów zamknij nawias klamrowy średnik.
Linia 68. string rozmiar otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów zamknij nawias klamrowy średnik.
Linia 69. int liczba podkreślnik kartek otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 88 przecinek 88 przecinek 6 przecinek 44 przecinek 74 przecinek 115 przecinek 12 przecinek 12 przecinek 178 przecinek 42 przecinek 35 przecinek 69 przecinek 30 przecinek 43 przecinek 6 przecinek 167 przecinek 49 przecinek 44 przecinek 111 przecinek 44 zamknij nawias klamrowy średnik.
Linia 70. string okladka otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów zamknij nawias klamrowy średnik.
Linia 72. prawy ukośnik prawy ukośnik podpunkt 1.
Linia 73. int l podkreślnik bledow znak równości 0 średnik.
Linia 75. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 76. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów zeszyt cudzysłów zamknij nawias okrągły.
Linia 77. if otwórz nawias okrągły okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów miekka cudzysłów ampersant ampersant liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 110 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 78. l podkreślnik bledow plus plus średnik.
Linia 79. continue średnik.
Linia 80. zamknij nawias klamrowy.
Linia 81. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów notatnik cudzysłów zamknij nawias okrągły.
Linia 82. if otwórz nawias okrągły liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny 30 kreska pionowa kreska pionowa liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 85 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 83. l podkreślnik bledow plus plus średnik.
Linia 84. continue średnik.
Linia 85. zamknij nawias klamrowy.
Linia 86. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów kalendarz cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 87. if otwórz nawias okrągły rozmiar otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów A3 cudzysłów ampersant ampersant okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów miekka cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 88. l podkreślnik bledow plus plus średnik.
Linia 89. continue średnik.
Linia 90. zamknij nawias klamrowy else if otwórz nawias okrągły liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości 6 ampersant ampersant liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości 12 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 91. l podkreślnik bledow plus plus średnik.
Linia 92. continue średnik.
Linia 93. zamknij nawias klamrowy.
Linia 94. zamknij nawias klamrowy.
Linia 95. p kropka id znak równości id podkreślnik produktu otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 96. p kropka rodzaj znak równości rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 97. p kropka rozmiar znak równości rozmiar otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 98. p kropka liczba znak równości liczba podkreślnik kartek otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 99. p kropka okladka znak równości okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 100. dane kropka push podkreślnik back otwórz nawias okrągły p zamknij nawias okrągły średnik.
Linia 101. zamknij nawias klamrowy.
Linia 103. prawy ukośnik prawy ukośnik przygotowanie kategorii.
Linia 104. vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny zeszyty średnik.
Linia 105. vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny notatniki średnik.
Linia 106. vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny kalendarze średnik.
Linia 108. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły dane kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 109. if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka rodzaj znak równości znak równości cudzysłów zeszyt cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 110. dodajProdukt otwórz nawias okrągły zeszyty przecinek dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 111. zamknij nawias klamrowy else if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka rodzaj znak równości znak równości cudzysłów notatnik cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 112. dodajProdukt otwórz nawias okrągły notatniki przecinek dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 113. zamknij nawias klamrowy else if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka rodzaj znak równości znak równości cudzysłów kalendarz cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 114. dodajProdukt otwórz nawias okrągły kalendarze przecinek dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 115. zamknij nawias klamrowy.
Linia 116. zamknij nawias klamrowy.
Linia 118. prawy ukośnik prawy ukośnik podpunkt 1.
Linia 119. cout otwórz nawias ostrokątny otwórz nawias ostrokątny l podkreślnik bledow otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 121. prawy ukośnik prawy ukośnik podpunkt 2 i 3.
Linia 122. int x znak równości 0 średnik.
Linia 123. int x podkreślnik kartki znak równości 0 średnik.
Linia 124. int y znak równości 0 średnik.
Linia 125. int y podkreślnik kartki znak równości 0 średnik.
Linia 126. int z znak równości 0 średnik.
Linia 127. int z podkreślnik kartki znak równości 0 średnik.
Linia 129. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły zeszyty kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 130. if otwórz nawias okrągły zeszyty otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow zamknij nawias ostrokątny x zamknij nawias okrągły.
Linia 131. x znak równości zeszyty otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 132. x podkreślnik kartki plus znak równości zeszyty otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka liczba asterysk zeszyty otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 133. zamknij nawias klamrowy.
Linia 135. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły notatniki kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 136. if otwórz nawias okrągły notatniki otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow zamknij nawias ostrokątny y zamknij nawias okrągły.
Linia 137. y znak równości notatniki otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 138. y podkreślnik kartki plus znak równości notatniki otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka liczba asterysk notatniki otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 139. zamknij nawias klamrowy.
Linia 141. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły kalendarze kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 142. if otwórz nawias okrągły kalendarze otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow zamknij nawias ostrokątny z zamknij nawias okrągły.
Linia 143. z znak równości kalendarze otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 144. z podkreślnik kartki plus znak równości kalendarze otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka liczba asterysk kalendarze otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka l podkreślnik produktow średnik.
Linia 145. zamknij nawias klamrowy.
Linia 147. prawy ukośnik prawy ukośnik podpunkt 2 dwukropek zeszyt przecinek notatnik przecinek kalendarz.
Linia 148. cout otwórz nawias ostrokątny otwórz nawias ostrokątny x otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny y otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny z otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 150. prawy ukośnik prawy ukośnik cd kropka podpunkt 3.
Linia 151. x znak równości otwórz nawias okrągły int zamknij nawias okrągły zeszyty kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 152. y znak równości otwórz nawias okrągły int zamknij nawias okrągły notatniki kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 153. z znak równości otwórz nawias okrągły int zamknij nawias okrągły kalendarze kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 155. if otwórz nawias okrągły x zamknij nawias ostrokątny y ampersant ampersant x zamknij nawias ostrokątny z zamknij nawias okrągły otwórz nawias klamrowy.
Linia 156. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów zeszyty cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny x podkreślnik kartki otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 157. zamknij nawias klamrowy else if otwórz nawias okrągły y zamknij nawias ostrokątny x ampersant ampersant y zamknij nawias ostrokątny z zamknij nawias okrągły otwórz nawias klamrowy.
Linia 158. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów notatniki cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny y podkreślnik kartki otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 159. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 160. cout otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów kalendarze cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny z podkreślnik kartki otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 161. zamknij nawias klamrowy.
Linia 163. prawy ukośnik prawy ukośnik podpunkt 4.
Linia 164. string czy podkreślnik istnieje znak równości cudzysłów nie cudzysłów średnik.
Linia 165. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny otwórz nawias okrągły int zamknij nawias okrągły dane kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 166. if otwórz nawias okrągły czyPierwsza otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka liczba zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 167. czy podkreślnik istnieje znak równości cudzysłów tak cudzysłów średnik.
Linia 168. break średnik.
Linia 169. zamknij nawias klamrowy.
Linia 170. zamknij nawias klamrowy.
Linia 172. cout otwórz nawias ostrokątny otwórz nawias ostrokątny czy podkreślnik istnieje otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 174. return 0 średnik.
Linia 175. zamknij nawias klamrowy.
21
Ćwiczenie 2
JĘZYK JAVA
Rm2Za2XeAA5nw
W podanym niżej rozwiązaniu do porównywania ciągów znaków (typ String) używamy operatora ==, który zwraca prawdę tylko wtedy, kiedy porównywane ciągi są tymi samymi obiektami, a tak się dzieje dla literałów znakowych umieszczonych w kodzie programu.
Po wczytaniu danych z pliku każdy ciąg znakowy jest innym obiektem, próba porównania go z literałem za pomocą operatora == zawsze zwróci fałsz. Właściwym sposobem na porównanie jest w takim wypadku użycie metody equals() klasy String, a więc np.:
zamiast okladka[i] == "miekka" powinno być okladka[i].equals("miekka"),
zamiast okladka[i] != "miekka" powinno być !okladka[i].equals("miekka").
Linia 1. import java kropka util kropka asterysk średnik.
Linia 3. class Produkt otwórz nawias klamrowy.
Linia 4. public int id średnik.
Linia 5. public String rodzaj średnik.
Linia 6. public String rozmiar średnik.
Linia 7. public int liczba średnik.
Linia 8. public String okladka średnik.
Linia 9. zamknij nawias klamrowy.
Linia 11. class Kategoria otwórz nawias klamrowy.
Linia 12. public String rozmiar średnik.
Linia 13. public int liczba średnik.
Linia 14. public String okladka średnik.
Linia 15. public int l podkreślnik produktow średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. public class Main otwórz nawias klamrowy.
Linia 20. prawy ukośnik prawy ukośnik funkcja do podpunktu 4.
Linia 21. static boolean czyPierwsza otwórz nawias okrągły int liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. if otwórz nawias okrągły liczba otwórz nawias ostrokątny 2 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 23. return false średnik.
Linia 24. zamknij nawias klamrowy.
Linia 25. int i znak równości 2 średnik.
Linia 26. while otwórz nawias okrągły i asterysk i otwórz nawias ostrokątny znak równości liczba zamknij nawias okrągły otwórz nawias klamrowy.
Linia 27. if otwórz nawias okrągły liczba procent i znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 28. return false średnik.
Linia 29. zamknij nawias klamrowy.
Linia 30. i plus plus średnik.
Linia 31. zamknij nawias klamrowy.
Linia 32. return true średnik.
Linia 33. zamknij nawias klamrowy.
Linia 35. static Kategoria dodajKategorie otwórz nawias okrągły Produkt produkt zamknij nawias okrągły otwórz nawias klamrowy.
Linia 36. Kategoria k znak równości new Kategoria otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 37. k kropka rozmiar znak równości produkt kropka rozmiar średnik.
Linia 38. k kropka liczba znak równości produkt kropka liczba średnik.
Linia 39. k kropka okladka znak równości produkt kropka okladka średnik.
Linia 40. k kropka l podkreślnik produktow znak równości 1 średnik.
Linia 41. return k średnik.
Linia 42. zamknij nawias klamrowy.
Linia 44. static int dodajProdukt otwórz nawias okrągły Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny kat przecinek Produkt produkt zamknij nawias okrągły otwórz nawias klamrowy.
Linia 45. if otwórz nawias okrągły wykrzyknik kat kropka isEmpty otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 46. Kategoria k średnik.
Linia 47. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny kat kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 48. k znak równości kat kropka get otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 49. if otwórz nawias okrągły k kropka rozmiar znak równości znak równości produkt kropka rozmiar ampersant ampersant k kropka liczba znak równości znak równości produkt kropka liczba ampersant ampersant k kropka okladka znak równości znak równości produkt kropka okladka zamknij nawias okrągły otwórz nawias klamrowy.
Linia 50. k kropka l podkreślnik produktow plus plus średnik.
Linia 51. return 0 średnik.
Linia 52. zamknij nawias klamrowy.
Linia 53. zamknij nawias klamrowy.
Linia 54. kat kropka addElement otwórz nawias okrągły dodajKategorie otwórz nawias okrągły produkt zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 55. zamknij nawias klamrowy.
Linia 56. else.
Linia 57. kat kropka addElement otwórz nawias okrągły dodajKategorie otwórz nawias okrągły produkt zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 58. return 0 średnik.
Linia 59. zamknij nawias klamrowy.
Linia 61. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 62. int n znak równości 20 średnik.
Linia 63. Vector otwórz nawias ostrokątny Produkt zamknij nawias ostrokątny dane znak równości new Vector otwórz nawias ostrokątny Produkt zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 65. int otwórz nawias kwadratowy zamknij nawias kwadratowy idProduktu znak równości otwórz nawias klamrowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 przecinek 11 przecinek 12 przecinek 13 przecinek 14 przecinek 15 przecinek 16 przecinek 17 przecinek 18 przecinek 19 przecinek 20 zamknij nawias klamrowy średnik.
Linia 66. String otwórz nawias kwadratowy zamknij nawias kwadratowy rodzaj znak równości otwórz nawias klamrowy cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów zamknij nawias klamrowy średnik.
Linia 67. String otwórz nawias kwadratowy zamknij nawias kwadratowy rozmiar znak równości otwórz nawias klamrowy cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów zamknij nawias klamrowy średnik.
Linia 68. int otwórz nawias kwadratowy zamknij nawias kwadratowy liczbaKartek znak równości otwórz nawias klamrowy 88 przecinek 88 przecinek 6 przecinek 44 przecinek 74 przecinek 115 przecinek 12 przecinek 12 przecinek 178 przecinek 42 przecinek 35 przecinek 69 przecinek 30 przecinek 43 przecinek 6 przecinek 167 przecinek 49 przecinek 44 przecinek 111 przecinek 44 zamknij nawias klamrowy średnik.
Linia 69. String otwórz nawias kwadratowy zamknij nawias kwadratowy okladka znak równości otwórz nawias klamrowy cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów zamknij nawias klamrowy średnik.
Linia 71. prawy ukośnik prawy ukośnik podpunkt 1.
Linia 72. int l podkreślnik bledow znak równości 0 średnik.
Linia 74. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 75. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów zeszyt cudzysłów zamknij nawias okrągły.
Linia 76. if otwórz nawias okrągły okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów miekka cudzysłów ampersant ampersant liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 110 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 77. l podkreślnik bledow plus plus średnik.
Linia 78. continue średnik.
Linia 79. zamknij nawias klamrowy.
Linia 80. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów notatnik cudzysłów zamknij nawias okrągły.
Linia 81. if otwórz nawias okrągły liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny 30 kreska pionowa kreska pionowa liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 85 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 82. l podkreślnik bledow plus plus średnik.
Linia 83. continue średnik.
Linia 84. zamknij nawias klamrowy.
Linia 85. if otwórz nawias okrągły rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości znak równości cudzysłów kalendarz cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 86. if otwórz nawias okrągły rozmiar otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów A3 cudzysłów ampersant ampersant okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów miekka cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 87. l podkreślnik bledow plus plus średnik.
Linia 88. continue średnik.
Linia 89. zamknij nawias klamrowy else if otwórz nawias okrągły liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości 6 ampersant ampersant liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości 12 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 90. l podkreślnik bledow plus plus średnik.
Linia 91. continue średnik.
Linia 92. zamknij nawias klamrowy.
Linia 93. zamknij nawias klamrowy.
Linia 94. Produkt p znak równości new Produkt otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 95. p kropka id znak równości idProduktu otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 96. p kropka rodzaj znak równości rodzaj otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 97. p kropka rozmiar znak równości rozmiar otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 98. p kropka liczba znak równości liczbaKartek otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 99. p kropka okladka znak równości okladka otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 100. dane kropka addElement otwórz nawias okrągły p zamknij nawias okrągły średnik.
Linia 101. zamknij nawias klamrowy.
Linia 103. prawy ukośnik prawy ukośnik przygotowanie kategorii.
Linia 104. Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny zeszyty znak równości new Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 105. Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny notatniki znak równości new Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 106. Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny kalendarze znak równości new Vector otwórz nawias ostrokątny Kategoria zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 108. Produkt p znak równości new Produkt otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 109. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 110. p znak równości dane kropka get otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 111. if otwórz nawias okrągły p kropka rodzaj znak równości znak równości cudzysłów zeszyt cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 112. dodajProdukt otwórz nawias okrągły zeszyty przecinek p zamknij nawias okrągły średnik.
Linia 113. zamknij nawias klamrowy else if otwórz nawias okrągły p kropka rodzaj znak równości znak równości cudzysłów notatnik cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 114. dodajProdukt otwórz nawias okrągły notatniki przecinek p zamknij nawias okrągły średnik.
Linia 115. zamknij nawias klamrowy else if otwórz nawias okrągły p kropka rodzaj znak równości znak równości cudzysłów kalendarz cudzysłów zamknij nawias okrągły otwórz nawias klamrowy.
Linia 116. dodajProdukt otwórz nawias okrągły kalendarze przecinek p zamknij nawias okrągły średnik.
Linia 117. zamknij nawias klamrowy.
Linia 118. zamknij nawias klamrowy.
Linia 120. prawy ukośnik prawy ukośnik podpunkt 1.
Linia 121. System kropka out kropka println otwórz nawias okrągły l podkreślnik bledow zamknij nawias okrągły średnik.
Linia 123. prawy ukośnik prawy ukośnik podpunkt 2 i 3.
Linia 124. int x znak równości 0 średnik.
Linia 125. int x podkreślnik kartki znak równości 0 średnik.
Linia 126. int y znak równości 0 średnik.
Linia 127. int y podkreślnik kartki znak równości 0 średnik.
Linia 128. int z znak równości 0 średnik.
Linia 129. int z podkreślnik kartki znak równości 0 średnik.
Linia 131. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny zeszyty kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 132. if otwórz nawias okrągły zeszyty kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow zamknij nawias ostrokątny x zamknij nawias okrągły.
Linia 133. x znak równości zeszyty kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 134. x podkreślnik kartki plus znak równości zeszyty kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka liczba asterysk zeszyty kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 135. zamknij nawias klamrowy.
Linia 137. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny notatniki kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 138. if otwórz nawias okrągły notatniki kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow zamknij nawias ostrokątny y zamknij nawias okrągły.
Linia 139. y znak równości notatniki kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 140. y podkreślnik kartki plus znak równości notatniki kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka liczba asterysk notatniki kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 141. zamknij nawias klamrowy.
Linia 143. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny kalendarze kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 144. if otwórz nawias okrągły kalendarze kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow zamknij nawias ostrokątny z zamknij nawias okrągły.
Linia 145. z znak równości kalendarze kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 146. z podkreślnik kartki plus znak równości kalendarze kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka liczba asterysk kalendarze kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka l podkreślnik produktow średnik.
Linia 147. zamknij nawias klamrowy.
Linia 149. prawy ukośnik prawy ukośnik podpunkt 2 dwukropek zeszyt przecinek notatnik przecinek kalendarz.
Linia 150. System kropka out kropka println otwórz nawias okrągły x plus cudzysłów cudzysłów plus y plus cudzysłów cudzysłów plus z zamknij nawias okrągły średnik.
Linia 152. prawy ukośnik prawy ukośnik cd kropka podpunkt 3.
Linia 153. x znak równości zeszyty kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 154. y znak równości notatniki kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 155. z znak równości kalendarze kropka size otwórz nawias okrągły zamknij nawias okrągły średnik.
Linia 157. if otwórz nawias okrągły x zamknij nawias ostrokątny y ampersant ampersant x zamknij nawias ostrokątny z zamknij nawias okrągły.
Linia 158. System kropka out kropka println otwórz nawias okrągły cudzysłów zeszyty cudzysłów plus cudzysłów cudzysłów plus x podkreślnik kartki zamknij nawias okrągły średnik.
Linia 159. else if otwórz nawias okrągły y zamknij nawias ostrokątny x ampersant ampersant y zamknij nawias ostrokątny z zamknij nawias okrągły.
Linia 160. System kropka out kropka println otwórz nawias okrągły cudzysłów notatniki cudzysłów plus cudzysłów cudzysłów plus y podkreślnik kartki zamknij nawias okrągły średnik.
Linia 161. else.
Linia 162. System kropka out kropka println otwórz nawias okrągły cudzysłów kalendarze cudzysłów plus cudzysłów cudzysłów plus z podkreślnik kartki zamknij nawias okrągły średnik.
Linia 164. prawy ukośnik prawy ukośnik podpunkt 4.
Linia 165. String czyIstnieje znak równości cudzysłów nie cudzysłów średnik.
Linia 166. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka size otwórz nawias okrągły zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 167. if otwórz nawias okrągły czyPierwsza otwórz nawias okrągły dane kropka get otwórz nawias okrągły i zamknij nawias okrągły kropka liczba zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 168. czyIstnieje znak równości cudzysłów tak cudzysłów średnik.
Linia 169. break średnik.
Linia 170. zamknij nawias klamrowy.
Linia 171. zamknij nawias klamrowy.
Linia 173. System kropka out kropka println otwórz nawias okrągły cudzysłów tak cudzysłów zamknij nawias okrągły średnik.
Linia 174. zamknij nawias klamrowy.
Linia 175. zamknij nawias klamrowy.
31
Ćwiczenie 3
JĘZYK PYTHON
R1A2imLEgHbax
Przykładowe rozwiązanie wykorzystuje instrukcję zip(), która iteruje po podanych jako argumenty listach i zwraca tuple zawierające paralelne elementy z każdej z nich. Listy muszą zawierać taką samą liczbę elementów. Zobacz przykłady w trybie interaktywnym interpretera:
Linia 1. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny l1 znak równości otwórz nawias kwadratowy apostrof a apostrof przecinek apostrof b apostrof przecinek apostrof c apostrof zamknij nawias kwadratowy.
Linia 2. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny l2 znak równości otwórz nawias kwadratowy 3 przecinek 2 przecinek 1 zamknij nawias kwadratowy.
Linia 3. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny l podkreślnik tupli znak równości list otwórz nawias okrągły zip otwórz nawias okrągły l1 przecinek l2 zamknij nawias okrągły zamknij nawias okrągły.
Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny l podkreślnik tupli.
Linia 5. otwórz nawias kwadratowy otwórz nawias okrągły apostrof a apostrof przecinek 3 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof b apostrof przecinek 2 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof c apostrof przecinek 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Jeżeli instrukcja dict() otrzyma sekwencję tupli zawierających klucze i wartości, zwraca słownik:
Linia 1. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny dict otwórz nawias okrągły zip otwórz nawias okrągły l1 przecinek l2 zamknij nawias okrągły zamknij nawias okrągły.
Linia 2. otwórz nawias klamrowy apostrof a apostrof dwukropek 3 przecinek apostrof b apostrof dwukropek 2 przecinek apostrof c apostrof dwukropek 1 zamknij nawias klamrowy.
Słowo kluczowe lambda służy do tworzenia prostych anonimowych funkcji, które używane są w programie zazwyczaj tylko raz. Np. ekwiwalentem funkcji, która sumuje dwa elementy:
Linia 1. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny def suma otwórz nawias okrągły a przecinek b zamknij nawias okrągły dwukropek.
Linia 2. kropka kropka kropka return a plus b.
jest wyrażenia lambda:
Linia 1. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny f znak równości lambda a przecinek b dwukropek a plus b.
Linia 2. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny a przecinek b znak równości 3 przecinek 4.
Linia 3. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny print otwórz nawias okrągły f otwórz nawias okrągły a przecinek b zamknij nawias okrągły zamknij nawias okrągły.
Linia 4. 7.
Wyrażenia lambda używa się w instrukcjach sorted(), max() lub min() jako opcjonalnego argumentu key do wskazania elementu, według którego sortujemy lub wyszukujemy, np.:
Linia 1. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny l podkreślnik tupli.
Linia 2. otwórz nawias kwadratowy otwórz nawias okrągły apostrof a apostrof przecinek 3 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof b apostrof przecinek 2 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof c apostrof przecinek 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 3. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny sorted otwórz nawias okrągły l podkreślnik tupli przecinek key znak równości lambda x dwukropek x otwórz nawias kwadratowy 1 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 4. otwórz nawias kwadratowy otwórz nawias okrągły apostrof c apostrof przecinek 1 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof b apostrof przecinek 2 zamknij nawias okrągły przecinek otwórz nawias okrągły apostrof a apostrof przecinek 3 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny max otwórz nawias okrągły l podkreślnik tupli przecinek key znak równości lambda x dwukropek x otwórz nawias kwadratowy 1 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 6. otwórz nawias okrągły apostrof a apostrof przecinek 3 zamknij nawias okrągły.
Rozwiązanie:
Linia 1. kratka funkcja do podpunktu 4.
Linia 2. def czy podkreślnik pierwsza otwórz nawias okrągły liczba zamknij nawias okrągły dwukropek.
Linia 3. if liczba otwórz nawias ostrokątny 2 dwukropek.
Linia 4. return False.
Linia 5. i znak równości 2.
Linia 6. while i asterysk i otwórz nawias ostrokątny znak równości liczba dwukropek.
Linia 7. if liczba procent i znak równości znak równości 0 dwukropek.
Linia 8. return False.
Linia 9. i plus znak równości 1.
Linia 10. return True.
Linia 12. def dodaj podkreślnik kategorie otwórz nawias okrągły p zamknij nawias okrągły dwukropek.
Linia 13. klucze znak równości otwórz nawias kwadratowy cudzysłów rozmiar cudzysłów przecinek cudzysłów liczba cudzysłów przecinek cudzysłów okladka cudzysłów przecinek cudzysłów l podkreślnik produktow cudzysłów zamknij nawias kwadratowy.
Linia 14. return dict otwórz nawias okrągły zip otwórz nawias okrągły klucze przecinek otwórz nawias okrągły p otwórz nawias kwadratowy cudzysłów rozmiar cudzysłów zamknij nawias kwadratowy przecinek p otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy przecinek p otwórz nawias kwadratowy cudzysłów okladka cudzysłów zamknij nawias kwadratowy przecinek 1 zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły.
Linia 16. def dodaj podkreślnik produkt otwórz nawias okrągły kategoria przecinek p zamknij nawias okrągły dwukropek.
Linia 17. if kategoria dwukropek.
Linia 18. for k in kategoria dwukropek.
Linia 19. if k otwórz nawias kwadratowy cudzysłów rozmiar cudzysłów zamknij nawias kwadratowy znak równości znak równości p otwórz nawias kwadratowy cudzysłów rozmiar cudzysłów zamknij nawias kwadratowy and k otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy znak równości znak równości p otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy and k otwórz nawias kwadratowy cudzysłów okladka cudzysłów zamknij nawias kwadratowy znak równości znak równości p otwórz nawias kwadratowy cudzysłów okladka cudzysłów zamknij nawias kwadratowy dwukropek.
Linia 20. k otwórz nawias kwadratowy cudzysłów l podkreślnik produktow cudzysłów zamknij nawias kwadratowy plus znak równości 1.
Linia 21. return.
Linia 22. kategoria kropka append otwórz nawias okrągły dodaj podkreślnik kategorie otwórz nawias okrągły p zamknij nawias okrągły zamknij nawias okrągły.
Linia 23. else dwukropek.
Linia 24. kategoria kropka append otwórz nawias okrągły dodaj podkreślnik kategorie otwórz nawias okrągły p zamknij nawias okrągły zamknij nawias okrągły.
Linia 26. dane znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 27. klucze znak równości otwórz nawias kwadratowy cudzysłów id cudzysłów przecinek cudzysłów rodzaj cudzysłów przecinek cudzysłów rozmiar cudzysłów przecinek cudzysłów liczba cudzysłów przecinek cudzysłów okladka cudzysłów zamknij nawias kwadratowy.
Linia 28. id podkreślnik produktu znak równości otwórz nawias kwadratowy 1 przecinek 2 przecinek 3 przecinek 4 przecinek 5 przecinek 6 przecinek 7 przecinek 8 przecinek 9 przecinek 10 przecinek 11 przecinek 12 przecinek 13 przecinek 14 przecinek 15 przecinek 16 przecinek 17 przecinek 18 przecinek 19 przecinek 20 zamknij nawias kwadratowy.
Linia 29. rodzaj znak równości otwórz nawias kwadratowy cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów kalendarz cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów notatnik cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów przecinek cudzysłów zeszyt cudzysłów zamknij nawias kwadratowy.
Linia 30. rozmiar znak równości otwórz nawias kwadratowy cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A4 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A3 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów przecinek cudzysłów A5 cudzysłów zamknij nawias kwadratowy.
Linia 31. liczba podkreślnik kartek znak równości otwórz nawias kwadratowy 88 przecinek 88 przecinek 6 przecinek 44 przecinek 74 przecinek 115 przecinek 12 przecinek 12 przecinek 178 przecinek 42 przecinek 35 przecinek 69 przecinek 30 przecinek 43 przecinek 6 przecinek 167 przecinek 49 przecinek 44 przecinek 111 przecinek 44 zamknij nawias kwadratowy.
Linia 32. okladka znak równości otwórz nawias kwadratowy cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów twarda cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów przecinek cudzysłów miekka cudzysłów zamknij nawias kwadratowy.
Linia 34. kratka podpunkt 1.
Linia 35. l podkreślnik bledow znak równości 0.
Linia 37. for produkt in otwórz nawias kwadratowy dict otwórz nawias okrągły zip otwórz nawias okrągły klucze przecinek p zamknij nawias okrągły zamknij nawias okrągły for p in zip otwórz nawias okrągły id podkreślnik produktu przecinek rodzaj przecinek rozmiar przecinek liczba podkreślnik kartek przecinek okladka zamknij nawias okrągły zamknij nawias kwadratowy dwukropek.
Linia 38. if produkt otwórz nawias kwadratowy cudzysłów rodzaj cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów zeszyt cudzysłów dwukropek.
Linia 39. if produkt otwórz nawias kwadratowy cudzysłów okladka cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów miekka cudzysłów and produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy zamknij nawias ostrokątny 110 dwukropek.
Linia 40. l podkreślnik bledow plus znak równości 1.
Linia 41. continue.
Linia 42. elif produkt otwórz nawias kwadratowy cudzysłów rodzaj cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów notatnik cudzysłów dwukropek.
Linia 43. if otwórz nawias okrągły produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy otwórz nawias ostrokątny 30 or produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy zamknij nawias ostrokątny 85 zamknij nawias okrągły dwukropek.
Linia 44. l podkreślnik bledow plus znak równości 1.
Linia 45. continue.
Linia 46. else dwukropek.
Linia 47. if produkt otwórz nawias kwadratowy cudzysłów rozmiar cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów A3 cudzysłów and produkt otwórz nawias kwadratowy cudzysłów okladka cudzysłów zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów miekka cudzysłów dwukropek.
Linia 48. l podkreślnik bledow plus znak równości 1.
Linia 49. continue.
Linia 50. elif produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy wykrzyknik znak równości 6 and produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy wykrzyknik znak równości 12 dwukropek.
Linia 51. l podkreślnik bledow plus znak równości 1.
Linia 52. continue.
Linia 53. dane kropka append otwórz nawias okrągły produkt zamknij nawias okrągły.
Linia 55. kratka przygotowanie kategorii.
Linia 56. zeszyty znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 57. notatniki znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 58. kalendarze znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 60. for produkt in dane dwukropek.
Linia 61. if produkt otwórz nawias kwadratowy cudzysłów rodzaj cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów zeszyt cudzysłów dwukropek.
Linia 62. dodaj podkreślnik produkt otwórz nawias okrągły zeszyty przecinek produkt zamknij nawias okrągły.
Linia 63. elif produkt otwórz nawias kwadratowy cudzysłów rodzaj cudzysłów zamknij nawias kwadratowy znak równości znak równości cudzysłów notatnik cudzysłów dwukropek.
Linia 64. dodaj podkreślnik produkt otwórz nawias okrągły notatniki przecinek produkt zamknij nawias okrągły.
Linia 65. else dwukropek.
Linia 66. dodaj podkreślnik produkt otwórz nawias okrągły kalendarze przecinek produkt zamknij nawias okrągły.
Linia 68. kratka podpunkt 1.
Linia 69. print otwórz nawias okrągły l podkreślnik bledow zamknij nawias okrągły.
Linia 71. kratka podpunkt 2.
Linia 72. max podkreślnik produktow znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 73. if zeszyty dwukropek.
Linia 74. max podkreślnik produktow kropka append otwórz nawias okrągły max otwórz nawias okrągły zeszyty przecinek key znak równości lambda p dwukropek p otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 75. if notatniki dwukropek.
Linia 76. max podkreślnik produktow kropka append otwórz nawias okrągły max otwórz nawias okrągły notatniki przecinek key znak równości lambda p dwukropek p otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 77. if kalendarze dwukropek.
Linia 78. max podkreślnik produktow kropka append otwórz nawias okrągły max otwórz nawias okrągły kalendarze przecinek key znak równości lambda p dwukropek p otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 80. kratka zeszyt przecinek notatnik przecinek kalendarz.
Linia 81. print otwórz nawias okrągły asterysk max podkreślnik produktow zamknij nawias okrągły.
Linia 83. kratka podpunkt 3.
Linia 84. kategoria znak równości zeszyty.
Linia 85. max podkreślnik kategorii znak równości len otwórz nawias okrągły zeszyty zamknij nawias okrągły.
Linia 86. nazwa znak równości cudzysłów zeszyty cudzysłów.
Linia 87. if len otwórz nawias okrągły notatniki zamknij nawias okrągły zamknij nawias ostrokątny max podkreślnik kategorii dwukropek.
Linia 88. max podkreślnik kategorii znak równości len otwórz nawias okrągły notatniki zamknij nawias okrągły.
Linia 89. kategoria znak równości notatniki.
Linia 90. nazwa znak równości cudzysłów notatniki cudzysłów.
Linia 91. if len otwórz nawias okrągły kalendarze zamknij nawias okrągły zamknij nawias ostrokątny max podkreślnik kategorii dwukropek.
Linia 92. kategoria znak równości kalendarze.
Linia 93. nazwa znak równości cudzysłów kalendarze cudzysłów.
Linia 95. l podkreślnik kartek znak równości sum otwórz nawias okrągły p otwórz nawias kwadratowy apostrof liczba apostrof zamknij nawias kwadratowy asterysk p otwórz nawias kwadratowy apostrof l podkreślnik produktow apostrof zamknij nawias kwadratowy for p in kategoria zamknij nawias okrągły.
Linia 96. print otwórz nawias okrągły nazwa przecinek l podkreślnik kartek zamknij nawias okrągły.
Linia 98. kratka podpunkt 4.
Linia 99. czy podkreślnik istnieje znak równości cudzysłów nie cudzysłów.
Linia 100. for produkt in dane dwukropek.
Linia 101. if czy podkreślnik pierwsza otwórz nawias okrągły produkt otwórz nawias kwadratowy cudzysłów liczba cudzysłów zamknij nawias kwadratowy zamknij nawias okrągły dwukropek.
Linia 102. czy podkreślnik istnieje znak równości cudzysłów tak cudzysłów.
Linia 103. break.
Linia 105. print otwórz nawias okrągły czy podkreślnik istnieje zamknij nawias okrągły.
Wyniki dla pliku papierniczy.txt:
Linia 1. 73.
Linia 2. 3 4 59.
Linia 3. notatniki 8951.
Linia 4. tak.