Return to Video

Вкладені цикли for (відео версія)

  • 0:01 - 0:04
    Дорогоцінний камінь, дуже гарний камінь!
  • 0:04 - 0:06
    Але ви знаєте, що краще
    ніж один дорогоцінний камінь?
  • 0:06 - 0:08
    Це цілий ряд дорогоцінних каменів!
  • 0:08 - 0:10
    І, звичайно ж, тепер ми знаємо,
  • 0:10 - 0:12
    найкращий спосіб, щоб зробити ряд
    дорогоцінних каменів, з допомогою циклів.
  • 0:12 - 0:16
    Так що давайте використовувати цикл
    намалювати 12 дорогоцінних каменів в ряд.
  • 0:16 - 0:20
    Рухаючись зліва направо
    по всьому екрану.
  • 0:20 - 0:22
    Щось на зразок цього.
  • 0:22 - 0:26
    отже це є " for (var i = 0;
  • 0:26 - 0:31
    i < 12; i ++)
  • 0:31 - 0:35
    А потім ми візьмемо цей рядок
    і перемістимо його всередину сюди
  • 0:36 - 0:38
    Так що тепер у нас є
    12 дорогоцінних каменів,
  • 0:38 - 0:40
    але вони насправді всі поскладані
    зверху один на одному.
  • 0:40 - 0:43
    Пам'ятаєте, що ми хочемо, щоб вони
    були по всьому екрану.
  • 0:43 - 0:46
    Це означає, що ми хочемо
    щоб змінювався "х".
  • 0:46 - 0:49
    А прямо зараз, "x" має 36 але ми
    хочемо, щоб вона була кожного разу різною.
  • 0:49 - 0:52
    Це означає, що ми хочемо, щоб вона
    залежала від "і".
  • 0:52 - 0:56
    Так що ми можемо це зробити
    просто ввівши: "i" помножити 36 разів.
  • 0:56 - 1:02
    Таким чином, перший це 0,
    а потім 36, і 72, і так далі, і так далі.
  • 1:02 - 1:04
    класно! Тепер у нас є ряд
    дорогоцінних каменів.
  • 1:04 - 1:06
    І цей видгляд нагадує мені
  • 1:06 - 1:08
    ті сцени, що в
    Індіані Джонс або Аладіні,
  • 1:08 - 1:11
    де герой знаходить
    підземний скарб з дорогоцінних каменів,
  • 1:11 - 1:14
    але вони зазвичай знаходять
    набагато більше, ніж ці.
  • 1:14 - 1:17
    Не тільки ряд дорогоцінних каменів
    але купу каміння.
  • 1:17 - 1:20
    то, як ми зробити щоб дорогоцінні камені
  • 1:20 - 1:24
    йшли також вздовж всього екрану вниз?
  • 1:24 - 1:30
    Ну, ми могли б почати з того, що повторили
    б цикл for, а потім скопіювали і вставити,
  • 1:30 - 1:33
    але потім змінювали б "Y" кожного разу.
  • 1:34 - 1:38
    І, таким чином ми змінимо її
    на 60, а потім на 90.
  • 1:38 - 1:42
    Так, що тепер у нас є три ряди каменів
    і це круто
  • 1:42 - 1:44
    але це також стає дуже нудним
  • 1:44 - 1:49
    тому що все, що я роблю це копіюю і
    вставляюю змінюючи цю одну маленьку річ.
  • 1:49 - 1:53
    І, зазвичай, в минулому, коли ми починали
    писати повторюваний код як зараз
  • 1:53 - 1:56
    ми думали, "О, можливо нам слід просто,
    використати цикл замість цього"
  • 1:57 - 1:59
    але ми вже використовуємо цикл;
  • 1:59 - 2:01
    Отже, що робити
    щоб уникнути написання цього,
  • 2:01 - 2:04
    Ви знаєте, повторювання цього
    копіювання-вставляння?
  • 2:04 - 2:09
    Ну, це те, що ми називаємо
    "Вкладені цикли for": цикл в циклі.
  • 2:09 - 2:12
    І, те, що ми будемо робити
    це створимо зовнішній цикл,
  • 2:12 - 2:15
    і це те, що буде дбати про рух
    вздовж екрану до низу,
  • 2:15 - 2:19
    і тоді наш внутрішній цикл буде
    слідкувати про те, що робиться зараз,
  • 2:19 - 2:21
    рух зліва направо.
  • 2:22 - 2:23
    Дозвольте мені показати вам,
    що я маю на увазі.
  • 2:24 - 2:30
    Отже, "for"- і ми використаємо іншу змінну
    "j" так як ми вже використовуємо "i"
  • 2:30 - 2:36
    І так, "for(var j = 0" ми введемо, що
    "j < 13; j++)".
  • 2:37 - 2:41
    Тому, це буде наш зовнішній контур,
    відповідальний за рух зверху вниз.
  • 2:42 - 2:45
    І тоді ми тільки збираємося взяти
    один з наших попередніх циклів for,
  • 2:45 - 2:49
    і помістимо його всередину там
    і зафіксуємо відступи,
  • 2:50 - 2:52
    ми видалимо ці старі.
  • 2:53 - 2:55
    Отже, тепер те, що у нас є
  • 2:55 - 2:58
    це всі вони поскладані один на одному
    зверху в тому ж рядку.
  • 2:58 - 3:02
    І так, справа в тому, що ми хочемо
    змінити "у", чи не так?
  • 3:02 - 3:04
    Це те, що ми змінювали до того
    коли копіювали і вставляли.
  • 3:04 - 3:06
    і прямо зараз, "у" завжди 90.
  • 3:06 - 3:09
    Ми хочемо змінити "y" для кожного рядка.
  • 3:09 - 3:15
    Отже, шлях по "х" залежить від "i",
    ми хочемо, щоб "у" залежала від "j".
  • 3:16 - 3:19
    Таким чином, ми далі і змінемо це.
  • 3:19 - 3:24
    щось на зразок, можливо,
    "j" помножити на 30.
  • 3:24 - 3:29
    Ура! Так багато дорогоцінних каменів!
    Чудово!
  • 3:30 - 3:32
    Давайте розглянемо, що це робить ще раз.
  • 3:32 - 3:37
    Зовнішній цикл створює цю змінну "j"
    і збільшує його до 13
  • 3:38 - 3:43
    У кожному виконанні зовнішнього циклу,
    він запускає цей внутрішній цикл.
  • 3:44 - 3:48
    І внутрішній цикл створює
    змінну "i" що збільшується до 12.
  • 3:48 - 3:50
    І для кожного
    виконання внутрішнього циклу,
  • 3:50 - 3:54
    він малює картинку по "х" та "у"
    що базуються на "i" та "j".
  • 3:55 - 3:59
    І ця "i" змінюється набагато частіше
    ніж "J" через це.
  • 3:59 - 4:01
    Щоб спробувати і зрозуміти
    це, навіть ще краще,
  • 4:01 - 4:04
    спробуємо візуалізувати
    значення "i" та "j"
  • 4:05 - 4:09
    Тому, я прокоментую зображення,
  • 4:09 - 4:12
    а потім встановлю колір заливки,
  • 4:12 - 4:15
    і я збираюся використати текстову команду
    щоб показати значення 'j'.
  • 4:15 - 4:20
    Отже "text(j..." а потім я поставлю у
    відповідному місці тут.
  • 4:21 - 4:26
    Гаразд, тепер ми можемо бачити, що "j"
    йде від 0 до 12.
  • 4:26 - 4:30
    Це по суті, де наші ряди каменів
    розташовані так само.
  • 4:32 - 4:35
    І зараз ми візуалізмуємо "i" і побачимо
    як вона змінюється.
  • 4:35 - 4:39
    Отже, для "i" зробимо інший колір.
  • 4:43 - 4:46
    Тоді ми поставимо кудись "i"
  • 4:46 - 4:49
    І ми змінимо її "х"
    так, що вона з'явиться по всьому екрану.
  • 4:49 - 4:53
    Ми зробимо те ж саме для "у".
  • 4:54 - 5:00
    Тепер ми можемо бачити, що "i"
    йде від 0 до 11.
  • 5:00 - 5:04
    Отже. "i" як я вже говорила,
    змінюється багато частіше.
  • 5:04 - 5:09
    І цей рядок коду запускається на виконання
    набагато більше разів, ніж цей рядок коду,
  • 5:09 - 5:14
    Так як, цей рядок коду виконується кожний
    для виконання цього внутрішнього циклу for
  • 5:14 - 5:16
    в той час я цей к рядок коду
    тільки виконанується
  • 5:16 - 5:18
    для кожного виконання зовнішнього циклу.
  • 5:19 - 5:22
    Таким чином, це візуалізація з "i" та "j",
  • 5:22 - 5:24
    сподіваюсь це допоможе вам зрозуміти
  • 5:24 - 5:26
    набагато краще, що відбувається з цими
    вкладеними циклами.
  • 5:26 - 5:30
    Тепер повернемось до наших
    дорогоцінних каменів, так як вони кращі!
  • 5:30 - 5:34
    Так, що ви багато чого можете зробити з
    вкладеними циклами for
  • 5:34 - 5:37
    Якщо ви просто подумаєте про
    все на світі
  • 5:37 - 5:40
    який схожий на двовимірну сітку,
    шахівницу, стьобану ковдру,
  • 5:40 - 5:44
    зірки на прапорі США,
    класні візерунки та шпалери
  • 5:44 - 5:47
    почніть з вашої уяви, і
    просто пограйтеся з цим кодом,
  • 5:47 - 5:49
    змінюючи зображення.
  • 5:49 - 5:53
    І почну з того, що заміню зображення
    на серце!
  • 5:54 - 5:58
    Для того, щоб показати вам, наскільки
    Я люблю вкладені цикли for!
Title:
Вкладені цикли for (відео версія)
Description:

Це відео для створення сусбтитрів. Дивіться справжню версію тут:
https://www.khanacademy.org/cs/nested-for-loops-2/4838213478776832

more » « less
Video Language:
English
Duration:
06:00
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Іван Соломаха edited Ukrainian subtitles for Nested For Loops (Video Version)
Show all

Ukrainian subtitles

Incomplete

Revisions