Langsung ke konten utama

Pemrograman Perulangan - C++

Ikon Kotak Peralatan Guru Panduan Aktivitas Kotak Peralatan Guru -

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

  • Mempelajari pemrograman menggunakan perulangan repeat dan forever memungkinkan siswa menghemat waktu saat membangun proyek yang menggunakan tindakan berulang yang sama. Untuk informasi lebih lanjut mengenai petunjuk yang digunakan dalam proyek teks, kunjungihelpinformation.

Clawbot V5 siap bergerak!

Eksplorasi ini akan memberi Anda alat untuk dapat mulai membuat beberapa proyek keren yang menggunakan perulangan.

  • Instruksi VEXcode V5 yang akan digunakan dalam eksplorasi ini:

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

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

    • ClawMotor.spinFor(reverse, 70, degrees);

    • 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 melihathelpuntuk perintah tersebut.

Ikon Tips Guru Tips untuk Guru

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

Ikon Tips Guru Tips untuk Guru - Menggunakan Fitur Pelengkapan Otomatis

Fitur pelengkapan otomatis (autocomplete) di VEXcode V5 memprediksi sisa perintah yang Anda ketik. Saat siswa mengerjakan VEXcode V5, dorong mereka untuk menggunakan fitur Autocomplete untuk membantu sintaks.

ArtikelAutocomplete - Tutorialmembahas cara menggunakan fitur Autocomplete. Untuk informasi lebih lanjut, jelajahi video tutorial di dalam VEXcode V5.

Pilih tutorial Pelengkapan Otomatis.

 

Pastikan Anda memiliki perangkat keras yang dibutuhkan, buku catatan teknik Anda, dan VEXcode V5 yang sudah diunduh dan siap digunakan.

Bahan-bahan yang Dibutuhkan:
Kuantitas Bahan-bahan yang Dibutuhkan
1

VEX V5 Classroom Starter Kit (dengan firmware terbaru)

1

VEXcode V5 (versi terbaru, Windows, macOS)

1

Buku Catatan Teknik

1

Contoh proyek Clawbot Template (Penggerak 2 motor, Tanpa Gyro)

Langkah 1: Mari kita mulai pemrograman dengan perulangan

  • Sebelum memulai proyek Anda, pilih templat proyek yang tepat. Contoh proyek Clawbot Template (Drivetrain 2-motor, No 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, menampilkan opsi Buka Contoh.

     

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

     

  • Beri nama proyek tersebut RepeatingActions.

    Gambar yang menunjukkan nama proyek Repeating Actions di VEXcode V5

  • Ketik kode berikut:

    int main() {
      // Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
      vexcodeInit();
    
      // Bergerak maju dan berbelok 90 derajat selama 4 iterasi 
      repeat(4){
        Drivetrain.driveFor(forward, 300, mm);
        Drivetrain.turnFor(right, 90, degrees);
        wait(5, seconds);
    
      }
    }

Periksa proyek tersebut, lalu 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 sedang diulang-ulang? Apa yang sedang dilakukan Clawbot?

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

Ikon Kotak Peralatan Guru Jawaban untuk Kotak Peralatan Guru -

  1. Proyek ini akan membuat robot: bergerak maju sejauh 300 milimeter, berbelok ke kanan 90 derajat, lalu menunggu selama 5 detik sebanyak 4 kali untuk menyelesaikan satu persegi. Alih-alih menggunakan 3 instruksi yang sama sebanyak 4 kali, instruksi pengulangan mengurangi jumlah pengulangan tersebut menjadi hanya 1 kali. Instruksi pengulangan mengulangi tindakan mengemudi maju dan kemudian berbelok.

  2. Prediksinya mungkin sesederhana "Clawbot bergerak dalam bentuk persegi." Ini akan menjadi cara ringkas untuk menangkap gerakan berulang Clawbot tanpa konteks apa pun.

Buku catatan teknik mahasiswa dapat dipelihara dan dinilaisecara individuatau sebagaitim. Tautan-tautan sebelumnya memberikan 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 Repeating Actions di Toolbar pada VEXcode V5

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

Langkah 2: Jalankan proyek dan amati robotnya.

Perbandingan dua cuplikan kode C++ di VEXcode. Cuplikan kode sebelah kiri menggunakan input sensor untuk menentukan kapan harus berbelok, dengan perulangan while yang memeriksa apakah sakelar bemper ditekan; jika ditekan, robot berbelok ke kanan 90 derajat, jika tidak, robot bergerak maju. Cuplikan kode di sebelah kanan menggunakan jarak tetap untuk menentukan kapan harus berbelok, dengan perulangan yang menggerakkan robot maju sejauh 300 mm, berbelok ke kanan 90 derajat, dan menunggu selama 5 detik, mengulangi urutan ini empat kali.

Perhatikan kembali proyek Repeating Actions (di sebelah kanan). Proyek ini akan mengulangi perilaku maju lalu berbelok sebanyak empat kali. Struktur perulangan "repeat" digunakan ketika Anda ingin menggunakan serangkaian perilaku sejumlah kali tertentu.

Jika struktur repeat diganti dengan struktur perulangan "while", robot akan mengulangi perilaku maju dan kemudian berbelok "selama" kondisi tersebut benar. Anda juga dapat mengatur kondisi menjadi "true" agar loop "while" terus berjalan selamanya.

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

Untuk terus memeriksa input sensor, pernyataan "if/else" digunakan bersama dengan loop "while". Pada proyek di sebelah kiri, robot akan berbelok ke kanan ketika sensor "BumperB" ditekan, jika tidak, robot akan terus bergerak maju tanpa henti jika sensor "BumperB" tidak ditekan. Untuk terus memeriksa nilai sensor BumperB, pernyataan "if" berada di dalam loop "while true".

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

Perluas Pembelajaran Anda Perluas Pembelajaran Anda

Untuk mengeksplorasi lebih lanjut cara menggunakan perulangan dengan kondisi, mintalah siswa untuk membuat proyek Penyapu Lantai di VEXcode V5.

  • Mulailah dengan meminta siswadan menyambungkan sakelar bemper.
  • Mintalah siswa untuk membuka proyek contohClawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Mintalah siswa untuk memberi nama proyek tersebut sebagai "Penyapu Lantai".

  • Mintalah siswa untuk membuat proyek berikut.

    // Sertakan Pustaka V5
    #include "vex.h"
      
    // Mempermudah penggunaan Pustaka VEX
    menggunakan namespace vex;
    
    // Fungsi pickRandom mengembalikan bilangan bulat acak antara nilai min dan
    // nilai max yang diberikan sebagai parameter.
    int pickRandom(int min, int max) {
      return min + rand() / (RAND_MAX / (max - min + 1));
    }
    
    int main() {
      // Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
      vexcodeInit();
    
      // Inisialisasi generator angka acak.
      srand(randomSeed);
    
      while (true) {
        while (!BumperB.pressing()) {
          Drivetrain.drive(forward);
          wait(5, msec);
        }
        Drivetrain.stop();
        Drivetrain.turnFor((90 + pickRandom(0, 90)), degrees);
        wait(5, msec);
      }
    }

Jika siswa membutuhkan bantuan dengan instruksi apa pun, arahkan mereka ke informasi

Minta siswa untuk
mengunduh dan menjalankan proyekuntuk mengamati bagaimana robot bergerak. Kemudian, mulailah diskusi kelas dan mintalah siswa untuk menjelaskan mengapa struktur "selamanya" digunakan alih-alih struktur "ulang
. Siswa harus mencatat bahwa struktur
selamanya" digunakan karena proyek ini terus menerus memeriksa apakah sakelar bumper ditekan.

Langkah 3: Tantangan Lingkaran Persegi!

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

  • Suruh Clawbot Anda mengemudi di dalam bentuk persegi.
  • Sebelum setiap giliran, cakar harus dibuka dan ditutup, dan lengan harus diangkat dan diturunkan.
  • Clawbot tidak dapat melaju di sepanjang sisi alun-alun lebih dari sekali.
  • Anda dapat menggunakan proyek RepeatingActions dari atas sebagai titik awal, tetapi simpan sebagaiSquaredLoopssebelum melakukan perubahan apa pun.

Gambar nama proyek Squared Loops di Toolbar VEXcode V5

Dalam buku catatan teknik Anda, rencanakan hal-hal berikut:

  • 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 Peralatan Guru Solusi Kotak Peralatan Guru -

Berikut ini adalah solusi potensial untuk Tantangan Lingkaran Kuadrat:

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

  repeat(4){
    Drivetrain.driveFor(forward, 300, mm);
    ClawMotor.spinFor(reverse, 70, degrees);
    ArmMotor.spinFor(forward, 360, degrees);
    ClawMotor.spinFor(forward, 70, degrees);
    ArmMotor.spinFor(reverse, 360, degrees);
    Drivetrain.turnFor(right, 90, degrees);
    wait(5, msec);
  }
}

Anda dapat memberikan rubrik pemrogramankepada siswauntuk menilai proyek mereka.
Buku catatan teknik siswa dapat dipelihara dan dinilaisecara individualatau sebagaitim.