Lompat ke isi utama

Perulangan Pemrograman - C++

Ikon Kotak Alat Guru Kotak Alat Guru - Garis Besar Aktivitas

  • Eksplorasi ini akan memperkenalkan siswa pada pemrograman perilaku berulang dengan menggunakan perulangan berulang atau selamanya.

  • Belajar memprogram menggunakan perulangan berulang dan selamanya memungkinkan siswa menghemat waktu saat membangun proyek yang menggunakan tindakan berulang yang sama. Untuk informasi lebih lanjut tentang instruksi yang digunakan dalam proyek teks, kunjungi informasi bantuan.

Clawbot V5 siap bergerak!

Eksplorasi ini akan memberi Anda alat untuk dapat mulai membuat beberapa proyek menarik yang menggunakan loop.

  • Instruksi VEXcode V5 yang akan digunakan dalam eksplorasi ini:

    • Drivetrain.driveFor(maju, 300, mm);

    • Drivetrain.turnFor(kanan, 90, derajat);

    • ClawMotor.spinFor(mundur, 70, derajat);

    • ArmMotor.spinFor(maju, 360, derajat);

    • sementara (benar) {}

    • ulangi (4) {}

    • tunggu(5, detik);

Untuk mengakses informasi tambahan, klik kanan pada nama perintah di ruang kerja Anda untuk melihatbantuanuntuk perintah tersebut.

Ikon Tips Guru Tips Guru

Jika ini adalah pertama kalinya siswa menggunakan VEXcode V5, mereka dapat membaca berbagai artikel di Perpustakaan VEX

Ikon Tips Guru Tips Guru - Menggunakan Pelengkapan Otomatis

Pelengkapan otomatis adalah fitur dalam VEXcode V5 yang memprediksi sisa perintah yang sedang Anda ketik. Saat siswa mengerjakan VEXcode V5, dorong mereka untuk menggunakan fitur Pelengkapan Otomatis untuk membantu sintaksis.

ArtikelPelengkapan Otomatis - Tutorialmembahas cara menggunakan fitur Pelengkapan Otomatis. Untuk informasi lebih lanjut, jelajahi video tutorial dalam VEXcode V5.

Pilih tutorial Pelengkapan Otomatis.

 

Pastikan Anda telah mengunduh dan menyiapkan perangkat keras yang diperlukan, buku catatan teknik, dan VEXcode V5.

Bahan yang dibutuhkan:
Kuantitas Bahan-bahan yang Dibutuhkan
1

Kit Pemula Kelas VEX V5 (dengan firmware terbaru)

1

VEXcode V5 (versi terbaru, Windows, macOS)

1

Buku Catatan Teknik

1

Contoh proyek Template Clawbot (Drivetrain 2-motor, Tanpa Gyro)

Langkah 1: Mari mulai pemrograman dengan loop

  • Sebelum Anda memulai proyek Anda, pilih proyek templat yang benar. Proyek contoh Clawbot Template (Drivetrain 2-motor, Tanpa Gyro) berisi konfigurasi motor Clawbot. Jika templat tidak digunakan, robot Anda tidak akan menjalankan proyek dengan benar.

    Gambar yang menunjukkan menu File terbuka di VEXcode V5 yang menunjukkan opsi Buka Contoh

     

  • PilihFiledanBuka Contoh.
  • Gulir melalui berbagai proyekContoh. Proyek ini menunjukkan berbagai tindakan yang dapat dilakukan Clawbot Anda. Pilih dan buka proyek contohClawbot Template (Drivetrain 2-motor, Tanpa Gyro).

     

  • Beri nama proyek RepeatingActions.

    Gambar yang menunjukkan nama proyek Tindakan Berulang di VEXcode V5

  • Ketik kode berikut:

    int main() {
      // Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
      vexcodeInit();
    
      // Berkendara maju dan berbelok 90 derajat selama 4 iterasi 
      repeat(4){
        Drivetrain.driveFor(maju, 300, mm);
        Drivetrain.turnFor(kanan, 90, derajat);
        wait(5, detik);
    
      }
    }

Periksa proyek tersebut dan kemudian lakukan hal berikut di buku catatan teknik Anda.

  1. Prediksikan apa yang akan dilakukan Clawbot dalam proyek tersebut. Jelaskan lebih dari sekadar fakta bahwa proyek tersebut berulang.

    Apa yang diulangnya? Apa yang dilakukan Clawbot?

  2. Tuliskan prediksi Anda, tetapi jangan membagi proyek pendek tersebut menjadi lebih dari dua bagian.

Ikon Kotak Alat Guru Kotak Alat Guru - Jawaban

  1. Proyek ini akan meminta robot: melaju ke depan sejauh 300 milimeter, berbelok ke kanan 90 derajat, dan kemudian menunggu selama 5 detik sebanyak 4 kali untuk melengkapi sebuah persegi. Daripada menggunakan 3 instruksi yang sama sebanyak 4 kali, instruksi berulang mengurangi jumlahnya menjadi hanya 1 kali. Instruksi pengulangan mengulang tindakan melaju maju dan kemudian berbelok.

  2. Prediksinya mungkin hanya "Clawbot bergerak dalam bentuk kotak." Ini akan menjadi cara yang ringkas untuk menangkap gerakan Clawbot yang berulang tanpa disertai konteks apa pun.

Buku catatan teknik siswa dapat dipelihara dan diberi skorsecara individuatau sebagaitim. Tautan sebelumnya menyediakan rubrik yang berbeda untuk setiap pendekatan. Setiap kali rubrik disertakan dalam perencanaan pendidikan, praktik yang baik adalah menjelaskan rubrik tersebut atau setidaknya memberikan salinannya kepada siswa sebelum kegiatan dimulai.

  • Simpan, unduh, dan jalankanproyek Tindakan Berulang.

    Gambar nama proyek Tindakan Berulang di Toolbar di VEXcode V5

  • Periksa penjelasan Anda tentang proyek di buku catatan teknik Anda dan tambahkan catatan untuk memperbaikinya bila diperlukan.

Langkah 2: Jalankan proyek dan amati robotnya

Perbandingan dua potongan kode C++ di VEXcode. Potongan kode di sebelah kiri menggunakan masukan sensor untuk menentukan kapan harus berbelok, dengan loop sementara yang memeriksa apakah sakelar bemper ditekan; jika ditekan, robot akan berbelok ke kanan 90 derajat, jika tidak, robot akan melaju ke depan. Potongan kanan menggunakan jarak tetap untuk menentukan kapan harus berbelok, dengan putaran berulang yang mendorong robot maju sejauh 300mm, berbelok ke kanan sejauh 90 derajat, dan menunggu selama 5 detik, mengulangi urutan ini empat kali

Lihat lagi proyek Tindakan Berulang (di sebelah kanan). Proyek ini akan mengulang perilaku maju dan kemudian belok sebanyak empat kali. Struktur perulangan "berulang" digunakan ketika Anda ingin menggunakan serangkaian perilaku sejumlah waktu tertentu.

Jika struktur pengulangan diganti dengan struktur perulangan "while", robot akan mengulangi perilaku maju dan kemudian berbelok "selama" kondisinya benar. Anda juga dapat menetapkan kondisi ke "benar" agar perulangan "while" terus berlanjut selamanya.

Pada proyek di sebelah kiri, masukan sensor digunakan untuk menentukan kapan harus mulai berputar. Proyek di sebelah kanan menggunakan jarak Drivetrain tetap untuk menentukan kapan harus mulai berbelok.

Untuk terus memeriksa masukan sensor, pernyataan "if/else" digunakan bersama dengan loop "while". Pada proyek di sebelah kiri, robot akan berbelok ke kanan saat sensor "BumperB" ditekan, jika tidak, robot akan terus melaju ke depan jika sensor "BumperB" tidak ditekan. Untuk terus memeriksa nilai sensor BumperB, pernyataan "if" berada dalam loop "while true".

Proyek di atas di sebelah kiri adalah contoh penggunaan praktis dari struktur yang berulang selamanya - menggunakan loop while dan pernyataan if secara bersamaan. Bayangkan sebuah penyapu jalan otomatis yang terus melaju ke depan hingga menabrak tembok atau benda, lalu berbelok sebelum melanjutkan perjalanan.

Ikon Perluas Pembelajaran Anda Perluas Pembelajaran Anda

Untuk mengeksplorasi lebih jauh cara menggunakan loop dengan kondisional, mintalah siswa membuat proyek Floor Sweeper di VEXcode V5.

  • Mulailah dengan meminta siswamemasang dan menyambungkan sakelar bumper.
  • Minta siswa untuk membuka proyek contohClawbot Template (Drivetrain 2-motor, Tanpa Gyro).

     

  • Mintalah siswa memberi nama proyek tersebut sebagai Penyapu Lantai.

  • Minta siswa untuk membuat proyek berikut.

    // Sertakan Pustaka V5
    #include "vex.h"
      
    // Memungkinkan penggunaan Pustaka VEX lebih mudah
    menggunakan namespace vex;
    
    // Fungsi pickRandom mengembalikan bilangan bulat acak antara nilai min dan
    // maks yang dilewatkan sebagai parameter.
    int pickRandom(int min, int max) {
      return min + rand() / (RAND_MAX / (max - min + 1));
    }
    
    int main() {
      // Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
      vexcodeInit();
    
      // Inisialisasi generator angka acak.
      srand(randomSeed);
    
      sementara (benar) {
        sementara (!BumperB.menekan()) {
          Drivetrain.berkendara(maju);
          tunggu(5, mdtk);
        }
        Drivetrain.berhenti();
        Drivetrain.putarUntuk((90 + pilihAcak(0, 90)), derajat);
        tunggu(5, mdtk);
      }
    }

Jika siswa memerlukan bantuan dengan instruksi apa pun, rujuk mereka ke informasiBantuan

Minta siswa untukmengunduh dan menjalankan proyekuntuk mengamati bagaimana robot bergerak. Kemudian, mulailah diskusi kelas dan minta siswa menjelaskan mengapa struktur forever digunakan, bukan struktur pengulangan.

Siswa harus memperhatikan bahwa struktur forever digunakan karena proyek ini terus-menerus memeriksa apakah sakelar bumper ditekan.

Langkah 3: Tantangan Lingkaran Kuadrat!

Diagram yang menunjukkan jalur persegi hijau dengan tanda panah yang menunjukkan arah pergerakan di sekitar persegi tersebut. Panah oranye tambahan di luar kotak menunjuk ke arah yang berbeda, sesuai dengan belokan dan gerakan yang diperlukan untuk mengikuti jalur tersebut

  • Biarkan Clawbot Anda melaju dalam bentuk persegi.
  • Sebelum setiap putaran, cakar harus dibuka dan ditutup, dan lengan harus dinaikkan dan diturunkan.
  • Clawbot tidak dapat melaju sepanjang sisi alun-alun lebih dari satu kali.
  • Anda dapat menggunakan proyek RepeatingActions dari atas sebagai titik awal tetapi simpan sebagaiSquaredLoopssebelum membuat perubahan apa pun.

Gambar nama proyek Squared Loops di Toolbar VEXcode V5

Dalam buku catatan teknik Anda, rencanakan hal berikut ini:

  • Rencanakan solusi Anda dan prediksi apa yang akan dilakukan Clawbot sesuai dengan setiap instruksi dalam proyek Anda.
  • Unduh dan jalankanproyek Anda untuk mengujinya sebelum mengirimkannya.
  • Lakukan perubahan pada proyek sesuai kebutuhan dan catat apa saja yang diubah selama pengujian.

Ikon Kotak Alat Guru Kotak Alat Guru - Solusi

Berikut ini adalah solusi potensial untuk Tantangan Squared Loops:

int main() {
  // Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
  vexcodeInit();

  repeat(4){
    Drivetrain.driveFor(maju, 300, mm);
    ClawMotor.spinFor(mundur, 70, derajat);
    ArmMotor.spinFor(maju, 360, derajat);
    ClawMotor.spinFor(maju, 70, derajat);
    ArmMotor.spinFor(mundur, 360, derajat);
    Drivetrain.turnFor(kanan, 90, derajat);
    wait(5, msec);
  }
}

Anda dapat menyediakan siswa dengan rubrik pemrogramanuntuk menilai proyek mereka.
Buku catatan teknik siswa dapat dikelola dan dinilaisecara individuatau sebagaitim.