Uzupełnij podany kod tak, aby realizował algorytm sortowania pozycyjnego dat z użyciem sortowania bąbelkowego. Powinien sortować daty niemalejąco.
Specyfikacja:
Dane:
daty – tablica łańcuchów znaków; każda z dat zapisana jest w formacie rrrr‑mm‑dd
Wynik:
daty – posortowana niemalejąco tablica ciągów znaków zawierająca daty (każda data zapisana w osobnej linii)
Rs51dOPa3kqT2
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. static void sortowaniePozycyjne otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy daty zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. for otwórz nawias okrągły int i znak równości 9 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 4. if otwórz nawias okrągły i znak równości znak równości 4 kreska pionowa kreska pionowa i znak równości znak równości 7 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. continue średnik.
Linia 6. zamknij nawias klamrowy.
Linia 7. sortowanieBabelkowe otwórz nawias okrągły daty przecinek i zamknij nawias okrągły średnik.
Linia 8. zamknij nawias klamrowy.
Linia 9. zamknij nawias klamrowy.
Linia 11. static void sortowanieBabelkowe otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy daty przecinek int indeks zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. String temp średnik.
Linia 13. boolean czyZmiana znak równości false średnik.
Linia 14. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny daty kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny daty kropka length minus 1 średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. if otwórz nawias okrągły daty otwórz nawias kwadratowy j zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeks zamknij nawias okrągły zamknij nawias ostrokątny otwórz nawias okrągły daty otwórz nawias kwadratowy j plus 1 zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeks zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 17. temp znak równości daty otwórz nawias kwadratowy j zamknij nawias kwadratowy średnik.
Linia 18. daty otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości daty otwórz nawias kwadratowy j plus 1 zamknij nawias kwadratowy średnik.
Linia 19. daty otwórz nawias kwadratowy j plus 1 zamknij nawias kwadratowy znak równości temp średnik.
Linia 20. czyZmiana znak równości true średnik.
Linia 21. zamknij nawias klamrowy.
Linia 22. zamknij nawias klamrowy.
Linia 23. if otwórz nawias okrągły wykrzyknik czyZmiana zamknij nawias okrągły otwórz nawias klamrowy.
Linia 24. break średnik.
Linia 25. zamknij nawias klamrowy.
Linia 26. zamknij nawias klamrowy.
Linia 27. zamknij nawias klamrowy.
Linia 29. 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 30. String otwórz nawias kwadratowy zamknij nawias kwadratowy daty znak równości otwórz nawias klamrowy.
Linia 31. cudzysłów 1410 minus 07 minus 15 cudzysłów przecinek.
Linia 32. cudzysłów 1453 minus 05 minus 29 cudzysłów przecinek.
Linia 33. cudzysłów 2020 minus 03 minus 05 cudzysłów przecinek.
Linia 34. cudzysłów 2020 minus 04 minus 20 cudzysłów przecinek.
Linia 35. cudzysłów 1342 minus 12 minus 03 cudzysłów.
Linia 36. zamknij nawias klamrowy średnik.
Linia 38. sortowaniePozycyjne otwórz nawias okrągły daty zamknij nawias okrągły średnik.
Linia 39. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny daty kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 40. System kropka out kropka println otwórz nawias okrągły daty otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 41. zamknij nawias klamrowy.
Linia 42. zamknij nawias klamrowy.
Linia 43. zamknij nawias klamrowy.
21
Ćwiczenie 2
Wykorzystując algorytm sortowania pozycyjnego liczb z algorytmem sortowania przez zliczanie, napisz program, który obliczy, ile dat w zbiorze jest ułożonych chronologicznie po dacie upadku Konstantynopola (1453‑05‑29).
Specyfikacja:
Dane:
daty – tablica łańcuchów znaków; każda z dat zapisana jest w formacie rrrr‑mm‑dd
Wynik:
x – liczba naturalna; liczba dat w zbiorze ułożonych chronologicznie po danej dacie
R1DJV4rp9p5cS
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 3. static String dane otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy.
Linia 4. cudzysłów 1569 minus 07 minus 01 cudzysłów przecinek.
Linia 5. cudzysłów 1410 minus 07 minus 15 cudzysłów przecinek.
Linia 6. cudzysłów 1453 minus 05 minus 29 cudzysłów przecinek.
Linia 7. cudzysłów 1453 minus 07 minus 17 cudzysłów przecinek.
Linia 8. cudzysłów 1452 minus 09 minus 30 cudzysłów przecinek.
Linia 9. cudzysłów 1386 minus 03 minus 04 cudzysłów.
Linia 11. zamknij nawias klamrowy średnik.
Linia 13. static void sortowaniePrzezZliczanie otwórz nawias okrągły int indeksZnaku zamknij nawias okrągły otwórz nawias klamrowy.
Linia 14. String temp otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości new String otwórz nawias kwadratowy dane kropka length zamknij nawias kwadratowy średnik.
Linia 15. int tablicaZliczenCyfr otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości new int otwórz nawias kwadratowy 10 zamknij nawias kwadratowy średnik.
Linia 17. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. int odczytanaCyfra znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeksZnaku zamknij nawias okrągły minus apostrof 0 apostrof średnik.
Linia 19. tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy plus plus średnik.
Linia 20. zamknij nawias klamrowy.
Linia 22. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 23. tablicaZliczenCyfr otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości tablicaZliczenCyfr otwórz nawias kwadratowy i zamknij nawias kwadratowy plus tablicaZliczenCyfr otwórz nawias kwadratowy i minus 1 zamknij nawias kwadratowy średnik.
Linia 24. zamknij nawias klamrowy.
Linia 26. for otwórz nawias okrągły int i znak równości dane kropka length minus 1 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 27. int odczytanaCyfra znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeksZnaku zamknij nawias okrągły minus apostrof 0 apostrof średnik.
Linia 28. int indeksWTablicyWynikowej znak równości tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy minus 1 średnik.
Linia 29. temp otwórz nawias kwadratowy indeksWTablicyWynikowej zamknij nawias kwadratowy znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 30. tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy minus minus średnik.
Linia 31. zamknij nawias klamrowy.
Linia 33. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 34. dane otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości temp otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 35. zamknij nawias klamrowy.
Linia 36. zamknij nawias klamrowy.
Linia 38. static int policzWydarzeniaPoDacie otwórz nawias okrągły String data zamknij nawias okrągły otwórz nawias klamrowy.
Linia 39. int indeks znak równości dane kropka length średnik.
Linia 40. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 41. if otwórz nawias okrągły dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka equals otwórz nawias okrągły data zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 42. indeks znak równości i średnik.
Linia 43. break średnik.
Linia 44. zamknij nawias klamrowy.
Linia 45. zamknij nawias klamrowy.
Linia 46. return dane kropka length minus indeks minus 1 średnik.
Linia 47. zamknij nawias klamrowy.
Linia 49. public static void main otwórz nawias okrągły String args otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 50. for otwórz nawias okrągły int i znak równości 9 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 51. if otwórz nawias okrągły i znak równości znak równości 7 kreska pionowa kreska pionowa i znak równości znak równości 4 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 52. continue średnik.
Linia 53. zamknij nawias klamrowy.
Linia 54. sortowaniePrzezZliczanie otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 55. zamknij nawias klamrowy.
Linia 57. System kropka out kropka print otwórz nawias okrągły policzWydarzeniaPoDacie otwórz nawias okrągły cudzysłów 1453 minus 05 minus 29 cudzysłów zamknij nawias okrągły zamknij nawias okrągły średnik.
Linia 59. zamknij nawias klamrowy.
Linia 60. zamknij nawias klamrowy.
31
Ćwiczenie 3
Organizatorzy rajdu rowerowego zastanawiają się, jaka jest mediana wieku zawodników. Dysponują listą dat urodzin zawodników. Napisz program, który wyznaczy medianę spośród dat urodzin i wydrukuje ją na standardowe wyjście.
Specyfikacja:
Dane:
daty – tablica łańcuchów znaków; każda z dat zapisana jest w formacie rrrr‑mm‑dd
Wynik:
x – ciąg znaków; mediana podanego zbioru w formacie rrrr‑mm‑dd
R9aedpPGEFGPn
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 3. static String dane otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości otwórz nawias klamrowy.
Linia 4. cudzysłów 1999 minus 02 minus 14 cudzysłów przecinek.
Linia 5. cudzysłów 1984 minus 02 minus 09 cudzysłów przecinek.
Linia 6. cudzysłów 1987 minus 12 minus 31 cudzysłów przecinek.
Linia 7. cudzysłów 1993 minus 03 minus 24 cudzysłów przecinek.
Linia 8. cudzysłów 2001 minus 07 minus 01 cudzysłów przecinek.
Linia 9. cudzysłów 1996 minus 02 minus 26 cudzysłów przecinek.
Linia 10. cudzysłów 1982 minus 11 minus 21 cudzysłów przecinek.
Linia 11. cudzysłów 1990 minus 05 minus 27 cudzysłów przecinek.
Linia 12. cudzysłów 1992 minus 09 minus 10 cudzysłów przecinek.
Linia 13. cudzysłów 1996 minus 09 minus 26 cudzysłów przecinek.
Linia 14. cudzysłów 1998 minus 12 minus 11 cudzysłów.
Linia 15. zamknij nawias klamrowy średnik.
Linia 17. static void sortowaniePrzezZliczanie otwórz nawias okrągły int indeksZnaku zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. String temp otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości new String otwórz nawias kwadratowy dane kropka length zamknij nawias kwadratowy średnik.
Linia 19. int tablicaZliczenCyfr otwórz nawias kwadratowy zamknij nawias kwadratowy znak równości new int otwórz nawias kwadratowy 10 zamknij nawias kwadratowy średnik.
Linia 21. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. int odczytanaCyfra znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeksZnaku zamknij nawias okrągły minus apostrof 0 apostrof średnik.
Linia 23. tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy plus plus średnik.
Linia 24. zamknij nawias klamrowy.
Linia 26. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny 10 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 27. tablicaZliczenCyfr otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości tablicaZliczenCyfr otwórz nawias kwadratowy i zamknij nawias kwadratowy plus tablicaZliczenCyfr otwórz nawias kwadratowy i minus 1 zamknij nawias kwadratowy średnik.
Linia 28. zamknij nawias klamrowy.
Linia 30. for otwórz nawias okrągły int i znak równości dane kropka length minus 1 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 31. int odczytanaCyfra znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy kropka charAt otwórz nawias okrągły indeksZnaku zamknij nawias okrągły minus apostrof 0 apostrof średnik.
Linia 32. int indeksWTablicyWynikowej znak równości tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy minus 1 średnik.
Linia 33. temp otwórz nawias kwadratowy indeksWTablicyWynikowej zamknij nawias kwadratowy znak równości dane otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 34. tablicaZliczenCyfr otwórz nawias kwadratowy odczytanaCyfra zamknij nawias kwadratowy minus minus średnik.
Linia 35. zamknij nawias klamrowy.
Linia 37. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny dane kropka length średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 38. dane otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości temp otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 39. zamknij nawias klamrowy.
Linia 41. zamknij nawias klamrowy.
Linia 43. public static void main otwórz nawias okrągły String args otwórz nawias kwadratowy zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 44. for otwórz nawias okrągły int i znak równości 9 średnik i zamknij nawias ostrokątny znak równości 0 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 45. if otwórz nawias okrągły i znak równości znak równości 7 kreska pionowa kreska pionowa i znak równości znak równości 4 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 46. continue średnik.
Linia 47. zamknij nawias klamrowy.
Linia 48. sortowaniePrzezZliczanie otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 49. zamknij nawias klamrowy.
Linia 51. System kropka out kropka print otwórz nawias okrągły dane otwórz nawias kwadratowy 6 zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 53. zamknij nawias klamrowy.
Linia 54. zamknij nawias klamrowy.