Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Pętle w języku Java

W większości języków programowania to właśnie pętlepętlapętle służą do wykonywania iteracjiiteracjaiteracji. Umożliwiają one cykliczne powtarzanie zadanych operacji określoną liczbę razy lub do momentu spełnienia określonego warunku.

Ciekawostka

Istnieją języki programowania, w których nie ma pętli. Przykładem takiego języka jest Erlang. Zamiast pętli używa się w nim rekurencji.

Ciekawostka

Można także stworzyć pętlę wykonującą się nieskończenie wiele razy. Zazwyczaj taką pętlę konstruuje się, podając warunek, który zawsze będzie spełniony.

Suma parzystych wartości z przedziału

Problem 1

Napisz program w języku Java, który pobierze od użytkownika dwie liczby całkowite ab, oznaczające granice przedziału . Zadaniem programu jest obliczyć sumę liczb parzystych z zadanego zakresu.

Specyfikacja problemu:

Dane:

  • a, b – liczby całkowite; kolejno: lewy i prawy kraniec przedziału, a b

Wynik:

Na standardowym wyjściu program wypisuje sumę liczb parzystych z zadanego przedziału.

Implementację algorytmu zaczynamy od zadeklarowania klasy Rozwiazanie. Definiujemy w niej metodę main.

Linia 1. public class Rozwiazanie otwórz nawias klamrowy. Linia 2. 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 4. zamknij nawias klamrowy. Linia 5. zamknij nawias klamrowy.

Tworzymy nowy obiekt typu Scanner, za pomocą którego pobieramy od użytkownika lewy i prawy kraniec przedziału. Pamiętajmy o odpowiednim zaimportowaniu danych!

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. zamknij nawias klamrowy. Linia 12. zamknij nawias klamrowy.

Tworzymy zmienną pomocniczą suma, którą inicjalizujemy wartością .

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 13. zamknij nawias klamrowy. Linia 14. zamknij nawias klamrowy.

Tworzymy pętlę forsłowo kluczowefor. Jej iterator i inicjalizujemy wartością pobraną ze zmiennej a. Pętla będzie się wykonywać, dopóki wartość iteratora będzie mniejsza lub równa wartości zapisanej w zmiennej b. Każdy przebieg pętli kończymy, zwiększając wartość zmiennej i o 1.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 13. for otwórz nawias okrągły int i znak równości a średnik i otwórz nawias ostrokątny znak równości b średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 15. zamknij nawias klamrowy. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy.

Wewnątrz pętli sprawdzamy, czy wartość zmiennej i jest podzielna przez 2 (czyli: czy jest parzysta). Jeżeli warunek jest prawdziwy, wówczas zwiększamy wartość zmiennej sumai.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 13. for otwórz nawias okrągły int i znak równości a średnik i otwórz nawias ostrokątny znak równości b średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 15. suma plus znak równości i średnik. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy. Linia 18. zamknij nawias klamrowy. Linia 19. zamknij nawias klamrowy.

Po zakończeniu pętli wypisujemy wynik. W tym celu korzystamy z funkcji System.out.println().

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 13. for otwórz nawias okrągły int i znak równości a średnik i otwórz nawias ostrokątny znak równości b średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 15. suma plus znak równości i średnik. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy. Linia 18. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 19. zamknij nawias klamrowy. Linia 20. zamknij nawias klamrowy.

Spróbujmy nieco zmodyfikować algorytm. Tym razem w naszej implementacji wykorzystamy pętlę do ... while.

Problem 2

Napisz program w języku Java, który pobierze od użytkownika dwie liczby całkowite a i b, oznaczające granice przedziału . Zadaniem programu jest obliczyć sumę liczb parzystych z zadanego zakresu. W swoim rozwiązaniu wykorzystaj pętlę do ... while.

Specyfikacja problemu:

Dane:

  • ab – liczby całkowite; kolejno: lewy i prawy kraniec przedziału, a ≤ b

Wynik:

Na standardowym wyjściu program wypisuje sumę liczb parzystych z zadanego przedziału.

Ponownie deklarujemy klasę Rozwiazanie. We wnętrzu klasy tworzymy statyczną metodę main, wczytujemy klasę Scanner oraz pobieramy od użytkownika prawy i lewy zakres przedziału. Te wartości zapisujemy do zmiennych ab.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. zamknij nawias klamrowy. Linia 12. zamknij nawias klamrowy.

Tworzymy dwie zmienne pomocnicze – obie typu całkowitoliczbowego. Pierwsza: suma posłuży nam do przechowywania wszystkich dodanych do siebie liczb parzystych; druga: i będzie pełnić funkcje iteratora – wskaże, który obieg pętli jest aktualnie wykonywany. Zmienną suma inicjalizujemy wartością 0, z kolei do zmiennej i przypisujemy wartość zmiennej a (lewego krańca przedziału pobranego od użytkownika).

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 14. int i znak równości a średnik. Linia 15. zamknij nawias klamrowy. Linia 16. zamknij nawias klamrowy.

Wykorzystujemy pętlę do ... while. Pętla ma się wykonywać, dopóki i będzie mniejsze lub równe b. Przypomnijmy, że wspomniana pętla sprawdza warunek kolejnego wykonania, po zakończeniu wszystkich operacji w jej wnętrzu.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 14. int i znak równości a średnik. Linia 16. do otwórz nawias klamrowy. Linia 18. zamknij nawias klamrowy while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły średnik. Linia 19. zamknij nawias klamrowy. Linia 20. zamknij nawias klamrowy.

We wnętrzu pętli sprawdzamy, czy liczba i jest parzysta. Jeżeli warunek jest prawdziwy, wówczas dodajemy do zmiennej suma wartość zmiennej i. Pamiętajmy o zwiększeniu wartości zmiennej i po instrukcji warunkowej.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 14. int i znak równości a średnik. Linia 16. do otwórz nawias klamrowy. Linia 17. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 18. suma plus znak równości i średnik. Linia 19. zamknij nawias klamrowy. Linia 20. i plus plus średnik. Linia 21. zamknij nawias klamrowy while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły średnik. Linia 22. zamknij nawias klamrowy. Linia 23. zamknij nawias klamrowy.

Działanie algorytmu kończymy, wypisując wartość zmiennej suma.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Main otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. int suma znak równości 0 średnik. Linia 14. int i znak równości a średnik. Linia 16. do otwórz nawias klamrowy. Linia 17. if otwórz nawias okrągły i procent 2 znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 18. suma plus znak równości i średnik. Linia 19. zamknij nawias klamrowy. Linia 20. i plus plus średnik. Linia 21. zamknij nawias klamrowy while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły średnik. Linia 22. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 23. zamknij nawias klamrowy. Linia 24. zamknij nawias klamrowy.

Możemy poprawić efektywność rozwiązania. Jesteśmy w stanie znacznie zmniejszyć liczbę wykonań pętli, jeżeli się upewnimy, że lewy kraniec przedziału (liczba a) jest parzysty. Sprawdzenie tego warunku pozwala na zwiększenie iteratora i, co przekłada się na redukcję liczby iteracji o połowę. Tym razem w naszej implementacji wykorzystamy pętlę while.

Problem 3

Napisz program w języku Java, który pobierze od użytkownika dwie liczby  całkowite ab, oznaczające granice przedziału . Zadaniem programu jest obliczyć sumę liczb  parzystych z zadanego zakresu. W swoim rozwiązaniu wykorzystaj pętlę while. Spróbuj zredukować liczbę wykonań pętli.

Specyfikacja problemu:

Dane:

  • ab – liczby całkowite; kolejno: lewy i prawy kraniec przedziału, a ≤ b

Wynik:

Na standardowym wyjściu program wypisuje sumę liczb parzystych z zadanego przedziału.

Nowy program zaczynamy od stworzenia klasy Rozwiazanie, umieszczamy w niej statyczną metodę main oraz pobieramy od użytkownika liczby ab.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. zamknij nawias klamrowy. Linia 12. zamknij nawias klamrowy.

Następnie sprawdzamy, czy liczba a (lewy kraniec przedziału) jest nieparzysta. Jeżeli warunek okaże się prawdziwy, wówczas zwiększamy wartość a o 1.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. if otwórz nawias okrągły a procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 13. a znak równości a plus 1 średnik. Linia 14. zamknij nawias klamrowy. Linia 15. zamknij nawias klamrowy. Linia 16. zamknij nawias klamrowy.

Tworzymy dwie zmienne pomocnicze: suma, którą inicjalizujemy wartością , oraz i, do której przypisujemy wartość zmiennej a.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. if otwórz nawias okrągły a procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 13. a znak równości a plus 1 średnik. Linia 14. zamknij nawias klamrowy. Linia 16. int suma znak równości 0 średnik. Linia 18. int i znak równości a średnik. Linia 19. zamknij nawias klamrowy. Linia 20. zamknij nawias klamrowy.

Zgodnie z treścią zadania, wykorzystujemy pętlę while. Ma ona się wykonywać, dopóki wartość iteratora i będzie mniejsza lub równa b. We wnętrzu pętli dodajemy do zmiennej suma wartość zmiennej i. Ją samą zwiększamy o 2. Działanie programu kończymy, wypisując wartość zmiennej suma.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. if otwórz nawias okrągły a procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 13. a znak równości a plus 1 średnik. Linia 14. zamknij nawias klamrowy. Linia 16. int suma znak równości 0 średnik. Linia 18. int i znak równości a średnik. Linia 20. while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły otwórz nawias klamrowy. Linia 21. suma plus znak równości i średnik. Linia 22. i znak równości i plus 2 średnik. Linia 23. zamknij nawias klamrowy. Linia 25. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 26. zamknij nawias klamrowy. Linia 27. zamknij nawias klamrowy.

Najszybszym sposobem na policzenie sumy liczb z przedziału jest wykorzystanie wzoru na sumę ciągu arytmetycznego. W omawianym przypadku suma tylko liczb parzystych zawartych między parzystymi elementami  i , gdzie  jest początkiem, zaś  końcem przedziału, jest równa:

Problem 4

Napisz program w języku Java, który pobierze od użytkownika dwie liczby  całkowite ab, oznaczające granice przedziału . Zadaniem programu jest obliczyć sumę liczb parzystych z zadanego zakresu. W swoim rozwiązaniu wykorzystaj wzór na sumę ciągu arytmetycznego.

Specyfikacja problemu:

Dane:

  • ab – liczby całkowite; kolejno: lewy i prawy kraniec przedziału, a  b

Wynik:

Na standardowym wyjściu program wypisuje sumę liczb parzystych z zadanego przedziału.

Ponownie implementację algorytmu rozpoczynamy od stworzenia klasy Rozwiazanie, zadeklarowania w niej metody main oraz pobrania od użytkownika liczb ab.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. zamknij nawias klamrowy. Linia 12. zamknij nawias klamrowy.

Aby użyć wcześniej przedstawionego wzoru, krańce przedziału muszą być liczbami parzystymi. Sprawdzamy, czy zmienna a jest nieparzysta. Jeżeli warunek jest prawdziwy, wówczas zwiększamy jej wartość o 1. Podobną operację wykonujemy dla zmiennej b – w tym wypadku wartość zmniejszamy o 1.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. if otwórz nawias okrągły a procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 13. a znak równości a plus 1 średnik. Linia 14. zamknij nawias klamrowy. Linia 16. if otwórz nawias okrągły b procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 17. b znak równości b minus 1 średnik. Linia 18. zamknij nawias klamrowy. Linia 19. zamknij nawias klamrowy. Linia 20. zamknij nawias klamrowy.

Tworzymy zmienną suma. Przypisujemy jej wartość obliczoną zgodnie z wcześniej przedstawionym wzorem. Działanie programu kończymy, wypisując wartość zmiennej suma.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. if otwórz nawias okrągły a procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 13. a znak równości a plus 1 średnik. Linia 14. zamknij nawias klamrowy. Linia 16. if otwórz nawias okrągły b procent 2 znak równości znak równości 1 zamknij nawias okrągły otwórz nawias klamrowy. Linia 17. b znak równości b minus 1 średnik. Linia 18. zamknij nawias klamrowy. Linia 20. int suma znak równości otwórz nawias okrągły otwórz nawias okrągły a plus b zamknij nawias okrągły asterysk otwórz nawias okrągły b minus a plus 2 zamknij nawias okrągły zamknij nawias okrągły prawy ukośnik 4 średnik. Linia 22. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 23. zamknij nawias klamrowy. Linia 24. zamknij nawias klamrowy.

Wyszukiwanie minimum w zbiorze

Problem 5

Napisz program w języku Java, który pobierze od użytkownika n liczb całkowitych i wyłoni spośród nich najmniejszą.

Specyfikacja problemu:

Dane:

  • x1,x2,.....xn – kolejne liczby naturalne; liczba elementów wprowadzanych przez użytkownika; n

Wynik:

Na standardowym wyjściu program wypisuje najmniejszą spośród wprowadzonych liczb.

Implementację algorytmu zaczynamy od zadeklarowania klasy Rozwiazanie. Definiujemy w niej metodę main, wczytujemy klasę Scanner i za jej pomocą zapisujemy w zmiennej n, ile liczb chcemy wprowadzić.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj ile liczb chcesz wprowadzić dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int n znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 8. zamknij nawias klamrowy. Linia 9. zamknij nawias klamrowy.

Pobieramy od użytkownika pierwszą liczbę. Zapisujemy ją w zmiennej x. Deklarujemy zmienną min – będziemy w niej przechowywać aktualnie najmniejszą liczbę. Ponieważ jedyną wartością dotychczas wprowadzoną przez użytkownika jest liczba x, to właśnie ją przypisujemy do zmiennej min.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj ile liczb chcesz wprowadzić dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int n znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj liczbę dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. int min znak równości x średnik. Linia 12. zamknij nawias klamrowy. Linia 13. zamknij nawias klamrowy.

Tworzymy pętlę for, której iterator i przyjmie wartość początkową 1 (pierwszą liczbę już pobraliśmy). Pętla będzie się wykonywać, dopóki i < n. Po każdym przebiegu pętli zwiększamy wartość iteratora i o 1.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj ile liczb chcesz wprowadzić dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int n znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj liczbę dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. int min znak równości x średnik. Linia 13. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 15. zamknij nawias klamrowy. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy.

Wewnątrz pętli pobieramy od użytkownika kolejne liczby. Jeżeli aktualnie wprowadzona liczba jest mniejsza od wartości zapisanej w zmiennej min, to do zmiennej min zapisujemy tę liczbę – staje się ona aktualnie najmniejszą. Działanie programu kończymy, wypisując wartość zmiennej min.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj ile liczb chcesz wprowadzić dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int n znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj liczbę dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 11. int min znak równości x średnik. Linia 13. for otwórz nawias okrągły int i znak równości 1 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj liczbę dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 15. x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 17. if otwórz nawias okrągły x otwórz nawias ostrokątny min zamknij nawias okrągły otwórz nawias klamrowy. Linia 18. min znak równości x średnik. Linia 19. zamknij nawias klamrowy. Linia 20. zamknij nawias klamrowy. Linia 22. System kropka out kropka println otwórz nawias okrągły min zamknij nawias okrągły średnik. Linia 23. zamknij nawias klamrowy. Linia 24. zamknij nawias klamrowy.

Iteracyjne podejście do operacji wykonywanych na ciągach liczbowych

Problem 6

Napisz program w języku Java, który pobierze od użytkownika cztery liczby a, b, rx. Liczby ab będą oznaczać granice przedziału , w którym mają się zawierać elementy ciągu. Pierwszym elementem ciągu ma być liczba a. Każdy kolejny element ma różnić się od poprzedniego o wartość r. Zadaniem programu jest wypisanie kwadratów elementów ciągu, jeżeli są one większe od zadanego x, a następnie obliczenie i wypisanie ich sumy.

Specyfikacja problemu:

Dane:

  • ab – liczby całkowite; kolejno: lewy i prawy kraniec przedziału, a ≤ b

  • x – liczba naturalna

  • r – różnica ciągu; liczba naturalna dodatnia

Wynik:

Na standardowym wyjściu program wypisze kwadraty elementów ciągu większe od x oraz ich sumę.

Implementację rozwiązania problemu rozpoczniemy od zadeklarowania wewnątrz klasy Rozwiazanie metody main. Wczytujemy klasę Scanner oraz pobieramy od użytkownika lewy i prawy kraniec przedziału (wartości te zapisujemy w zmiennych ab), różnicę ciągu r, a także zmienną x, z którą będziemy porównywać kwadraty liczb. Jeśli będą one większe od x, będziemy je wypisywać i dodawać do zmiennej suma.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 17. zamknij nawias klamrowy. Linia 18. zamknij nawias klamrowy.

Tworzymy zmienną pomocniczą suma. Inicjalizujemy ją wartością . Deklarujemy iterator i, któremu przypisujemy wartość a.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 18. int suma znak równości 0 średnik. Linia 20. int i znak równości a średnik. Linia 21. zamknij nawias klamrowy. Linia 22. zamknij nawias klamrowy.

Deklarujemy pętlę while. Pętla ta ma się wykonywać, dopóki i będzie mniejsze bądź równe b.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 18. int suma znak równości 0 średnik. Linia 20. int i znak równości a średnik. Linia 22. while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły otwórz nawias klamrowy. Linia 24. zamknij nawias klamrowy. Linia 25. zamknij nawias klamrowy. Linia 26. zamknij nawias klamrowy.

Wewnątrz pętli deklarujemy zmienną kwadrat, której przypisujemy kwadrat liczby i. Jeżeli wartość zmiennej kwadrat jest większa od wartości x, to wypisujemy ją na standardowe wyjście oraz dodajemy do zmiennej suma. Na końcu bloku pętli zwiększamy wartość ir.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 18. int suma znak równości 0 średnik. Linia 20. int i znak równości a średnik. Linia 22. while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły otwórz nawias klamrowy. Linia 23. int kwadrat znak równości i asterysk i średnik. Linia 25. if otwórz nawias okrągły kwadrat zamknij nawias ostrokątny x zamknij nawias okrągły otwórz nawias klamrowy. Linia 26. System kropka out kropka println otwórz nawias okrągły kwadrat zamknij nawias okrągły średnik. Linia 27. suma plus znak równości kwadrat średnik. Linia 28. zamknij nawias klamrowy. Linia 30. i plus znak równości r średnik. Linia 31. zamknij nawias klamrowy. Linia 32. zamknij nawias klamrowy. Linia 33. zamknij nawias klamrowy.

Implementację algorytmu kończymy, wypisując wartość zmiennej suma.

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 18. int suma znak równości 0 średnik. Linia 20. int i znak równości a średnik. Linia 22. while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły otwórz nawias klamrowy. Linia 23. int kwadrat znak równości i asterysk i średnik. Linia 25. if otwórz nawias okrągły kwadrat zamknij nawias ostrokątny x zamknij nawias okrągły otwórz nawias klamrowy. Linia 26. System kropka out kropka println otwórz nawias okrągły kwadrat zamknij nawias okrągły średnik. Linia 27. suma plus znak równości kwadrat średnik. Linia 28. zamknij nawias klamrowy. Linia 30. i plus znak równości r średnik. Linia 31. zamknij nawias klamrowy. Linia 33. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 34. zamknij nawias klamrowy. Linia 35. zamknij nawias klamrowy.

Rozwiązanie możemy jeszcze poprawić. Zauważmy, że po znalezieniu pierwszego kwadratu większego od x, kwadrat każdej kolejnej liczby i również będzie spełniał ten warunek. Możemy wówczas zrezygnować z każdorazowego sprawdzania warunku. Przykład:

Linia 1. import java kropka util kropka Scanner średnik. Linia 3. public class Rozwiazanie otwórz nawias klamrowy. Linia 4. 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 5. Scanner sc znak równości new Scanner otwórz nawias okrągły System kropka in zamknij nawias okrągły średnik. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj lewy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 7. int a znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj prawy kraniec przedziału dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 10. int b znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj r dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 13. int r znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 15. System kropka out kropka println otwórz nawias okrągły cudzysłów Podaj x dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 16. int x znak równości sc kropka nextInt otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 18. int suma znak równości 0 średnik. Linia 20. int i znak równości a średnik. Linia 22. while otwórz nawias okrągły i otwórz nawias ostrokątny znak równości b zamknij nawias okrągły otwórz nawias klamrowy. Linia 23. int kwadrat znak równości i asterysk i średnik. Linia 25. if otwórz nawias okrągły kwadrat zamknij nawias ostrokątny x zamknij nawias okrągły otwórz nawias klamrowy. Linia 26. System kropka out kropka println otwórz nawias okrągły kwadrat zamknij nawias okrągły średnik. Linia 27. suma plus znak równości kwadrat średnik. Linia 28. i plus znak równości r średnik. Linia 29. break średnik. Linia 30. zamknij nawias klamrowy. Linia 32. i plus znak równości r średnik. Linia 33. zamknij nawias klamrowy. Linia 35. for otwórz nawias okrągły średnik i otwórz nawias ostrokątny znak równości b średnik i plus znak równości r zamknij nawias okrągły otwórz nawias klamrowy. Linia 36. int kwadrat znak równości i asterysk i średnik. Linia 37. System kropka out kropka println otwórz nawias okrągły kwadrat zamknij nawias okrągły średnik. Linia 38. suma plus znak równości kwadrat średnik. Linia 39. zamknij nawias klamrowy. Linia 41. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik. Linia 42. zamknij nawias klamrowy. Linia 43. zamknij nawias klamrowy.

Słownik

iteracja
iteracja

czynność powtarzania tej samej operacji w pętli z góry określoną liczbę razy lub aż do spełnienia określonego warunku

pętla
pętla

jedna z konstrukcji programowania strukturalnego; pozwala na cykliczne wykonywanie instrukcji określoną liczbę razy, do momentu zajścia pewnych warunków, dla każdego elementu zbioru lub w nieskończoność

słowo kluczowe
słowo kluczowe

w kontekście programowania oznacza słowo zdeklarowane w składni określonego języka programowania, mające szczególne znaczenie, oznaczające rozkaz, instrukcję, definicję lub deklarację w programie komputerowym; lista słów kluczowych jest zazwyczaj specyficzna dla konkretnego języka programowania; w języku Java przykładowe słowa kluczowe to: int, for, static, public, private, class