Langsung ke konten utama

Pelajaran 4: Menggunakan Perulangan Bersarang

Pada Pelajaran sebelumnya, Anda membuat proyek untuk menginstruksikan Robot VR untuk mengemudi, mengambil, dan memindahkan ketiga cakram biru di Disk Mover Playground ke gawang biru. Dalam pelajaran ini, Anda akan membuat proyek untuk mengambil dan memindahkan satu cakram dari setiap warna ke tujuan berwarna yang sesuai di Disk Mover Playground menggunakan perulangan bersarang!

Tampilan dari atas arena bermain Disk Mover dengan cakram pertama dari setiap warna berada di gawang dengan warna yang sesuai. Robot VR menghadap dinding sisi kanan di tepi gawang hijau, di sudut kanan bawah.

Hasil belajar

  • Identifikasi cara menyusun perulangan secara bertingkat.
  • Jelaskan alur proyek melalui perulangan bersarang.
  • Jelaskan mengapa perulangan bersarang akan digunakan dalam sebuah proyek.

Apa itu Nested Loops (Perulangan Bersarang)?

Pada Unit dan Pelajaran sebelumnya dalam kursus ini, Anda telah menggunakan perulangan dari kategori Kontrol seperti perulangan for , while , dan perulangan tak terbatas whileuntuk mengulang perilaku. Menempatkan satu loop di dalam loop lain disebut 'nesting'. Perulangan bersarang sangat membantu dalam proyek di mana Robot VR mengulangi perilaku yang sama lebih dari sekali, seperti memindahkan beberapa cakram di Playground. Penggunaan perulangan bersarang dapat mengatur dan meringkas sebuah proyek, sehingga lebih mudah dipahami. Hal ini dapat membantu untuk lebih memahami konteks dan tujuan kode, serta mempermudah identifikasi kesalahan dan pemecahan masalah pada suatu proyek. 

Sebagai contoh, untuk memindahkan ketiga cakram biru ke gawang biru, perulanganuntukdapat digunakan untuk mengulangi proses pengumpulan cakram beberapa kali. Proyek yang ditampilkan di sini menempatkan proyek Pelajaran 3 untuk memindahkan cakram biru pertama ke tujuan biru di dalam loop untuk , dengan parameter diatur ke 3. Perhatikan bagaimana keempat bagian dari proyek sebelumnya diberi indentasi di dalam loop untuk.

def main():
    for repeat_count in range(3):
        #1. Drive to the first disk
        while not down_eye.near_object():
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()

        # 2. Ambil magnet disk
        energi (BOOST)

        # 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
        while front_distance.get_distance(MM) > 200:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()

        # 4. Jatuhkan disk ke magnet tujuan
        (DROP)

        drivetrain.drive_for(REVERSE, 100, MM)
        drivetrain.turn_to_heading(0, DEGREES)

    wait(5, MSEC)

Saat Anda 'menyusun' perulangan, perulangan terluar mengontrol berapa kali perulangan dalam dieksekusi.  Dalam proyek ini, loopuntukadalah loop terluar, dan akan mengulangi perilaku di dalam loop sebanyak tiga kali.

Proyek di atas dengan perulangan for yang disorot dalam kotak merah. Di bawah definisi utama, pengulangan garis bawah hitungan dalam rentang (3) titik dua adalah awal dari loop, dan keempat bagian proyek diindentasi di bawahnya. Sejajar dengan perintah perulangan for di bagian bawah proyek terdapat perintah wait, yang menunjukkan di mana perulangan berakhir.

Loop bagian dalam adalah loop yang terdapat di dalam loop bagian luar. Dalam contoh ini, setiap loopwhile(untuk menggerakkan ke disk dan ke tujuan) adalah 'loop dalam' yang dieksekusi setiap kali proyek bergerak melalui loopfor.Proyek yang sama seperti di atas, dengan setiap loop while bagian dalam disorot dalam kotak merah. Bagian komentar pertama dan ketiga dari proyek ini berisi perulangan while untuk menggunakan sensor pada robot agar bergerak hingga cakram terdeteksi, kemudian hingga dinding terdeteksi.

Untuk Informasi Anda

Indentasi sangat penting dalam proyek Python VEXcode VR. Anda dapat menggunakan garis indikator abu-abu di ruang kerja sebagai bantuan visual saat menyusun perulangan, untuk memastikan proyek Anda berfungsi sebagaimana mestinya. Setiap garis menunjukkan awal dan akhir dari sebuah perulangan.

Proyek yang sama seperti di atas dengan garis panduan yang disorot dalam kotak merah, menunjukkan keselarasan lekukan setiap lingkaran dalam relatif terhadap bagian proyek lainnya. Baris perulangan for langsung berlanjut ke perintah tunggu terakhir. Dan setiap baris perulangan while berlanjut ke perintah berhenti.

Alur proyek nested loop 

Dalam contoh ini, setiap kali loopuntukberulang, sebuah cakram biru diambil dan dikembalikan ke tujuan biru. 

Setelah iterasi pertama, cakram biru pertama dikembalikan ke sasaran biru dan Robot VR diputar untuk bersiap mengambil cakram kedua.

Gambar berdampingan dari proyek dilihat dari atas yang ditampilkan di ruang kerja di sebelah kiri, dan Jendela Playground yang ditampilkan di sebelah kanan. Proyek ini memiliki panah oranye yang melingkari seluruh proyek dari perintah perulangan for, yang menggambarkan iterasi pertama dari perulangan for. Di area permainan, cakram biru pertama berada di gawang biru, dan Robot VR diposisikan menghadap cakram biru yang tersisa, di ujung depan gawang, menunjukkan posisi robot setelah iterasi pertama.

Setelah iterasi kedua, cakram biru kedua dikumpulkan dan Robot VR diputar agar siap mengumpulkan cakram ketiga.

Gambar berdampingan dari proyek dilihat dari atas yang ditampilkan di ruang kerja di sebelah kiri, dan Jendela Playground yang ditampilkan di sebelah kanan. Proyek ini memiliki panah oranye yang melingkari seluruh proyek dari perintah perulangan for, yang menggambarkan iterasi kedua dari perulangan for. Di area permainan, terdapat 2 cakram biru di gawang biru, dan Robot VR diposisikan menghadap cakram biru yang tersisa, di ujung depan gawang, menunjukkan posisi robot setelah iterasi kedua.

Setelah iterasi ketiga, cakram biru ketiga dikumpulkan, dan Robot VR berhenti bergerak. Perulanganuntuk kini telah menyelesaikan jangkauannya, sehingga proyek ini selesai. 

Gambar berdampingan dari proyek dilihat dari atas yang ditampilkan di ruang kerja di sebelah kiri, dan Jendela Playground yang ditampilkan di sebelah kanan. Proyek ini memiliki panah oranye yang melingkari seluruh proyek dari perintah perulangan for, yang menggambarkan iterasi ketiga dari perulangan for. Di area permainan, ketiga cakram biru berada di gawang biru, dan Robot VR diposisikan menghadap menjauh dari gawang tepat di luar kotak gawang, menunjukkan posisi robot setelah iterasi terakhir.

 

Pilih tombol Berikutnya untuk melanjutkan ke bagian selanjutnya dari Pelajaran ini.