Zagnieżdżone pętle for (wersja wideo)
-
0:01 - 0:04Drogocenny kamień! Śliczny!
-
0:04 - 0:08A od jednego kamienia
lepszy byłby cały rząd. -
0:08 - 0:12Już wiemy, że rząd kamieni
najlepiej zrobić za pomocą pętli. -
0:12 - 0:16Użyjmy pętli FOR, by narysować
12 kamieni w rzędzie. -
0:16 - 0:19Od lewej do prawej, przez cały ekran.
-
0:19 - 0:21Właśnie tak.
-
0:22 - 0:26Piszemy: for (var i=0;
-
0:26 - 0:29i < 12;
-
0:29 - 0:30i++).
-
0:31 - 0:33Weźmiemy ten wiersz
-
0:33 - 0:34i przeniesiemy go tutaj.
-
0:36 - 0:38Mamy już 12 kamieni,
-
0:38 - 0:40jeden na drugim.
-
0:40 - 0:43A chcemy, żeby tworzyły rząd.
-
0:43 - 0:45Trzeba więc zmieniać „x”.
-
0:45 - 0:49Teraz „x” wynosi 36, ale wartość
za każdym razem ma być inna. -
0:49 - 0:51Czyli ma zależeć od „i”.
-
0:52 - 0:56Możemy po prostu powiedzieć:
„i” razy 36. -
0:56 - 0:58Najpierw jest 0,
-
0:58 - 1:01potem 36, później 72 itd.
-
1:02 - 1:04Super! Mamy rząd kamieni.
-
1:04 - 1:08Przypomina mi to sceny z „Indiany
Jonesa” lub „Aladyna”, -
1:08 - 1:11gdzie bohater odkrywa
w jaskini skarb. -
1:11 - 1:14Znajduje więcej kamieni!
-
1:14 - 1:17Nie jeden rząd, tylko cały stos!
-
1:17 - 1:21Jak sprawić, że kamienie
-
1:21 - 1:23pokryją ekran do samego dołu?
-
1:24 - 1:28Możemy po prostu
powtarzać pętlę FOR, -
1:28 - 1:30kopiować ją i wklejać,
-
1:30 - 1:32za każdym razem zmieniając „y”.
-
1:33 - 1:37Zmienimy na 60, potem na 90...
-
1:37 - 1:41Mamy trzy rzędy kamieni.
I dobrze! -
1:42 - 1:44Ale można się zanudzić.
-
1:44 - 1:49Ciągle tylko kopiuję i wklejam,
zmieniając jeden drobiazg. -
1:49 - 1:53Kiedyś, pisząc taki
powtarzający się program, -
1:53 - 1:57spytalibyśmy:
„Może warto użyć pętli?”. -
1:57 - 1:58Ale już to robimy!
-
1:58 - 2:01Jak więc uniknąć tego...
-
2:01 - 2:04kopiowania i wklejania raz po raz?
-
2:04 - 2:07Mamy tzw. zagnieżdżone pętle FOR.
-
2:07 - 2:09To pętla w pętli.
-
2:09 - 2:12Zrobimy pętlę zewnętrzną,
-
2:12 - 2:15która załatwi nam ruch w dół ekranu,
-
2:15 - 2:16a pętla wewnętrzna
-
2:17 - 2:19będzie robić to, co teraz,
-
2:19 - 2:21czyli rysować kamienie w poziomie.
-
2:21 - 2:24Pokażę, o co chodzi.
-
2:24 - 2:28Piszemy: „for”
i użyjemy innej zmiennej - „j”. -
2:28 - 2:30Bo „i” już używamy.
-
2:30 - 2:32Zatem: for(var j=0;
-
2:32 - 2:34j jest mniejsze od 13;
-
2:34 - 2:36j++).
-
2:37 - 2:39To będzie pętla zewnętrzna,
-
2:39 - 2:41odpowiadająca za rysowanie w pionie.
-
2:42 - 2:45Teraz weźmiemy jedną
z poprzednich pętli FOR -
2:45 - 2:47i umieścimy ją tutaj.
-
2:48 - 2:49Zróbmy wcięcie...
-
2:50 - 2:52I skasujemy te stare.
-
2:53 - 2:58Teraz mamy wszystkie kamienie
w tym samym rzędzie. -
2:58 - 3:01Chcemy zmienić „y”.
-
3:01 - 3:04Jak wcześniej,
po kopiowaniu i wklejaniu. -
3:04 - 3:09Teraz „y” zawsze wynosi 90.
Ma się zmieniać dla każdego rzędu. -
3:09 - 3:12Tak jak „x” jest zależny od „i”,
-
3:12 - 3:15„y” ma być zależny od „j”.
-
3:16 - 3:18Możemy więc...
-
3:18 - 3:21zmienić to na coś takiego jak...
-
3:22 - 3:24„j” razy 30.
-
3:24 - 3:28Tak! Tyle kamieni!
-
3:29 - 3:32Jeszcze raz omówmy to,
co robi program. -
3:32 - 3:35Pętla zewnętrzna tworzy zmienną „j”
-
3:35 - 3:37i powiększa ją do 13.
-
3:38 - 3:41Przy każdym wykonaniu
tej pętli zewnętrznej -
3:42 - 3:43uruchamia się pętla wewnętrzna.
-
3:44 - 3:48Pętla ta tworzy zmienną „i”,
która rośnie do 12. -
3:48 - 3:51Przy każdym wykonaniu
pętli wewnętrznej rysuje się -
3:51 - 3:55obraz w pozycji „x” i „y”,
zależnych od „i” i „j”. -
3:55 - 3:59Z tego powodu „i” zmienia się
częściej niż „j.” -
3:59 - 4:04Żeby lepiej to zrozumieć,
zobaczmy wartości „i” oraz „j”. -
4:04 - 4:08Teraz zrobię obraz,
-
4:08 - 4:11wybiorę kolor wypełnienia
-
4:11 - 4:13i użyję polecenia „text”,
-
4:13 - 4:16żeby pokazać wartość „j”.
Czyli: „textj”. -
4:16 - 4:20Umieszczę to w odpowiednim miejscu.
-
4:21 - 4:26Teraz widzimy, że „j”
zmienia się od 0 do 12. -
4:26 - 4:30To są też pozycje
naszych rzędów kamieni. -
4:31 - 4:35Pokażmy wartości „i”.
Zobaczmy, jak się zmieniają. -
4:35 - 4:39Dla „i” zróbmy inny kolor.
-
4:42 - 4:46Wstawimy gdzieś „i”.
-
4:46 - 4:50Zmienimy „x”, żeby kamienie
rysowały się w poziomie. -
4:50 - 4:54To samo zrobimy dla „y”. Dobrze!
-
4:54 - 4:59Widzimy, że „i” zmienia się
od 0 do 11. -
5:00 - 5:03Jak mówiłam, „i”...
-
5:03 - 5:05zmienia się znacznie częściej.
-
5:05 - 5:09Ten fragment programu
jest wykonywany częściej niż ten. -
5:09 - 5:14Ten - dla każdego wykonania
tej wewnętrznej pętli FOR. -
5:14 - 5:18A ten - tylko dla każdego wykonania
pętli zewnętrznej. -
5:19 - 5:22Mam nadzieję,
że widząc wartości „i” i „j” -
5:22 - 5:26lepiej zrozumieliście
działanie pętli zagnieżdżonej. -
5:27 - 5:29Niech już wrócą kamienie, są fajne!
-
5:30 - 5:34Zagnieżdżone pętle FOR
mają dużo zastosowań. -
5:34 - 5:37Pomyślmy, ile rzeczy na świecie
-
5:37 - 5:40przypomina siatkę 2D:
szachownica, kołdra, -
5:40 - 5:44gwiazdy na fladze USA,
wzory, tapety... -
5:44 - 5:47Uruchomcie wyobraźnię,
bawiąc się programem, -
5:47 - 5:49np. zmieniając obrazy.
-
5:49 - 5:53Ja zmienię je w serduszka.
-
5:53 - 5:59Żeby pokazać, jak kocham
zagnieżdżone pętle FOR!
- Title:
- Zagnieżdżone pętle for (wersja wideo)
- Description:
-
To tylko zapis naszych interaktywnych sesji poświęconych kodowaniu, stworzony by ułatwić ich przełożenie na inne języki. Polecamy obejrzenie tych sesji bezpośrednio pod adresem: https://pl.khanacademy.org/cs/programming/
- Video Language:
- English
- Duration:
- 06:00
Lech Mankiewicz edited Polish subtitles for Nested For Loops (Video Version) | ||
Lech Mankiewicz edited Polish subtitles for Nested For Loops (Video Version) |