Zlicz wystąpienia wszystkich elementów tablicy dane. Wypisz zliczone elementy wraz z liczbą ich wystąpień, zgodnie z przedstawioną specyfikacją, w kolejności niemalejącej.
Swoje rozwiązanie przetestuj dla tablicy dane, składającej się z następujących elementów: {3, 1, 0, 10, 6, 8, 4, 6, 2, 3, 0, 6, 6, 10, 6}.
Specyfikacja:
Dane:
dane – tablica liczb naturalnych
dlugoscTabWej – liczba naturalna, liczba elementów tablicy dane
Wynik:
Program na wyjściu standardowym wypisuje w kolejnych liniach informacje o elemencie oraz liczbie jego wystąpień w formacie: element:liczba wystąpień. Program pomija wypisywanie informacji o elementach, które nie wystąpiły w tablicy dane.
R1N8cES1l5mMK
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 3. using namespace std średnik.
Linia 5. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. int dlugoscTabWej znak równości 15 średnik.
Linia 7. int dane otwórz nawias kwadratowy dlugoscTabWej zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 3 przecinek 1 przecinek 0 przecinek 10 przecinek 6 przecinek 8 przecinek 4 przecinek 6 przecinek 2 przecinek 3 przecinek 0 przecinek 6 przecinek 6 przecinek 10 przecinek 6 zamknij nawias klamrowy średnik.
Linia 9. int maksymalnyElement znak równości 10 średnik.
Linia 11. int zliczoneElementy otwórz nawias kwadratowy maksymalnyElement plus 1 zamknij nawias kwadratowy średnik.
Linia 13. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny maksymalnyElement plus 1 średnik i plus plus zamknij nawias okrągły.
Linia 14. otwórz nawias klamrowy.
Linia 15. zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik.
Linia 16. zamknij nawias klamrowy.
Linia 18. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dlugoscTabWej średnik i plus plus zamknij nawias okrągły.
Linia 19. otwórz nawias klamrowy.
Linia 20. zliczoneElementy otwórz nawias kwadratowy dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias kwadratowy plus plus średnik.
Linia 21. zamknij nawias klamrowy.
Linia 23. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny maksymalnyElement plus 1 średnik i plus plus zamknij nawias okrągły.
Linia 24. otwórz nawias klamrowy.
Linia 25. if otwórz nawias okrągły zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 26. cout otwórz nawias ostrokątny otwórz nawias ostrokątny i otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 27. zamknij nawias klamrowy.
Linia 28. zamknij nawias klamrowy.
Linia 29. return 0 średnik.
Linia 30. zamknij nawias klamrowy.
21
Ćwiczenie 2
Zlicz wystąpienie każdego z elementów tablicy dane, a następnie wskaż, ile jest elementów niewiększych od aktualnie przetwarzanego.
Swoje rozwiązanie przetestuj dla tablicy dane składającej się z następujących elementów: {3, 1, 0, 10, 6, 8, 4, 6, 2, 3, 0, 6, 6, 10, 6}.
Specyfikacja:
Dane:
dane – tablica liczb naturalnych
dlugoscTabWej – liczba naturalna, liczba elementów tablicy dane
Wynik:
Program na wyjściu standardowym wypisuje w kolejnych liniach informacje o elemencie oraz liczbie elementów niewiększych od niego w formacie: element:liczba wystąpień elementów niewiększych. Program pomija wypisywanie informacji o elementach, które nie wystąpiły w tablicy dane.
Przykład:
Dla tablicy dane składającej się z elementów: {4, 4, 2, 1, 1} poprawnym rozwiązaniem jest:
Linia 1. 1 dwukropek 2.
Linia 2. 2 dwukropek 3.
Linia 3. 4 dwukropek 5.
RoqFfuZZVF8wt
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int dlugoscTabWej znak równości 15 średnik.
Linia 6. int dane otwórz nawias kwadratowy dlugoscTabWej zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 3 przecinek 1 przecinek 0 przecinek 10 przecinek 6 przecinek 8 przecinek 4 przecinek 6 przecinek 2 przecinek 3 przecinek 0 przecinek 6 przecinek 6 przecinek 10 przecinek 6 zamknij nawias klamrowy średnik.
Linia 8. int maksymalnyElement znak równości 10 średnik.
Linia 10. int zliczoneElementy otwórz nawias kwadratowy maksymalnyElement plus 1 zamknij nawias kwadratowy średnik.
Linia 11. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny maksymalnyElement plus 1 średnik i plus plus zamknij nawias okrągły.
Linia 12. otwórz nawias klamrowy.
Linia 13. zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik.
Linia 14. zamknij nawias klamrowy.
Linia 16. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dlugoscTabWej średnik i plus plus zamknij nawias okrągły.
Linia 17. otwórz nawias klamrowy.
Linia 18. zliczoneElementy otwórz nawias kwadratowy dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias kwadratowy plus plus średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. int ostatniNiezerowy znak równości 0 średnik.
Linia 22. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny dlugoscTabWej średnik i plus plus zamknij nawias okrągły.
Linia 23. otwórz nawias klamrowy.
Linia 24. if otwórz nawias okrągły zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 25. zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy plus znak równości zliczoneElementy otwórz nawias kwadratowy ostatniNiezerowy zamknij nawias kwadratowy średnik.
Linia 26. ostatniNiezerowy znak równości i średnik.
Linia 27. zamknij nawias klamrowy.
Linia 28. zamknij nawias klamrowy.
Linia 30. 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 maksymalnyElement plus 1 zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły.
Linia 31. otwórz nawias klamrowy.
Linia 32. if otwórz nawias okrągły zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 33. cout otwórz nawias ostrokątny otwórz nawias ostrokątny i otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów dwukropek cudzysłów otwórz nawias ostrokątny otwórz nawias ostrokątny zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 34. zamknij nawias klamrowy.
Linia 35. zamknij nawias klamrowy.
Linia 36. return 0 średnik.
Linia 37. zamknij nawias klamrowy.
31
Ćwiczenie 3
Korzystając z kodu z poprzednich zadań, posortuj podaną tablicę dane nierosnąco algorytmem sortowania przez zliczanie.
dlugoscTabWej – liczba naturalna, liczba elementów tablicy dane
Wynik:
dane – posortowana nierosnąco tablica; jej elementy rozdzielone są za pomocą spacji
R15AE96jSkgIR
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. int dlugoscTabWej znak równości 15 średnik.
Linia 7. int dane otwórz nawias kwadratowy dlugoscTabWej zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 3 przecinek 1 przecinek 0 przecinek 10 przecinek 6 przecinek 8 przecinek 4 przecinek 6 przecinek 2 przecinek 3 przecinek 0 przecinek 6 przecinek 6 przecinek 10 przecinek 6 zamknij nawias klamrowy średnik.
Linia 9. int maksymalnyElement znak równości 10 średnik.
Linia 11. int zliczoneElementy otwórz nawias kwadratowy maksymalnyElement plus 1 zamknij nawias kwadratowy średnik.
Linia 12. int tabPomocnicza otwórz nawias kwadratowy dlugoscTabWej zamknij nawias kwadratowy średnik.
Linia 14. 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 maksymalnyElement plus 1 zamknij nawias okrągły średnik i plus plus zamknij nawias okrągły.
Linia 15. otwórz nawias klamrowy.
Linia 16. zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości 0 średnik.
Linia 17. zamknij nawias klamrowy.
Linia 18. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dlugoscTabWej średnik i plus plus zamknij nawias okrągły.
Linia 19. otwórz nawias klamrowy.
Linia 20. zliczoneElementy otwórz nawias kwadratowy dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias kwadratowy plus plus średnik.
Linia 21. zamknij nawias klamrowy.
Linia 22. for otwórz nawias okrągły int i znak równości maksymalnyElement minus 1 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły.
Linia 23. otwórz nawias klamrowy.
Linia 24. zliczoneElementy otwórz nawias kwadratowy i zamknij nawias kwadratowy plus znak równości zliczoneElementy otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy średnik.
Linia 25. zamknij nawias klamrowy.
Linia 27. for otwórz nawias okrągły int i znak równości dlugoscTabWej minus 1 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły.
Linia 28. otwórz nawias klamrowy.
Linia 29. tabPomocnicza otwórz nawias kwadratowy zliczoneElementy otwórz nawias kwadratowy dane otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias kwadratowy minus minus minus 1 zamknij nawias kwadratowy znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 30. zamknij nawias klamrowy.
Linia 32. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dlugoscTabWej średnik i plus plus zamknij nawias okrągły.
Linia 33. otwórz nawias klamrowy.
Linia 34. cout otwórz nawias ostrokątny otwórz nawias ostrokątny tabPomocnicza otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. return 0 średnik.
Linia 37. zamknij nawias klamrowy.