Lompat ke isi utama

Pelajaran 4: Menggunakan Perulangan Bersarang

Pada Pelajaran sebelumnya, Anda membuat proyek untuk menginstruksikan Robot VR untuk melaju, 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 sasaran berwarna yang sesuai di Disk Mover Playground menggunakan loop bersarang!

Tampilan atas ke bawah dari Disk Mover Playground dengan cakram pertama setiap warna dalam gawang warna yang cocok. Robot VR menghadap dinding sisi kanan di tepi gawang hijau, di sudut kanan bawah.

Hasil belajar

  • Mengidentifikasi cara menyusun loop.
  • Jelaskan aliran suatu proyek melalui loop bersarang.
  • Jelaskan mengapa loop bersarang akan digunakan dalam suatu proyek.

Apa itu Nested Loop?

Dalam Unit dan Pelajaran sebelumnya dalam kursus ini, Anda telah menggunakan perulangan dari kategori Kontrol seperti perulangan for , perulangan while , dan perulangan tak terhingga whileuntuk mengulang perilaku. Menempatkan satu loop di dalam loop lain disebut 'nesting'. Loop bersarang berguna dalam proyek di mana Robot VR mengulang perilaku yang sama lebih dari satu kali, seperti memindahkan beberapa disk di Playground. Loop bersarang dapat mengatur dan meringkas suatu proyek, agar lebih mudah dipahami. Hal ini dapat membantu untuk lebih memahami konteks dan tujuan kode, serta memudahkan untuk mengidentifikasi kesalahan dan memecahkan masalah suatu proyek. 

Misalnya, untuk memindahkan ketiga cakram biru ke sasaran biru, putaranuntukdapat digunakan untuk mengulang proses pengumpulan cakram beberapa kali. Proyek yang ditunjukkan di sini menempatkan proyek Pelajaran 3 untuk memindahkan cakram biru pertama ke sasaran biru di dalam loop untuk , dengan parameter ditetapkan ke 3. Perhatikan bagaimana keempat bagian proyek sebelumnya diindentasi dalam loop untuk.

def main():
    untuk pengulangan_hitungan dalam rentang(3):
        #1. Berkendara ke disk pertama
        saat tidak down_eye.near_object():
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()

        # 2. Ambil disk
        magnet.energize(BOOST)

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

        # 4. Jatuhkan cakram di sasaran
        magnet.energize(DROP)

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

    wait(5, MSEC)

Saat Anda membuat 'nest' loop, loop luar mengendalikan berapa kali loop dalam dieksekusi.  Dalam proyek ini, loopuntukadalah loop luar, dan akan mengulangi perilaku dalam loop tiga kali.

Proyek dari atas dengan for loop disorot dalam kotak merah. Diindentasi di bawah definisi utama, titik dua for repeat underscore count in range (3) merupakan awal dari loop, dan keempat bagian proyek diindentasi di bawahnya. Sejalan dengan perintah for loop di bagian bawah proyek terdapat perintah wait, yang menunjukkan di mana loop berakhir.

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

Untuk Informasi Anda

Indentasi penting dalam proyek VEXcode VR Python. Anda dapat menggunakan garis indikator abu-abu di ruang kerja sebagai bantuan visual saat menyusun loop, untuk memastikan proyek Anda berjalan sebagaimana mestinya. Setiap baris menunjukkan awal dan akhir suatu putaran.

Proyek yang sama dari atas dengan garis panduan disorot dalam kotak merah, menunjukkan penyelarasan lekukan masing-masing loop bagian dalam dalam kaitannya dengan sisa proyek. Baris perulangan for berlanjut langsung ke perintah wait terakhir. Dan masing-masing baris loop while diperluas ke perintah stop.

Alur proyek loop bersarang 

Dalam contoh ini, setiap kali putaranuntukberulang, cakram biru diambil dan dikembalikan ke sasaran biru. 

Setelah iterasi pertama, cakram biru pertama dikembalikan ke sasaran biru dan Robot VR diputar agar siap mengumpulkan cakram kedua.

Gambar proyek berdampingan dari atas ditampilkan di ruang kerja sebelah kiri, dan Jendela Playground ditampilkan di sebelah kanan. Proyek ini memiliki panah oranye yang membungkus perintah for loop di sekitar keseluruhan proyek, yang menggambarkan iterasi pertama for loop. Di Taman Bermain, cakram biru pertama berada di gawang biru, dan Robot VR diposisikan menghadap cakram biru yang tersisa, di ujung depan gawang, yang menunjukkan posisi robot setelah iterasi pertama.

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

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

Setelah iterasi ketiga, cakram biru ketiga dikumpulkan, dan Robot VR berhenti bergerak. Loopuntuk kini telah menyelesaikan jangkauannya, jadi proyek telah selesai. 

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

 

Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.