• Nie Znaleziono Wyników

Podstawy programowania

N/A
N/A
Protected

Academic year: 2022

Share "Podstawy programowania"

Copied!
25
0
0

Pełen tekst

(1)

Podstawy programowania

Laboratorium 4 - wprowadzenie do pętli oraz instrukcje break i continue

mgr inż. Krzysztof Szwarc

krzysztof@szwarc.net.pl

Sosnowiec, 23 marca 2020

1 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(2)

Pętle

Po co nam pętle?

Pętle umożliwiają nam wykonanie danych instrukcji określoną liczbę razy. Możemy przykładowo zastąpić zapis:

S y s t e m . out . p r i n t (" t e k s t ") ; S y s t e m . out . p r i n t (" t e k s t ") ; S y s t e m . out . p r i n t (" t e k s t ") ; S y s t e m . out . p r i n t (" t e k s t ") ; S y s t e m . out . p r i n t (" t e k s t ") ; jedną pętlą:

for (int i =0; i <5; ++ i )

(3)

Pętle

5

X

i=1

i

int sum = 0;

for (int i =1; i <=5; ++ i ) sum += i ;

3 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(4)

Pętla while

Opis

Pętla while ma następującą postać:

w h i l e ( c o n d i t i o n ) i n s t r u c t i o n ;

Jedynie w momencie, gdy warunek ma wartość true następuje wykonanie instrukcji. Będą one wykonywane do momentu przyjęcia przez warunek wartości false (jeżeli przed

przystąpieniem do wykonania pętli warunek ma wartość false, to instrukcje nigdy nie zostaną wykonane).

(5)

Przykład

int c o u n t e r = 0;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

w h i l e ( c o u n t e r < N U M B E R _ O F _ E X E C U T I O N S ) { c o u n t e r ++;

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 1; 2;

3; 4; 5 }

5 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(6)

Przykład drugi

int c o u n t e r = 0;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

w h i l e ( c o u n t e r ++ < N U M B E R _ O F _ E X E C U T I O N S ) S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 1; 2;

3; 4; 5

(7)

Przykład trzeci

int c o u n t e r = 5;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

w h i l e ( c o u n t e r ++ < N U M B E R _ O F _ E X E C U T I O N S ) S y s t e m . out . p r i n t l n ( c o u n t e r ) ;

7 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(8)

Pętla do while

Opis

Pętla do whilema następującą postać:

do

i n s t r u c t i o n ; w h i l e ( c o n d i t i o n ) ;

W przeciwieństwie do pętli while wskazana konstrukcja wykonuje instrukcje przynajmniej raz, gdyż prawdziwość warunku sprawdzana jest po ich wystąpieniu.

(9)

Przykład

int c o u n t e r = 5;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

do {

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 5 c o u n t e r ++;

} w h i l e ( c o u n t e r < N U M B E R _ O F _ E X E C U T I O N S ) ;

9 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(10)

Przykład drugi

int c o u n t e r = 0;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

do {

c o u n t e r ++;

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 1; 2;

3; 4; 5

} w h i l e ( c o u n t e r < N U M B E R _ O F _ E X E C U T I O N S ) ;

(11)

Przykład trzeci

int c o u n t e r = 0;

f i n a l int N U M B E R _ O F _ E X E C U T I O N S = 5;

do

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 0; 1;

2; 3; 4

w h i l e (++ c o u n t e r < N U M B E R _ O F _ E X E C U T I O N S ) ;

11 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(12)

Pętla for

Opis

Pętla forma następującą postać:

for ( i n i t i a l e x p r e s s i o n ; c o n d i t i o n e x p r e s s i o n ; m o d i f y i n g e x p r e s s i o n )

i n s t r u c t i o n ;

Wyrażenie początkowe wykorzystywane jest do inicjalizowania zmiennej używanej jako licznik wykonań pętli, która jest wykonywana do momentu określonego przez wyrażenie warunkowe. Wyrażenie modyfikujące stosowane jest w celu

(13)

Przykład

for (int i =0; i <5; ++ i )

S y s t e m . out . p r i n t l n ( i ) ; // 0; 1; 2; 3;

4

Zmienna licznik występuje jedynie w bloku pętli - można zadeklarować zmienną o tej nazwie poza pętlą.

13 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(14)

Przykład drugi

int c o u n t e r = 0;

for (; counter <5; ++ c o u n t e r )

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 0; 1;

2; 3; 4

Zmienna licznik występuje także poza blokiem pętli.

(15)

Przykład trzeci

int c o u n t e r = 0;

for (; counter <5; ) { c o u n t e r ++;

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 1; 2;

3; 4; 5 }

Zmienna licznik występuje także poza blokiem pętli.

15 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(16)

Przykład czwarty

int c o u n t e r = 0;

for (;;) { c o u n t e r ++;

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 0; 1;

2; 3; 4; ...

}

Pętla będzie się wykonywać w nieskończoność.

(17)

Przykład piąty

for (;;)

S y s t e m . out . p r i n t l n (1) ; // 1; 1; 1; 1;

...

Pętla będzie się wykonywać w nieskończoność.

17 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(18)

Podsumowanie praktyczne

1 Jeżeli mamy wykonać daną czynność określoną z góry liczbę razy, zastosujmy pętlęfor.

2 W przeciwnym razie użyjmy pętli ze słowem kluczowym while.

3 Jeżeli instrukcje mają się wykonać przynajmniej raz zastosujmy dooraz while. W przeciwnym razie użyjmy samego while’a.

(19)

Zadania

Każdy program powinien zawierać informację o przeznaczeniu oraz sprawdzać czy użytkownik wpisuje dobre dane (do momentu wpisania przez użytkownika poprawnej wartości ma zostać pobierana liczba - wykorzystaj metody hasNext... klasy

Scanner).

1 Napisz program pobierający od użytkownika n liczb całkowitych (gdzie n jest podane przez użytkownika w pierwszym kroku), obliczający ich średnią arytmetyczną i wyświetlający wynik.

2 Napisz program wypisujący liczby podzielne przez 3 z wykorzystaniem pętli for, while oraz do while (zakres od 1 do 100).

3 Napisz program obliczający silnię wprowadzonej liczby.

19 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(20)

Instrukcja break

Opis

Instrukcjabreak stosowana jest do przerwania wykonania pętli i opuszczenia jej bloku. Przykład:

int c o u n t e r = 0;

for (;;) { l i c z n i k ++;

S y s t e m . out . p r i n t l n ( c o u n t e r ) ; // 0; 1;

2; 3; 4;

if ( c o u n t e r == 4) b r e a k;

(21)

Przykład

for (;;) {

for (int i =0; i <5; ++ i ) {

S y s t e m . out . p r i n t l n ( i ) ; // 0; 1; 2;

0; 1; 2...

if ( i == 2) b r e a k; }

}

Pętla będzie się wykonywać w nieskończoność - instrukcja break spowodowała opuszczenie wyłącznie zagnieżdżonej pętli.

21 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(22)

Instrukcja continue

Opis

Instrukcjacontinue stosowana jest do przejścia do kolejnej iteracji pętli. Przykład:

for (int i = 0; i <5 ; ++ i ) { if ( i == 1)

c o n t i n u e;

S y s t e m . out . p r i n t l n ( i ) ; // 0; 2; 3; 4;

}

(23)

Zadania

Każdy program powinien zawierać informację o przeznaczeniu oraz sprawdzać czy użytkownik wpisuje dobre dane (do momentu wpisania przez użytkownika poprawnej wartości ma zostać pobierana liczba - wykorzystaj metody hasNext... klasy

Scanner).

1 Napisz program wypisujący liczby z zakreu od 1 do 100, z wyłączeniem liczb, które są podzielne przez 4 i

jednocześnie są niepodzielne przez 16. Zastosuj instrukcję continue.

2 Napisz program pobierający od użytkownika n liczb całkowitych, gdzie n jest pobierane od użytkownika w pierwszym kroku. Wypisz największą i najmniejszą z wprowadzonych wartości.

23 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

(24)

Zadania

3 Napisz program obliczający pn dla p i n wprowadzonego przez użytkownika. Wynik powinien zostać wypisany.

4 Napisz program rysujący choinkę na podstawie pobranej od użytkownika wysokości.

5 Napisz program, który dla pobranej liczby całkowitej wyznaczy jej wszystkie dzielniki i wypisze je na ekran.

6 Napisz program, który wyznacza wartość, wprowadzonej przez użytkownika, liczby ułamkowej w naturalnym kodzie binarnym (do 7 reduktu rozwinięcia).

(25)

Dziękuję za uwagę

25 / 25 mgr inż. Krzysztof Szwarc Podstawy programowania

Cytaty

Powiązane dokumenty

• Wyświetl ekran logowania, pobierz login i hasło,. • Poprawny login: admin, poprawne

• Tablice tworzone na stosie jako zmienne lokalne muszą być deklarowane z rozmiarem, który jest znany w czasie kompilacji. • Tam gdzie widoczna jest deklaracja tablicy tab, nazwa

Istnieje raport lub formularz, który generuje listę najlepszych uczniów biorąc pod uwagę średnią z ocen.. Istnieje parametr, który określa jaka część uczniów (wyrażona

– Nie, dlatego warto nie tylko cieszyć się z tego, że ktoś zdecy- dował się inwestować w Po- znaniu, ale także spróbować się dowiedzieć, dlaczego zain- westował w

(2) referencja przez całe swoje istnienie jest referencją dla jednej i tej samej zmiennej i nie da się tego zmienić w trakcie działania programu, zaś wskaźnik może zmieniać

W końcowej części wykładów przewiduje się typ strukturalny oraz algorytmy pracujące na tablicach i strukturach wiązanych: listach, stosach, kolejkach i drzewach2.

Napisz program, który pobiera liczby całkowite do momentu wpisania przez użytkownika cyfry 0.Po zakończeniu wczytywania danych wejścio- wych program powinien wyświetlić

Na jego podstawie można stwierdzić, czy bodźce generowane przez stymulator docierają poprzez elektrodę do serca, ale tylko w sytuacji, kiedy naturalny rytm jest wolniejszy